www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/09/03/13:19:45

Message-ID: <322BE88D.6C25@pobox.oleane.com>
Date: Tue, 03 Sep 1996 10:13:01 +0200
From: Francois Charton <deef AT pobox DOT oleane DOT com>
Organization: CCMSA
MIME-Version: 1.0
To: Lukasz Grochal <cypis AT rexio DOT uci DOT agh DOT edu DOT pl>
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>

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 <grin>)...
> 
>

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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019