NetBSD/gnu/dist/toolchain/install/dec-osf-shlibstdc++.patch

28 lines
1.1 KiB
Diff

Index: libstdc++/ChangeLog
from Alexandre Oliva <oliva@dcc.unicamp.br>
* config/dec-osf.ml: Force all of libgcc into libstdc++, to avoid
multiply-defined linker errors.
Index: libstdc++/config/dec-osf.ml
===================================================================
RCS file: /egcs/carton/cvsfiles/egcs/libstdc++/config/dec-osf.ml,v
retrieving revision 1.2
diff -u -r1.2 dec-osf.ml
--- libstdc++/config/dec-osf.ml 1998/08/30 21:18:41 1.2
+++ libstdc++/config/dec-osf.ml 1999/07/15 07:40:11
@@ -3,4 +3,12 @@
LIBS = $(ARLIB) $(ARLINK) $(SHLIB) $(SHLINK)
DEPLIBS = ../$(SHLIB)
-SHDEPS = -lm
+SHDEPS = -lm -Wl,-all,-lgcc,-none
+# Some testcases in the testsuite required symbols from libgcc, say,
+# __pure_virtual, that would not have been copied into libstdc++
+# without this -Wl switch above. But __pure_virtual depended on other
+# symbols of libgcc that had been copied to libstdc++. However,
+# DU4.0d's ld would report such symbols as duplicates, and refuse to
+# link. Forcing some symbols from libgcc into libstdc++ ensures that
+# we don't get such late undefined symbols, avoiding the bogus
+# multiple-definition errors.