Message-ID: <322BE88D.6C25@pobox.oleane.com> Date: Tue, 03 Sep 1996 10:13:01 +0200 From: Francois Charton Organization: CCMSA MIME-Version: 1.0 To: Lukasz Grochal CC: djgpp AT delorie DOT com Subject: Re: Linker bug (has anyone fixed it?) References: <50ef6n$5ko AT info DOT cyf-kr DOT edu DOT pl> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Lukasz Grochal wrote: > > The title says it all I guess, I've come across this linker bug > mentioned in faq, that makes it bail out on large lib* files with an > error message like "no memory" or so. Wonder if anyone has debugged > it and could donate me/all of us a patch/fixed source. The problem is > I have this big library with no hope to recompile it in smaller > pieces as suggested in faq (would need a Borland TASM that I don't > have). Or is there a way to split a compiled library? Or another > workaround to this problem? For those who might be interested: I'm > trying to compile Povray-3.0 official release for MS-DOS. The pmode.a > is the problem. Hope anyone can help me :) I'll appreciate any > suggestions (or a patched linker )... > > I have been doing this a while ago : the problem actually is in pmlite.o. I know two workarounds : 1/ get a copy of ld2.4 (previous version of thie linker), I don't recommend this (you'll have two versions of the linker on your machine, and this is never a sane situation)... 2/ split pmode.a into three part : like this copy pmode.a pmode1.a ar -d pmode1.a _vflat.o _pmpro.o _pmlite.o ar -x pmode.a _pmlite.o copy pmode.a pmode2.a ar -d pmode2.a vflat.o pmpro.o pmlite.o _pmlite.o and then replace in MSDOSGCC.LNK "pmode.a" by pmode1.a _pmlite.o pmode2.a It should then compile allright (let me know if you have a problem). If you intend to use the ztimer.a library, you'll have a similar problem : solve it by splitting ztimer.a into .o objects (BTW there is a bug in povray with ztimer, so be careful). After this, you will find that povray 3.0, even though it compiles, still dies on FPU exceptions. (compiling ballbox1.pov for instance). To avoid this, remove the '-lm' option from the MSDOSGCC.LNK file. Finally, don't forget to recompile using the -O3 switch (optimisation), after this you get a version which is about 10% faster than the official Watcom-based compile. (Thank you DJ). Francois