summaryrefslogtreecommitdiff
path: root/libstdc++/config
diff options
context:
space:
mode:
authorDavid Edelsohn <edelsohn@gnu.org>2000-05-16 02:59:31 +0000
committerDavid Edelsohn <dje@gcc.gnu.org>2000-05-15 22:59:31 -0400
commit02a18962ab86a9a9eab7220cd779acc33fadf94e (patch)
treeed17b01726b42e304b108b63265d95a47f788b45 /libstdc++/config
parent63b8af0cca267a078ae2ffac7c443348114ff36c (diff)
downloadgcc-02a18962ab86a9a9eab7220cd779acc33fadf94e.tar.gz
Makefile.in: Change "pic" to depend on $(PICFLAG), not on $(enable_shared).
* Makefile.in: Change "pic" to depend on $(PICFLAG), not on $(enable_shared). * aix.ml: Build AIX-style shared library. From-SVN: r33921
Diffstat (limited to 'libstdc++/config')
-rw-r--r--libstdc++/config/aix.ml35
1 files changed, 28 insertions, 7 deletions
diff --git a/libstdc++/config/aix.ml b/libstdc++/config/aix.ml
index dec7a905a34..5d6b6b245eb 100644
--- a/libstdc++/config/aix.ml
+++ b/libstdc++/config/aix.ml
@@ -1,9 +1,30 @@
-# AIX has wierd shared/non-shared libraries.
+# AIX has weird shared/non-shared libraries.
-ARLIB = libstdc++-ar.a.$(VERSION)
-ARLINK = libstdc++-ar.a
-SHLINK = libstdc++.a
-LIBS = $(ARLIB) $(ARLINK) $(SHLIB) $(SHLINK)
-DEPLIBS = ../$(SHLIB)
+ARLIB =
+ARLINK =
+
+# Build shared object with interface versioning in name.
+# Archive resulting shared object in a library.
+AIXLINK = libstdc++.a
+AIXLIB = libstdc++-$(VERSION).a
+AIXSHLIB = shr$(LIBSTDCXX_INTERFACE)$(CXX_INTERFACE).o
+SHFLAGS = -Wl,-bexpall
SHDEPS = -lm
-SHFLAGS = -Wl,-unix
+SHOPT = -shared
+
+LIBS = $(AIXLIB) $(AIXLINK)
+
+$(AIXSHLIB): stdlist
+ $(CC) $(LIBCXXFLAGS) $(SHFLAGS) $(SHOPT) -o $(AIXSHLIB) `cat stdlist` $(SHDEPS)
+
+# Delete $(AIXSHLIB) so that it is not included in stdlist if rebuilding.
+$(AIXLIB): $(AIXSHLIB)
+ -rm -f t$(AIXLIB)
+ $(AR) $(AR_FLAGS) t$(AIXLIB) $(AIXSHLIB)
+ mv t$(AIXLIB) $(AIXLIB)
+ -rm -f $(AIXSHLIB)
+
+$(AIXLINK):
+ -rm -f $(AIXLINK)
+ $(LN_S) $(AIXLIB) $(AIXLINK) || cp $(AIXLIB) $(AIXLINK)
+