Xref: utzoo comp.lang.c++:8723 comp.unix.i386:7446 Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!asuvax!mcdphx!mcdchg!ddsw1!nvk From: nvk@ddsw1.MCS.COM (Norman Kohn) Newsgroups: comp.lang.c++,comp.unix.i386 Subject: Re: Out of symtab space Message-ID: <1990Aug01.120839.23924@ddsw1.MCS.COM> Date: 1 Aug 90 12:08:39 GMT References: <1598@kuling.UUCP> Reply-To: nvk@ddsw1.MCS.COM (Norman Kohn) Organization: ddsw1.MCS.COM Contributor, Wheeling, IL Lines: 26 In article <1598@kuling.UUCP> fredriks@kuling.UUCP (Fredrik Stax{ng) writes: > > We are doing a large project in C++ on Interactive Unix with >HCR/C++. We have came up against what evidently is a restriction in ld. It >aborts with the message "ld internal error: fatal: symbol table overflow". I have run into this on a large development project, both under uport and Interactive. A temporary fix, depending on how large your project is, is to reduce the number of externally defined symbols. 1) group modules to make subroutines static, when possible 2) group related global storage items into structures: the addressing of foo.a and foo.b is done by offsets from foo, so that struct { int a,b;} foo generates one, not two, external symbols. Your code may become more readable and your symbol table size will shrink. 3) it may be possible to do a partial link of some modules and delete those symbols that are not required to be external to the module group: but I haven't managed to do this. -- Norman Kohn | ...ddsw1!nvk Chicago, Il. | days/ans svc: (312) 650-6840 | eves: (312) 373-0564