On Fri, 2002-06-07 at 13:30, Andrew Morgan wrote: > It seems like the proper method is to use gcc to do the linking rather > than ld, if the compiler is gcc. I remember doing this when I compiled > pam_ldap on Solaris 8. > > If you are using Sun's Workshop compiler, use the linker in > /usr/ccs/bin/ld. > > Andy
But gcc just calls a whatever linker it is supposed to use. That is, gcc does not link the object itself, it relies upon an external linker. Depending on how gcc was ./configure'd, that linker may be Sun's ld, GNU ld, or some other ld. Looking at the build instructions for gcc 2.95.3 (gcc-2.95.3/install/SPECIFIC), Sun's ld seems to be quite fine to use with gcc (unless compiling c++): binutils 2.9.1 has known bugs on this platform. We recommend to use binutils 2.10 or the vendor tools (Sun as, Sun ld). Unfortunately, C++ shared libraries, including libstdc++, won't work properly if assembled with Sun as: the linker will complain about relocations in read-only sections, in the definition of virtual tables. Also, Sun as fails to process long symbols resulting from mangling template-heavy C++ function names. The C++ problem does seem to suggest that the use of gnu ld has at least one advantage. If only gnu ld supported -R../lib like Sun's ld. Mike
