Mysterious Cygwin GCC 3.4.4 link problems

Does anyone have a clue about this? Other toolsets, including gcc-2.95.3, gcc-3.3.3, and gcc-4.0.0 all work fine. "/usr/local/gcc-3.4.4/bin/g++.exe" -Wall -ftemplate-depth-100 -O0 -fno-inline -g -DBOOST_ALL_NO_LIB=1 -I"..\..\.." -c -o "..\..\..\bin.v2\libs\parameter\test\sfinae.test\gcc-3.4.4\debug\sfinae.o" "sfinae.cpp" "/usr/local/gcc-3.4.4/bin/g++.exe" -o "..\..\..\bin.v2\libs\parameter\test\sfinae.test\gcc-3.4.4\debug\sfinae.exe" "..\..\..\bin.v2\libs\parameter\test\sfinae.test\gcc-3.4.4\debug\sfinae.o" -g /usr/lib/gcc/i686-pc-cygwin/3.4.4/libstdc++.a(eh_terminate.o):: undefined reference to `___w32_sharedptr_terminate' /usr/lib/gcc/i686-pc-cygwin/3.4.4/libstdc++.a(eh_terminate.o):: undefined reference to `___w32_sharedptr_terminate' /usr/lib/gcc/i686-pc-cygwin/3.4.4/libstdc++.a(eh_terminate.o):: undefined reference to `___w32_sharedptr_unexpected' /usr/lib/gcc/i686-pc-cygwin/3.4.4/libstdc++.a(eh_terminate.o):: undefined reference to `___w32_sharedptr_terminate' /usr/lib/gcc/i686-pc-cygwin/3.4.4/libstdc++.a(eh_terminate.o):: undefined reference to `___w32_sharedptr_terminate' /usr/lib/gcc/i686-pc-cygwin/3.4.4/libstdc++.a(eh_terminate.o):: undefined reference to `___w32_sharedptr_unexpected' /usr/lib/gcc/i686-pc-cygwin/3.4.4/libstdc++.a(eh_throw.o):: undefined reference to `___w32_sharedptr_unexpected' /usr/lib/gcc/i686-pc-cygwin/3.4.4/libstdc++.a(eh_throw.o):: undefined reference to `___w32_sharedptr_terminate' collect2: ld returned 1 exit status -- Dave Abrahams Boost Consulting www.boost-consulting.com

David Abrahams ha escrito:
Does anyone have a clue about this? Other toolsets, including gcc-2.95.3, gcc-3.3.3, and gcc-4.0.0 all work fine.
"/usr/local/gcc-3.4.4/bin/g++.exe" -Wall -ftemplate-depth-100 -O0 -fno-inline -g -DBOOST_ALL_NO_LIB=1 -I"..\..\.." -c -o "..\..\..\bin.v2\libs\parameter\test\sfinae.test\gcc-3.4.4\debug\sfinae.o" "sfinae.cpp"
"/usr/local/gcc-3.4.4/bin/g++.exe" -o "..\..\..\bin.v2\libs\parameter\test\sfinae.test\gcc-3.4.4\debug\sfinae.exe" "..\..\..\bin.v2\libs\parameter\test\sfinae.test\gcc-3.4.4\debug\sfinae.o" -g
/usr/lib/gcc/i686-pc-cygwin/3.4.4/libstdc++.a(eh_terminate.o):: undefined reference to `___w32_sharedptr_terminate'
[...] Google yields this: http://gcc.gnu.org/ml/gcc/2004-04/msg00613.html Click down the thread for an explanation and fix of the problem, maybe it has to do with yours. Joaquín M López Muñoz Telefónica, Investigación y Desarrollo

Joaquín Mª López Muñoz <joaquin@tid.es> writes:
David Abrahams ha escrito:
Does anyone have a clue about this? Other toolsets, including gcc-2.95.3, gcc-3.3.3, and gcc-4.0.0 all work fine.
"/usr/local/gcc-3.4.4/bin/g++.exe" -Wall -ftemplate-depth-100 -O0 -fno-inline -g -DBOOST_ALL_NO_LIB=1 -I"..\..\.." -c -o "..\..\..\bin.v2\libs\parameter\test\sfinae.test\gcc-3.4.4\debug\sfinae.o" "sfinae.cpp"
"/usr/local/gcc-3.4.4/bin/g++.exe" -o "..\..\..\bin.v2\libs\parameter\test\sfinae.test\gcc-3.4.4\debug\sfinae.exe" "..\..\..\bin.v2\libs\parameter\test\sfinae.test\gcc-3.4.4\debug\sfinae.o" -g
/usr/lib/gcc/i686-pc-cygwin/3.4.4/libstdc++.a(eh_terminate.o):: undefined reference to `___w32_sharedptr_terminate'
[...]
Google yields this:
http://gcc.gnu.org/ml/gcc/2004-04/msg00613.html
Click down the thread for an explanation and fix of the problem, maybe it has to do with yours.
Been there. That's not the problem. The problem is that BBv2's gcc support leaves out something crucial that's present in v1: adding the GCC installation's library path to the link path explicitly. In other words, the link command needs to be: /usr/local/gcc-3.4.4/bin/g++ -L/usr/local/gcc-3.4.4/lib ...whatever... As it turns out, this started to break sometime after I ran the Cygwin setup program and it replaced my previous default g++ (3.3.3) with a new version 3.4.4. There's a discussion of these issues in http://thread.gmane.org/gmane.comp.lib.boost.build/8887, but I fear it is still unresolved. Your ball, Volodya. -- Dave Abrahams Boost Consulting www.boost-consulting.com
participants (2)
-
David Abrahams
-
Joaquín Mª López Muñoz