As discussed in PR libstdc++/52689, no longer exporting
std::_List_node_base for non-PIC code breaks linking go1 on Solaris with
static libstdc++:

Undefined                       first referenced
 symbol                             in file
_ZNSt15_List_node_base4swapERS_S0_  
/vol/gcc/lib/libppl_c.a(ppl_c_Pointset_Powerset_C_Polyhedron.o)
_ZNSt15_List_node_base4hookEPS_     /vol/gcc/lib/libppl_c.a(ppl_c_Polyhedron.o)
_ZNSt15_List_node_base6unhookEv     
/vol/gcc/lib/libppl_c.a(ppl_c_Pointset_Powerset_C_Polyhedron.o)
_ZNSt15_List_node_base8transferEPS_S0_ 
/vol/gcc/lib/libppl_c.a(ppl_c_Pointset_Powerset_C_Polyhedron.o)
ld: fatal: symbol referencing errors. No output written to go1

The following patch fixes this, bootstrapped without regressions on
i386-pc-solaris2.11, approved by Benjamin in the PR, installed on
mainline.

        Rainer


2012-04-05  Rainer Orth  <r...@cebitec.uni-bielefeld.de>

        Partially revert:
        2012-03-28  Benjamin Kosnik  <b...@redhat.com>

        PR libstdc++/52689
        * src/c++98/compatibility-list.cc: Same.

# HG changeset patch
# Parent 5e498daa5c157ffd17681f8d800f6866eb837cf6
Export std::_List_node_base for non-PIC code

diff --git a/libstdc++-v3/src/c++98/compatibility-list.cc b/libstdc++-v3/src/c++98/compatibility-list.cc
--- a/libstdc++-v3/src/c++98/compatibility-list.cc
+++ b/libstdc++-v3/src/c++98/compatibility-list.cc
@@ -24,8 +24,6 @@
 
 #include <bits/move.h>
 
-#ifdef PIC
-
 #ifndef _GLIBCXX_BEGIN_NAMESPACE_COMPAT
 # define _GLIBCXX_BEGIN_NAMESPACE_COMPAT
 #endif
@@ -146,5 +144,3 @@ _GLIBCXX_BEGIN_NAMESPACE_COMPAT
 _GLIBCXX_END_NAMESPACE_COMPAT
 
 } // namespace std
-
-#endif

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

Reply via email to