On Mon, Feb 27, 2012 at 02:38:14PM +0100, Rainer Orth wrote: > Paolo Carlini <paolo.carl...@oracle.com> writes: > > >> Jakub Jelinek<ja...@redhat.com> writes: > >> > >>> On Wed, Feb 22, 2012 at 12:07:39PM +0100, Rainer Orth wrote: > >>>> The following patch has remained unreviewed for a week: > >>>> > >>>> [v3, libgomp, build] Fix Solaris symbol versioning (PR libstdc++/52188) > >>>> http://gcc.gnu.org/ml/gcc-patches/2012-02/msg00819.html > >>>> > >>>> It is critical to avoid breaking libstdc++.so symbol versioning on > >>>> Solaris and requires libstdc++ and libgomp maintainers. > >>> The libgomp changes are ok if the libstdc++ changes are approved. > >> Thanks. Unfortunately, none of the libstdc++ maintainers hasn't > >> commented in almost two weeks. It would be a pity to release 4.7.0 with > >> this bug unfixed. > > I cannot say to understand in detail the issue, but if it affects Solaris > > only, likewise the fix (I think so), and you double checked it on, say, > > x86_64-Linux, the patch is Ok with me. > > While the mechanism introduced is generic, it currently affects Solaris > only. And yes, I've compared versioning in libstdc++.so and libgomp.so > on x86_64-unknown-linux-gnu without and with the patch as described in > the submission: no change.
Unfortunately this broke build on powerpc{,64}-linux and likely all other GLIBCXX_LDBL* targets. The problem is that config/abi/pre/gnu.ver doesn't end with a newline, so we end up with: # Symbols in the support library (libsupc++) supporting transactional memory. CXXABI_TM_1 { global: __cxa_tm_cleanup; };# Appended to version file. GLIBCXX_LDBL_3.4 { _ZNSt14numeric_limitsIgE*; and $(EGREP) -v '#(#| |$$)' just throws away the whole };# Appended to version file. line. I wonder if sed -e 's/#[# $].*$//' wouldn't be better, or alternative add ^ before the first # in the egrep regex. Of course we can add a newline to gnu.ver, but the next time somebody forgots to add a newline at the end of the file we'll have the same problem again. Benjamin, what do you prefer? Jakub