Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!uflorida!ukma!rutgers!att!ulysses!sfsup!jbu From: jbu@sfsup.UUCP (+Urban J.) Newsgroups: comp.unix.xenix,comp.unix.i386 Subject: Re: SCO externs ... too many? Keywords: SCO XENIX extern help Message-ID: <5268@sfsup.UUCP> Date: 11 May 89 17:35:15 GMT References: <631@jc3b21.UUCP> <84@estinc.UUCP> Reply-To: jbu@/guest2/jbuUUCP (xt1123-+Urban J.) Distribution: usa Organization: AT&T Information Systems Lines: 39 In article <84@estinc.UUCP> fnf@estinc.UUCP (Fred Fish) writes: >In article <631@jc3b21.UUCP> davis@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