libstdc++-v3/configure contains this: ldver=`$LD --version 2>/dev/null | head -1 | \ sed -e 's/GNU \(go\)\{0,1\}ld \(version \)\{0,1\}\(([^)]*) \)\{0,1\}\([0-9.][0-9.]*\).*/\4/'`
that sed script fails with /usr/bin/sed on Solaris, disabling symbol versioning. Here's an example of what I get: ++ /sbcimp/run/pd/binutils/32-bit/2.18/bin/ld --version ++ head -1 ++ sed -e 's/GNU ld \(version \)\{0,1\}\(([^)]*) \)\{0,1\}\([0-9.][0-9.]*\).*/\3/' + ldver='GNU ld (GNU Binutils) 2.18' ++ echo GNU ld '(GNU' 'Binutils)' 2.18 ++ nawk -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }' + glibcxx_gnu_ld_version=1800 This leads to: configure: WARNING: === Linker version 1800 is too old for configure: WARNING: === full symbol versioning support in this release of GCC. configure: WARNING: === You would need to upgrade your binutils to version configure: WARNING: === 21400 or later and rebuild GCC. configure: WARNING: === Symbol versioning will be disabled. configure: versioning on shared library symbols is no Could be fixed by requiring a POSIX sed, or by using awk to select the version (we already require POSIX awk) -- Summary: symbol versioning disabled due to non-portable sed script Product: gcc Version: 4.3.3 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jwakely dot gcc at gmail dot com GCC build triplet: ultrasparc3-sun-solaris2.10 GCC host triplet: ultrasparc3-sun-solaris2.10 GCC target triplet: ultrasparc3-sun-solaris2.10 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=38923