------- Comment #3 from hubicka at ucw dot cz 2009-11-13 21:01 ------- Subject: Re: libstdc++ seems to miss std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<char*>(char*, char*, std::allocator<char> const&)
This fails with --static only: j...@gcc17:~/gcc-install/lib64$ nm -C libstdc++.so | less j...@gcc17:~/gcc-install/lib64$ fgrep 'std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<char*>(char*, char*, std::allocator<char> const&)' j...@gcc17:~/gcc-install/lib64$ nm -C libstdc++.so | fgrep 'std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<char*>(char*, char*, std::allocator<char> const&)' 00000000000a3bf0 W std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<char*>(char*, char*, std::allocator<char> const&) 00000000000a3a50 W std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<char*>(char*, char*, std::allocator<char> const&) j...@gcc17:~/gcc-install/lib64$ nm -C libstdc++.a | fgrep 'std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<char*>(char*, char*, std::allocator<char> const&)' U std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<char*>(char*, char*, std::allocator<char> const&) U std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<char*>(char*, char*, std::allocator<char> const&) 0000000000000000 W std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<char*>(char*, char*, std::allocator<char> const&) 0000000000000000 W std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<char*>(char*, char*, std::allocator<char> const&) j...@gcc17:~/trunk/build5$ ~/gcc-install/bin/g++ a.o --static /home/jh/gcc-install/lib/gcc/x86_64-unknown-linux-gnu/4.5.0/../../../../lib64/libstdc++.a(sstream-inst.o): In function `std::basic_stringbuf<char, std::char_traits<char>, std::allocator<char> >::str() const': /home/jh/trunk/build5/x86_64-unknown-linux-gnu/libstdc++-v3/include/sstream:129: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<char*>(char*, char*, std::allocator<char> const&)' /home/jh/trunk/build5/x86_64-unknown-linux-gnu/libstdc++-v3/include/sstream:127: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<char*>(char*, char*, std::allocator<char> const&)' /home/jh/trunk/build5/x86_64-unknown-linux-gnu/libstdc++-v3/include/sstream:129: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<char*>(char*, char*, std::allocator<char> const&)' /home/jh/trunk/build5/x86_64-unknown-linux-gnu/libstdc++-v3/include/sstream:127: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<char*>(char*, char*, std::allocator<char> const&)' /home/jh/trunk/build5/x86_64-unknown-linux-gnu/libstdc++-v3/include/sstream:129: undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<char*>(char*, char*, std::allocator<char> const&)' /home/jh/gcc-install/lib/gcc/x86_64-unknown-linux-gnu/4.5.0/../../../../lib64/libstdc++.a(sstream-inst.o):/home/jh/trunk/build5/x86_64-unknown-linux-gnu/libstdc++-v3/include/sstream:127: more undefined references to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<char*>(char*, char*, std::allocator<char> const&)' follow collect2: ld returned 1 exit status j...@gcc17:~/trunk/build5$ ~/gcc-install/bin/g++ a.o j...@gcc17:~/trunk/build5$ LD_LIBRARY_PATH=/home//jh/gcc-install/lib64/:$LD_LIBRARY_PATH ./a.out Usage: tramp3d-v4 --help|-h|-? show this command line help --num-iter|-n number of iterations to perform [Inf] --end-t|-t time to stop simulation [Inf] --cfl cfl number [0.6] --dt constant timestep, used with cfl number [off] --min-dt minimum timestep allowed --max-dt maximum timestep allowed --blocks nx ny nz processor setup [automatic] --cartvis nr av artificial viscosity NR AV [off] --eos n choose eos --rhomin rho density floor [off] --blocking-expressions set blocking expressions [off] --domain x y z computational vertex domain [64x64x64] A particularly benchmarky and checky command-line includes both artificial viscosity and density minimum via f.i. ./tramp3d-v4 --cartvis 1.0 0.0 --rhomin 1e-8 (reverse-i-search)`fg': fg j...@gcc17:~/trunk/build5$ nm -C a.o | fgrep 'std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<char*>(char*, char*, std::allocator<char> const&)' 0000000000000000 t std::basic_string<char, std::char_traits<char>, std::allocator<char> >::basic_string<char*>(char*, char*, std::allocator<char> const&) j...@gcc17:~/trunk/build5$ Honza -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=42033