problems linking large files

Norman Kohn nvk at ddsw1.MCS.COM
Fri Mar 15 00:04:33 AEST 1991


In article <815 at metoch.uu.ch> brunner at metoch.uu.ch (felix brunner) writes:
>I have some problems with ld (linker of C++, C resp.)!
>I am using Interactive Unix 2.2 and Glockenspiel C++ 2.0B.
>
>ld displays the following error message:
>	fail to write symbol name 'symbol_name' in string table
>	for file 'file_name'


I have encountered this with two versions of ld (ISC and UPORT)
on a large software package.  I concluded that the problem was
the number of externs in my software:  I successfully corrected
it by taking large numbers of related storage and combining
them into structs... i.e.,
	int a,b;
became
	struct {int a,b;}foo;
so that references became foo.a and foo.b.
Now a and b are defined offsets and the only extern is foo.

I readily acknowledge that this should not help:  a properly written
linker should size its tables and files dynamically, and such large
packages as emacs and gcc compile and link without trouble.
I have not compared symbol table sizes.  But the fix works,
and I've left well enough alone.

-- 
Norman Kohn   		| ...ddsw1!nvk
Chicago, Il.		| days/ans svc: (312) 650-6840
			| eves: (312) 373-0564



More information about the Comp.unix.sysv386 mailing list