From fdf68669ec920c9530aa1b6b7e8fe31377ea780a Mon Sep 17 00:00:00 2001 From: David Edelsohn Date: Fri, 16 Aug 2002 13:24:33 -0400 Subject: [PATCH] * doc/install.texi (*-ibm-aix*): Explain AIX shared object versioning. From-SVN: r56380 --- gcc/ChangeLog | 6 +++++- gcc/doc/install.texi | 29 +++++++++++++++++++++++++++++ 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index c011e156363..118c8f6d37d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,4 +1,8 @@ -2002-07-30 Andrew Haley +2002-08-16 David Edelsohn + + * doc/install.texi (*-ibm-aix*): Explain AIX shared object versioning. + +2002-08-16 Andrew Haley * tree-inline.c: Add includes for Java inliner. (remap_decl): Don't handle anonymous types for Java. diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi index 8f2dbb13769..d9f409351e8 100644 --- a/gcc/doc/install.texi +++ b/gcc/doc/install.texi @@ -2337,6 +2337,35 @@ interoperate with GCC@. Building @file{libstdc++.a} requires a fix for an AIX Assembler bug APAR IY26685 (AIX 4.3) or APAR IY25528 (AIX 5.1). +@samp{libstdc++} in GCC 3.2 increments the major version number of the +shared object and GCC installation places the @file{libstdc++.a} +shared library in a common location which will overwrite the GCC 3.1 +version of the shared library. Applications either need to be +re-linked against the new shared library or the GCC 3.1 version of the +@samp{libstdc++} shared object needs to be available to the AIX +runtime loader. The GCC 3.1 @samp{libstdc++.so.4} shared object can +be installed for runtime dynamic loading using the following steps to +set the @samp{F_LOADONLY} flag in the shared object for @emph{each} +multilib @file{libstdc++.a} installed: + +Extract the shared object from each the GCC 3.1 @file{libstdc++.a} +archive: +@example + % ar -x libstdc++.so.4 libstdc++.a +@end example + +Enable the @samp{F_LOADONLY} flag so that the shared object will be +available for runtime dynamic loading, but not linking: +@example + % strip -e libstdc++.so.4 +@end example + +Archive the runtime-only shared object in the GCC 3.2 +@file{libstdc++.a} archive: +@example + % ar -q libstdc++.so.4 libstdc++.a +@end example + Linking executables and shared libraries may produce warnings of duplicate symbols. The assembly files generated by GCC for AIX always have included multiple symbol definitions for certain global variable -- 2.30.2