Dynamic Linking with libstdc++ dies on Solaris 2.8
Pete
pfein@bigfoot.com
Tue Mar 6 10:06:00 GMT 2001
Hi-
I'm running gcc 2.95.2 with libstdc++-v3 2.90.8 & binutils 2.10.1 on Solaris 2.8
and running in to some trouble with dynamic linking. My executables dump core
in basic_ios.h. They work fine if compiled with '-static'. I've also had
issues with collect2 dying when using -frepo with sig 11 in large programs,
though I'm still working a simple test case to demonstrate (hence the template
code below).
Looking at the core shows it died at:
(absurdly long path)/libstdc++/bits/basic_ios.h:98, which is
inline iostate
rdstate() const
{ return _M_streambuf_state; } <<line 98
which makes me think its the static object constructor order problem I've seen
discussed, but IIRC GNU ld was supposed to handled that...
Please reply to me directly as well as to the list. Thanks in advance.
foo.cpp:
#include <iostream>
#include "bar.hpp"
int main()
{
do_bar(42);
std::cout<<"silly linker\n";
return 0;
}
bar.hpp:
#include <iostream>
template <class T>
void do_bar(const T some_t);
template <class T>
void do_bar(const T some_t)
{
std::cout<<"work: "<<some_t<<" \n";
}
command line:
/home/pfein/bin/g++ -I. -g -Wall --verbose -fhonor-std -o foo foo.cpp
output of compilation:
Reading specs from /home/pfein/gcc/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/specs
gcc version 2.95.2 19991024 (release)
/home/pfein/gcc/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/cpp -lang-c++ -v -I.
-iprefix /home/pfein/gcc/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/ -isystem
/home/pfein/binutils/include -isystem /home/pfein/gcc/lib/
gcc-lib/sparc-sun-solaris2.8/2.95.2/include -D__GNUC__=2 -D__GNUG__=2
-D__GNUC_MINOR__=95 -D__cplusplus -Dsparc -Dsun -Dunix -D__svr4__ -D__SVR4
-D__sparc__ -D__sun__ -D__unix__ -D__svr4__ -D__SVR4 -D__sparc -D_
_sun -D__unix -Asystem(unix) -Asystem(svr4) -D__EXCEPTIONS -g -Wall
-D__GCC_NEW_VARARGS__ -Acpu(sparc) -Amachine(sparc) foo.cpp /usr/tmp/ccqgR7Og.ii
GNU CPP version 2.95.2 19991024 (release) (sparc)
#include "..." search starts here:
#include <...> search starts here:
.
/home/pfein/binutils/include
/home/pfein/gcc/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/include
/home/pfein/gcc/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/../../../../include/g++-
v3
/home/pfein/gcc/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/../../../../sparc-sun-so
laris2.8/include
/home/pfein/gcc/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/include
/home/pfein/include
/home/pfein/gcc/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/../../../../include/g++-
v3
/usr/local/include
/home/pfein/gcc/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/../../../../sparc-sun-so
laris2.8/include
/home/pfein/gcc/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/include
/usr/include
End of search list.
The following default directories have been omitted from the search path:
End of omitted list.
/home/pfein/gcc/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/cc1plus
/usr/tmp/ccqgR7Og.ii -quiet -dumpbase foo.cc -g -Wall -version -fhonor-std -o
/usr/tmp/ccbzz8Mm.s
GNU C++ version 2.95.2 19991024 (release) (sparc-sun-solaris2.8) compiled by GNU
C version 2.95.2 19991024 (release).
/home/pfein/binutils/bin/as -V -Qy -s -o /usr/tmp/cct3GFAw.o
/usr/tmp/ccbzz8Mm.s
GNU assembler version 2.10.1 (sparc-sun-solaris2.8) using BFD version 2.10.1
/home/pfein/gcc/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/collect2 -V -Y
P,/usr/ccs/lib:/usr/lib -Qy -o foo
/home/pfein/gcc/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/crt1.o
/home/pfein/gcc/lib/gcc-lib/sparc-sun-sol
aris2.8/2.95.2/crti.o /usr/ccs/lib/values-Xa.o
/home/pfein/gcc/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/crtbegin.o
-L/home/pfein/gcc/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2
-L/home/pfein/gcc/lib/gcc-lib -L/home/p
fein/gcc/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2 -L/usr/ccs/bin -L/usr/ccs/lib
-L/home/pfein/gcc/lib /usr/tmp/cct3GFAw.o -lstdc++ -lm -lgcc -lc -lgcc
/home/pfein/gcc/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/crten
d.o /home/pfein/gcc/lib/gcc-lib/sparc-sun-solaris2.8/2.95.2/crtn.o
GNU ld version 2.10.1 (with BFD 2.10.1)
Supported emulations:
elf32_sparc
elf64_sparc
--
Peter Fein
pfein@bigfoot.com
773-575-0694
All power corrupts, but we need electricity.
-----------------------------------------------------------
This mail sent through the IMP demo site: demo.uk.horde.org
Find out more at http://www.horde.org/imp/
More information about the Gcc-help
mailing list