Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!caen!kuhub.cc.ukans.edu!markv From: markv@kuhub.cc.ukans.edu Newsgroups: comp.sys.amiga.programmer Subject: Re: > SAS gripes (was DICE vs GCC) Message-ID: <1991Apr8.162329.29538@kuhub.cc.ukans.edu> Date: 8 Apr 91 16:23:29 CDT References: Organization: University of Kansas Academic Computing Services Lines: 76 In article , colin_fox@outbound.wimsey.bc.ca (Colin Fox) writes: >>Gee, why don't I just make object files < 32k (in other words write smaller C >>files)? Well I am not the one producing the C files, my computer > Hmmm - first off, if you compile with -b0 (large data), you don't have to > worry about this. Also the compiler/linker set produce ALV (Automatic Link > Vectors) to locations that are too far for a branch (32K). No, the 32K limit is a problem. ALVs are generated by BLINK not LCx. The compiler will *not* generate a symbolic reference for a jump or branch inside a given object file, so Blink has no way to generate an ALV. Also, the compiler *always* generates relative code for jumps inside a module. So ALVs and -r0 only help with executables larger than 32K, not functions or modules. -b0 has nothing to do with this, it is for data addressing. Sooo, last time I checked (5.1, havn't tried 5.1a, but I still think its a problem), SAS can NOT generate single functions or even modules with >32K of code. Also (minor gripe) oml still can't generate an indexed library >256K total size (forces me to JOIN when I want debug info). > Yes, it is a known bug with BLink that you only have a 256 character command > line. SO what you should do instead is create a temporary link file, which is > done like this: > > target: obj1.o obj2.o obj3.o > blink FROM c.o obj1.o obj2.o obj3.o > TO target > smallcode smalldata nodebug > < > > And you don't need to create a link file. Huh? I dont recoginize this construct. I've hunted the docs for an "implict" temp file, but havnt' found it, could you point me at a page number? Right now I have somthing like: DUMMY: Prep Foo.lnk Foo Prep: #resident compiler and other misc. prep Foo.lnk: Foo.lmk echo >Foo.lnk FROM $(OBJS_1) echo >>Foo.lnk FROM $(OBJS_2) etc.. Foo: BLINK with Foo.lnk At least this way everything is in one place. Another minor niceity would be "batching" where LMK would put as many files on one command line as could fit, like (simple case): .c.o: lc -L {$<} Foo: Foo1.c Foo2.c Would generate: lc -L Foo1.c Foo2.c This is less use if your already hitting the command line limit on the compiler (of course the ultimate solution is to take off the limit on the command line, which should be getting possilble as BSTRs fade into oblivion). -- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Mark Gooderum Only... \ Good Cheer !!! Academic Computing Services /// \___________________________ University of Kansas /// /| __ _ Bix: mgooderum \\\ /// /__| |\/| | | _ /_\ makes it Bitnet: MARKV@UKANVAX \/\/ / | | | | |__| / \ possible... Internet: markv@kuhub.cc.ukans.edu ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~