aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorDavid Edelsohn <edelsohn@gnu.org>2002-01-17 20:01:49 +0000
committerDavid Edelsohn <dje@gcc.gnu.org>2002-01-17 15:01:49 -0500
commit2705baf5464f845b6515f5a30649aa7312ef8b96 (patch)
tree71288b8b8e075108399d4225ebb684762f55abfa /gcc
parentc56664e09e68fda5815501bbfe0cbbb206c2b691 (diff)
downloadgcc-2705baf5464f845b6515f5a30649aa7312ef8b96.zip
gcc-2705baf5464f845b6515f5a30649aa7312ef8b96.tar.gz
gcc-2705baf5464f845b6515f5a30649aa7312ef8b96.tar.bz2
install.texi (*-ibm-aix*): Update assembler and exception handling information.
* doc/install.texi (*-ibm-aix*): Update assembler and exception handling information. * doc/trouble.texi (Interoperation): Add libstdc++ information for AIX. (Misunderstandings): Add template instantiation and static template member information for AIX. From-SVN: r48962
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog9
-rw-r--r--gcc/doc/install.texi24
-rw-r--r--gcc/doc/trouble.texi37
3 files changed, 48 insertions, 22 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index de5d585..5d6e957 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,12 @@
+2002-01-17 David Edelsohn <edelsohn@gnu.org>
+
+ * doc/install.texi (*-ibm-aix*): Update assembler and exception
+ handling information.
+ * doc/trouble.texi (Interoperation): Add libstdc++ information
+ for AIX.
+ (Misunderstandings): Add template instantiation and static template
+ member information for AIX.
+
2002-01-17 Jason Merrill <jason@redhat.com>
* dbxout.c (dbxout_type): Support const and volatile.
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
index 6d1ea9b..1c110c5 100644
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -2512,14 +2512,15 @@ does not provide a definition that will confuse @command{configure}.
If this error occurs during stage2 or later, then the problem most likely
is the version of Make (see above).
-Binutils 2.10 does not support AIX 4.3. Binutils available from the
-@uref{http://www-1.ibm.com/servers/aix/products/aixos/linux/,,AIX
-Toolbox for Linux: GNU and Open Source tools for AIX};
-website does work. Binutils 2.11 is expected to include AIX 4.3
-support. The GNU Assembler is necessary for @samp{libstdc++} to build. The
-AIX native @command{ld} still is recommended. The native AIX tools do
+The GNU Assembler incorrectly reports that it supports WEAK symbols on
+AIX which causes GCC to try to utilize weak symbol functionality which
+is not really supported on the platform. The native @command{as} and
+@command{ld} still are recommended. The native AIX tools do
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).
+
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
@@ -2527,17 +2528,6 @@ and function declarations in the original program. The warnings should
not prevent the linker from producing a correct library or runnable
executable.
-GCC's exception handling implementation stores process-specific data in
-the shared library which prevents exception handling from working
-correctly on AIX in a default installation. To work around this, the
-shared objects need to be loaded in the process private segment to
-prevent them from being shared and marked read-only. This is
-accomplished on AIX by installing the shared libraries
-(@file{libgcc_s.a} and @file{libstdc++.a}) with file permissions
-disallowing read-other (@samp{chmod a+x,o-r}). If the shared libraries
-have been used, the shared library segment can be cleaned using the
-@samp{/usr/sbin/slibclean} command.
-
AIX 4.3 utilizes a ``large format'' archive to support both 32-bit and
64-bit object modules. The routines provided in AIX 4.3.0 and AIX 4.3.1
to parse archive libraries did not handle the new format correctly.
diff --git a/gcc/doc/trouble.texi b/gcc/doc/trouble.texi
index 0b61c44..fb6e983 100644
--- a/gcc/doc/trouble.texi
+++ b/gcc/doc/trouble.texi
@@ -291,14 +291,36 @@ bug because redefining an @code{extern} variable as @code{static}
is undefined in ISO C@.
@item
+In extremely rare cases involving some very large functions you may
+receive errors from the AIX Assembler complaining about a displacement
+that is too large. If you should run into it, you can work around by
+making your function smaller.
+
+@item
+The @file{libstdc++.a} library in GCC relies on the SVR4 dynamic
+linker semantics which merges global symbols between libraries and
+applications, especially necessary for C++ streams functionality.
+This is not the default behavior of AIX shared libraries and dynamic
+linking. @file{libstdc++.a} is built on AIX with ``runtime-linking''
+enabled so that symbol merging can occur. To utilize this feature,
+the application linked with @file{libstdc++.a} must include the
+@option{-Wl,-brtl} flag on the link line. G++ cannot impose this
+because this option may interfere with the semantics of the user
+program and users may not always use @samp{g++} to link his or her
+application. Applications are not required to use the
+@option{-Wl,-brtl} flag on the link line---the rest of the
+@file{libstdc++.a} library which is not dependent on the symbol
+merging semantics will continue to function correctly.
+
+@item
AIX on the RS/6000 provides support (NLS) for environments outside of
the United States. Compilers and assemblers use NLS to support
locale-specific representations of various objects including
-floating-point numbers (@samp{.} vs @samp{,} for separating decimal fractions).
-There have been problems reported where the library linked with GCC does
-not produce the same floating-point formats that the assembler accepts.
-If you have this problem, set the @env{LANG} environment variable to
-@samp{C} or @samp{En_US}.
+floating-point numbers (@samp{.} vs @samp{,} for separating decimal
+fractions). There have been problems reported where the library linked
+with GCC does not produce the same floating-point formats that the
+assembler accepts. If you have this problem, set the @env{LANG}
+environment variable to @samp{C} or @samp{En_US}.
@item
@opindex fdollars-in-identifiers
@@ -901,6 +923,11 @@ implemented using the ISO standard @file{stdarg.h} method of
variable arguments. Furthermore, calls to functions using @file{stdarg.h}
variable arguments must have a prototype for the called function
in scope at the time of the call.
+
+@item
+On AIX and other platforms without weak symbol support, templates
+need to be instantiated explicitly and symbols for static members
+of templates will not be generated.
@end itemize
@node C++ Misunderstandings