]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
collect2.c (is_ctor_dtor): Add other possible JOINER values.
authorDavid Edelsohn <edelsohn@gnu.org>
Fri, 16 Aug 2002 18:03:09 +0000 (18:03 +0000)
committerDavid Edelsohn <dje@gcc.gnu.org>
Fri, 16 Aug 2002 18:03:09 +0000 (14:03 -0400)
        * collect2.c (is_ctor_dtor): Add other possible JOINER values.

        * config/rs6000/rs6000.c (output_mi_thunk): Return to function
        section on TARGET_ELF.

        * doc/install.texi (*-ibm-aix*): Explain AIX shared object versioning.
        (Binaries): Update Bull Freeware URL.

From-SVN: r56381

gcc/ChangeLog
gcc/collect2.c
gcc/config/rs6000/rs6000.c
gcc/doc/install.texi

index d1b684c643994ced9e9ce1ab9ee5dd9c7eaf4a27..0b43dbdc322b043bafb7c87911b2ccef97293fc4 100644 (file)
@@ -1,3 +1,13 @@
+2002-08-16  David Edelsohn  <edelsohn@gnu.org>
+
+       * collect2.c (is_ctor_dtor): Add other possible JOINER values.
+
+       * config/rs6000/rs6000.c (output_mi_thunk): Return to function
+       section on TARGET_ELF.
+
+       * doc/install.texi (*-ibm-aix*): Explain AIX shared object versioning.
+       (Binaries): Update Bull Freeware URL.
+
 2002-08-15  Neil Booth  <neil@daikokuya.co.uk>
 
        PR preprocessor/7358
index 6fb2efd76b10b16ab2ea064c0f763a9aabce3855..933a2777f7f4c05a5dc4f37e851388df362ed9f2 100644 (file)
@@ -577,6 +577,15 @@ is_ctor_dtor (s)
   const char *orig_s = s;
 
   static const struct names special[] = {
+#ifndef NO_DOLLAR_IN_LABEL
+    { "GLOBAL__I$", sizeof ("GLOBAL__I$")-1, 1, 0 },
+    { "GLOBAL__D$", sizeof ("GLOBAL__D$")-1, 2, 0 },
+#else
+#ifndef NO_DOT_IN_LABEL
+    { "GLOBAL__I.", sizeof ("GLOBAL__I.")-1, 1, 0 },
+    { "GLOBAL__D.", sizeof ("GLOBAL__D.")-1, 2, 0 },
+#endif /* NO_DOT_IN_LABEL */
+#endif /* NO_DOLLAR_IN_LABEL */
     { "GLOBAL__I_", sizeof ("GLOBAL__I_")-1, 1, 0 },
     { "GLOBAL__D_", sizeof ("GLOBAL__D_")-1, 2, 0 },
     { "GLOBAL__F_", sizeof ("GLOBAL__F_")-1, 5, 0 },
index 7940315fc4bbe163d581d9b1df1efd9e2ca0254c..2582c118c5bd3fb38ba64ff86fb21eae4a74d6ae 100644 (file)
@@ -9821,7 +9821,10 @@ output_mi_thunk (file, thunk_fndecl, delta, function)
            }
          assemble_name (file, fname);
          putc ('\n', file);
-         text_section ();
+         if (TARGET_ELF)
+           function_section (current_function_decl);
+         else
+           text_section ();
          if (TARGET_MINIMAL_TOC)
            asm_fprintf (file, (TARGET_32BIT)
                         ? "\t{l|lwz} %s,%s(%s)\n" : "\tld %s,%s(%s)\n", r12,
index ee1af27158167e0979469b68700ab290ad8d5afe..83f161c6887b31dc14f59ee77cf126923906bb39 100644 (file)
@@ -1382,7 +1382,7 @@ contact their makers.
 AIX:
 @itemize
 @item
-@uref{http://freeware.bull.net,,Bull's Freeware and Shareware Archive for AIX};
+@uref{http://www.bullfreeware.com,,Bull's Freeware and Shareware Archive for AIX};
 
 @item
 @uref{http://aixpdslib.seas.ucla.edu,,UCLA Software Library for AIX}.
@@ -2554,6 +2554,35 @@ interoperate with GCC@.
 Building @file{libstdc++.a} requires a fix for a 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