summaryrefslogtreecommitdiff
path: root/gnu/egcs/install/dec-osf-shlibstdc++.patch
blob: 1b2a4acbe3a84e0710a84d21adca98a88a21ee91 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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.