SCO externs ... too many?

+Urban J. jbu at sfsup.UUCP
Fri May 12 03:35:15 AEST 1989


In article <84 at estinc.UUCP> fnf at estinc.UUCP (Fred Fish) writes:
>In article <631 at jc3b21.UUCP> davis at jc3b21.UUCP (William J Davis) writes:
>>
>>Experimentation further proved that if the number of externs was reduced
>>past some unknown threshold, suddenly the problem would vanish! ;-(
>>
>>I have a call into SCO, but they say they can't
>>help unless they can replicate the problem, short of me sending them
>>5 meg of libraries ( yes, I said 5 meg!)  ;-(
>
>This aroused my curiosity about what the limits were for the SCO 2.3.1
>compiler and linker (actually the 2.2 development system, which is shipped
>with 2.3.1).  This program found that I could have up to 4093 of my own
>external symbols before overflowing the internal linker table (this is 
>suspiciously close to 4096, but then we don't take into account "main"
>and library symbols).
>

I ran this program on UNIX System V/386 Release 3.2 with the C Software Development
Set 4.1.5 installed.  The original program ran fine upto 10000 symbols.  Therefore
I raised the value to 20000.

The CSDS 4.1.5 had NO compiler problems with a file having 15000 symbols in it.
However, when it tried to ld(1) linktest1.o and linktest2.o (a total of 30000
symbols) the ld failed with:

ld internal error: fatal: symbol table overflow.

So this binary search program ran and ran.  Finally it produced:
Maximum of 10181 syms per file.

This meant that the ld(1) successfully load two object files both containing 10181
sysbols for a total of 20362 symbols!

Fred Fish wrote a real nice program here.

Sincerely,

John Ben Urban



More information about the Comp.unix.xenix mailing list