This is the mail archive of the libstdc++@gcc.gnu.org mailing list for the libstdc++ project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Dynamic linker problems on Solaris


Hi all!

On Thu, 7 Jun 2001 05:14:56 -0500 (CDT)
Loren James Rittle <rittle at latour dot rsch dot comm dot mot dot com> 
wrote: (see http://gcc.gnu.org/ml/libstdc++/2001-06/msg00117.html )

 > sparc-sun-solaris2.7 (this version on 3.0 branch however
 >  I don't usually build this target and every C++ test fails with:
 >  ld.so.1: [...]: fatal: relocation error: R_SPARC_32: file [...]/libstdc++.so.3:
 >  symbol __gxx_personality_v0:  offset 0xff31cbe2 is non-aligned ---
 >  This could be because I have an old/bad binutils; I used
 >  --with-gnu-as and --with-gnu-ld or whatever.  I have checked at the
 >  source level that things are being setup properly for threads on this
 >  port and I think the failure is independent of this patch but I have
 >  not verified that yet.)

I just bootstrapped the snapshot from June 4th on sparc-sun-solaris2.6
and did the following:

% echo > trivial.cc 'int main() { return 0; }'
% c++-3beta -v trivial.cc
Reading specs from [...]/gcc-20010604/lib/gcc-lib/sparc-sun-solaris2.6/3.0/specs
Configured with: ../gcc-20010604/configure --prefix=[...]/gcc-20010604 --with-ld=[...]/gnu/bin/ld --with-gnu-ld --with-as=[...]/gnu/bin/as --with-gnu-as --enable-threads=single --disable-nls --enable-shared --enable-version-specific-runtime-libs --enable-languages=c,c++
Thread model: single
gcc version 3.0 20010604 (prerelease)
[...]
GNU assembler version 2.10.1 (sparc-sun-solaris2.6) using BFD version 2.10.1
[...]
GNU ld version 2.10.1 (with BFD 2.10.1)

% ./a.out
ld.so.1: ./a.out: fatal: relocation error: R_SPARC_32: file /pf/u/u232017/lib/libstdc++.so.3:  symbol __gxx_personality_v0:  offset 0xef784bda is non-aligned

Bus error


So the good news is, that this has indeed nothing to do with your
threads patch, Loren (the snapshot is older and I used no threads
anyway). But the bad news is, that I _did_ use up-to-date binutils
(2.10.1). Adding `-static' makes it work of course.

I'm not sure if this has anything to do with this at all, but
configuring libstdc++ the following was diagnosed:

checking for ld used by GCC... ld
checking if the linker (ld) is GNU ld... no

This seems a little odd to me since I explicitly told gcc what linker
to use and that it indeed is GNU ld. I had a very short look at the
relevant part of configure but could't find out anything. I'm afrait
my knowledge of the gcc building process is much too limited...

In the hope to be more helpful than confusing
-Frank Schimmel


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]