AIX V3.1 (RS/6000) linker problems

jim frost madd at world.std.com
Tue Nov 6 10:30:58 AEST 1990


bengsig at oracle.nl (Bjorn Engsig) writes:
>Article <1990Oct25.024421.7418 at onecom> by john at baldur.uucp (John Brinegar) says:
>|
>|I have been having problems with the linker under AIX V3.1 (RS/6000).  It
>|seems that when linking a large executable (many libraries), the linker
>|eats up all paging space and the bind is killed by signal 9.

This is correct.  In a different article someone asked if the 3001
patch corrected the problem.  It does not.  We haven't applied the
3002 patch yet.

>Frequent readers of this group will know that the linker on AIX 3.1 is using
>extreme amount of paging space.  It also does much more for you than other
>Unix linkers, like solving all references at once by having a complete symbol
>table of all libraries.

This isn't so much a function of their linker as of their linking
conventions.  The conventions allow shared libraries to be linked in
without paging in very much of the executable you're linking, allowing
for very fast startup times for executables which use shared
libraries.

The TOC linking convention is very elegant, but it does have its
limitations.  You cannot have, for instance, more than 2^14 (16384)
global symbols (TOC table entries -- one TOC per global variable or
global function) per function.  As of the 3001 update (and I believe
3002) the linker cannot build more than one TOC per a.out, effectively
limiting programs to 2^14 global symbols.  This is a surprisingly low
number given the effort that went into supporting large executables on
the RS/6000.  I have received no word on whether or not they plan to
correct this deficiency.

jim frost
saber software
jimf at saber.com



More information about the Comp.unix.aix mailing list