[v3] Link libstdc++.so with -pthread on Tru64 UNIX (PR target/45693)
Rainer Orth
ro@CeBiTec.Uni-Bielefeld.DE
Thu Oct 28 14:42:00 GMT 2010
As indicated in the PR, all C++ EH tests on Tru64 UNIX were failing
since TLS (emutls in this case) was enabled by an unrelated patch. The
problem is the same as in PR PR target/46131: emutls relies on a couple
of libpthread functions. While there are dummy implementations in
libgcc, of course we need the real thing here. The proper solution is
to link libstdc++.so with -pthread here (instead of, e.g., linking with
-lpthread in g++), so EH doesn't always work, even if linked with
another driver or in a mixed-language problem. Manual testing indicated
that this fixes the problem as expected. alpha-dec-osf5.1b testing in
progress, will commit once completed successfully.
Rainer
2010-10-28 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
PR target/45693
* configure.host (osf*): Add -pthread to OPT_LDFLAGS.
diff -r 201f524dd582 libstdc++-v3/configure.host
--- a/libstdc++-v3/configure.host Thu Oct 28 15:17:34 2010 +0200
+++ b/libstdc++-v3/configure.host Thu Oct 28 16:32:58 2010 +0200
@@ -261,6 +261,12 @@
netbsd*)
os_include_dir="os/bsd/netbsd"
;;
+ osf*)
+ # libstdc++.so relies on emutls on Tru64 UNIX, which only works with the
+ # real functions implemented in libpthread.so, not with the dummies in
+ # libgcc, so always pass -pthread.
+ OPT_LDFLAGS="${OPT_LDFLAGS} -pthread"
+ ;;
qnx6.[12]*)
os_include_dir="os/qnx/qnx6.1"
c_model=c
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University
More information about the Libstdc++
mailing list