Module Name:    src
Committed By:   mrg
Date:           Fri Mar  1 08:15:23 UTC 2019

Modified Files:
        src/external/gpl3/gcc/dist/libstdc++-v3/config/abi/pre: gnu.ver
        src/external/gpl3/gcc/lib/libstdc++-v3: Makefile

Log Message:
#if 0 the x and y symbols in GLIBCXX_3.4 namespace.  they cause
duplicate symbols on netbsd.  see PR#54027.

with this disabled, turn on using the symver-config.h for the
gnu.ver processing so that other defines are handled.

fix some depends for gnu.ver processing.


To generate a diff of this commit:
cvs rdiff -u -r1.1.1.6 -r1.2 \
    src/external/gpl3/gcc/dist/libstdc++-v3/config/abi/pre/gnu.ver
cvs rdiff -u -r1.44 -r1.45 src/external/gpl3/gcc/lib/libstdc++-v3/Makefile

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/gpl3/gcc/dist/libstdc++-v3/config/abi/pre/gnu.ver
diff -u src/external/gpl3/gcc/dist/libstdc++-v3/config/abi/pre/gnu.ver:1.1.1.6 src/external/gpl3/gcc/dist/libstdc++-v3/config/abi/pre/gnu.ver:1.2
--- src/external/gpl3/gcc/dist/libstdc++-v3/config/abi/pre/gnu.ver:1.1.1.6	Sat Jan 19 10:14:13 2019
+++ src/external/gpl3/gcc/dist/libstdc++-v3/config/abi/pre/gnu.ver	Fri Mar  1 08:15:23 2019
@@ -1007,7 +1007,10 @@ GLIBCXX_3.4 {
 #ifdef HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT
    # GLIBCXX_ABI compatibility only.
     # std::string
+    # XXXMRG this causes dupe symbols on netbsd
+#if 0
     _ZNKSs11_M_disjunctEPKc;
+#endif
     _ZNKSs15_M_check_lengthE[jmy][jmy]PKc;
     _ZNSs4_Rep26_M_set_length_and_sharableE*;
     _ZNSs7_M_copyEPcPKc[jmy];
@@ -1015,7 +1018,10 @@ GLIBCXX_3.4 {
     _ZNSs9_M_assignEPc[jmy]c;
 
     # std::wstring
+    # XXXMRG this causes dupe symbols on netbsd
+#if 0
     _ZNKSbIwSt11char_traitsIwESaIwEE11_M_disjunctEPKw;
+#endif
     _ZNKSbIwSt11char_traitsIwESaIwEE15_M_check_lengthE[jmy][jmy]PKc;
     _ZNSbIwSt11char_traitsIwESaIwEE4_Rep26_M_set_length_and_sharableE*;
     _ZNSbIwSt11char_traitsIwESaIwEE7_M_copyEPwPKw[jmy];

Index: src/external/gpl3/gcc/lib/libstdc++-v3/Makefile
diff -u src/external/gpl3/gcc/lib/libstdc++-v3/Makefile:1.44 src/external/gpl3/gcc/lib/libstdc++-v3/Makefile:1.45
--- src/external/gpl3/gcc/lib/libstdc++-v3/Makefile:1.44	Wed Feb 27 08:21:42 2019
+++ src/external/gpl3/gcc/lib/libstdc++-v3/Makefile	Fri Mar  1 08:15:23 2019
@@ -1,4 +1,4 @@
-#	$NetBSD: Makefile,v 1.44 2019/02/27 08:21:42 mrg Exp $
+#	$NetBSD: Makefile,v 1.45 2019/03/01 08:15:23 mrg Exp $
 
 REQUIRETOOLS=	yes
 NOLINT=		# defined
@@ -18,15 +18,19 @@ LIBDPLIBS+=	m ${.CURDIR}/../../../../../
 COPTS.random.cc+=	${${ACTIVE_CC} == "clang":? -mrdrnd :}
 .endif
 
+DIST=		${GCCDIST}
+GNUVER=		${DIST}/libstdc++-v3/config/abi/pre/gnu.ver
 SYMBOLS=	libstdc++-symbols.ver
 .if ${MKPIC} != "no"
-${SYMBOLS}: Makefile
-	cat ${DIST}/libstdc++-v3/config/abi/pre/gnu.ver ${G_port_specific_symbol_files} | \
+${SYMBOLS}: Makefile ${GNUVER}
+	cat ${GNUVER} ${G_port_specific_symbol_files} | \
 	${TOOL_GREP} -E -v '^[     ]*#(#| |$$)' | \
-	${CXX} -I${DESTDIR}/usr/include/g++ -E -P -include ${.CURDIR}/arch/${LIBSTDCXX_MACHINE_ARCH}/c++config.h - > \
+	${CXX} -I${DESTDIR}/usr/include/g++ -E -P -include ${.CURDIR}/arch/${LIBSTDCXX_MACHINE_ARCH}/symver-config.h - > \
 	${.TARGET}.tmp && mv ${.TARGET}.tmp ${.TARGET} && rm -f ${.TARGET}.tmp
 
-CLEANFILES+=	${SYMBOLS}
+CLEANFILES+=	${SYMBOLS} ${SYMBOLS}.tmp
+
+DPADD+=		${SYMBOLS}
 
 .if ${MKPICLIB} != "no"
 libstdc++_pic.a:: ${SYMBOLS}

Reply via email to