tech-toolchain archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

remove compat symbols from libstdc++



It is pointless to keep the @GLIBCXX_X.Y libstdc++ symbols since we
bump each version and our numbering scheme is not following theirs.
I propose we apply the following patch (and not bump from 9, since
nothing uses these symbols).

Note that the first patch is needed because the standard code is
relying on the compat versions... I guess this is what happens if
you don't test building without the compat versions...

This has the nice side effect that it fixes static linking issues
present because the version resolution does not work properly with
static libraries and you get errors like:

ld: libtest.so: version node not found for symbol _ZNSt13basic_istreamIwSt11char_traitsIwEE6ignoreEv@GLIBCXX_3.4

Opinions?

christos

Index: dist/libstdc++-v3/src/c++98/istream.cc
===================================================================
RCS file: /cvsroot/src/external/gpl3/gcc/dist/libstdc++-v3/src/c++98/istream.cc,v
retrieving revision 1.1.1.4
diff -u -u -r1.1.1.4 istream.cc
--- dist/libstdc++-v3/src/c++98/istream.cc	19 Jan 2019 10:14:04 -0000	1.1.1.4
+++ dist/libstdc++-v3/src/c++98/istream.cc	23 Apr 2019 17:00:16 -0000
@@ -112,8 +112,10 @@
     basic_istream<char>::
     ignore(streamsize __n, int_type __delim)
     {
+#if _GLIBCXX_COMPAT_
       if (traits_type::eq_int_type(__delim, traits_type::eof()))
 	return ignore(__n);
+#endif
 
       _M_gcount = 0;
       sentry __cerb(*this, true);
@@ -354,8 +356,10 @@
     basic_istream<wchar_t>::
     ignore(streamsize __n, int_type __delim)
     {
+#ifdef _GLIBCXX_COMPAT_
       if (traits_type::eq_int_type(__delim, traits_type::eof()))
 	return ignore(__n);
+#endif
 
       _M_gcount = 0;
       sentry __cerb(*this, true);
Index: lib/libstdc++-v3/Makefile
===================================================================
RCS file: /cvsroot/src/external/gpl3/gcc/lib/libstdc++-v3/Makefile,v
retrieving revision 1.46
diff -u -u -r1.46 Makefile
--- lib/libstdc++-v3/Makefile	20 Mar 2019 05:09:27 -0000	1.46
+++ lib/libstdc++-v3/Makefile	23 Apr 2019 17:00:16 -0000
@@ -58,7 +58,7 @@
 
 SUBDIR=		include
 
-SRCS=		${LIBSUPCXXSRCS} ${LIBSTDCXXSRCS}
+SRCS=		${LIBSUPCXXSRCS:N*compatibility*} ${LIBSTDCXXSRCS:N*compatibility*}
 
 CXXFLAGS+=	-fno-implicit-templates
 CPPFLAGS+=	-I${DIST}/libstdc++-v3/include


Home | Main Index | Thread Index | Old Index