OSDN Git Service

* doc/install.texi (Prerequisites): Document libelf usability on
authorro@138bc75d-0d04-0410-961f-82ee72b054a4 <ro@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 1 Apr 2010 12:33:35 +0000 (12:33 +0000)
committerMasaki Muranaka <monaka@monami-software.com>
Sun, 23 May 2010 05:16:02 +0000 (14:16 +0900)
IRIX 5/6 and Solaris 2.
(Specific, i?86-*-solaris2.10): No 64-bit default configuration.
Update GNU as, GNU ld requirements.
(Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
Document Sun Studio compiler download.
Update and simplify as, ld recommendations.
(Specific, *-*-solaris2.7): Note obsoletion, removal.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@157904 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/doc/install.texi

index a81603d..5ff8035 100644 (file)
@@ -1,5 +1,16 @@
 2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
 
+       * doc/install.texi (Prerequisites): Document libelf usability on
+       IRIX 5/6 and Solaris 2.
+       (Specific, i?86-*-solaris2.10): No 64-bit default configuration.
+       Update GNU as, GNU ld requirements.
+       (Specific, *-*-solaris2*): Document Solaris 7 obsoletion, removal.
+       Document Sun Studio compiler download.
+       Update and simplify as, ld recommendations.
+       (Specific, *-*-solaris2.7): Note obsoletion, removal.
+
+2010-04-01  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>
+
        * config.guess (i[34567]86-*-solaris2*): Default with_arch_32,
        with_tune_32 to pentium4.
 
index f374aae..f97fec7 100644 (file)
@@ -359,9 +359,9 @@ Necessary to build libgcj, the GCJ runtime.
 
 Necessary to build link-time optimization (LTO) support.  It can be
 downloaded from @uref{http://www.mr511.de/software/libelf-0.8.12.tar.gz},
-though it is commonly available in several systems.  The version in
-IRIX 6.5 doesn't work since it lacks @file{gelf.h}.  The version in
-Solaris 2 does work.
+though it is commonly available in several systems.  The versions in
+IRIX 5 and 6 don't work since they lack @file{gelf.h}.  The version in
+recent releases of Solaris 11 does work, previous ones don't yet.
 
 The @option{--with-libelf} configure option should be used if libelf is
 not installed in your default library search patch.
@@ -3474,7 +3474,7 @@ configuration like @samp{amd64-*-solaris2*} or @samp{x86_64-*-solaris2*}.
 It is recommended that you configure GCC to use the GNU assembler, in
 @file{/usr/sfw/bin/gas}.  The versions included in Solaris 10, from GNU
 binutils 2.15, and Solaris 11, from GNU binutils 2.19, work fine,
-although the current version, from GNU binutils
+although the latest (as of 2010-04-01) version, from GNU binutils
 2.20.1, is known to work, too.  Recent versions of the Sun assembler in
 @file{/usr/ccs/bin/as} work almost as well, though.
 @c FIXME: as patch requirements?
@@ -4084,7 +4084,9 @@ supported as cross-compilation target only.
 @c alone is too unspecific and must be avoided.
 @heading @anchor{x-x-solaris2}*-*-solaris2*
 
-Support for Solaris 7 has been removed in GCC 4.6.
+Support for Solaris 7 has been obsoleted in GCC 4.5, but can still be
+enabled by configuring with @option{--enable-obsolete}.  Support will be
+removed in GCC 4.6.
 
 Sun does not ship a C compiler with Solaris 2, though you can download
 the Sun Studio compilers for free from
@@ -4127,18 +4129,18 @@ The build process works more smoothly with the legacy Sun tools so, if you
 have @file{/usr/xpg4/bin} in your @env{PATH}, we recommend that you place
 @file{/usr/bin} before @file{/usr/xpg4/bin} for the duration of the build.
 
-We recommend the use of the Sun assembler or the GNU assembler, in
-conjunction with the Sun linker.  The GNU @command{as}
+We recommend the use of the vendor tools (Sun @command{as}, Sun
+@command{ld}), or eventually GNU @command{as}.  The GNU @command{as}
 versions included in Solaris 10, from GNU binutils 2.15, and Solaris 11,
 from GNU binutils 2.19, are known to work.  They can be found in
-@file{/usr/sfw/bin/gas}.  Current versions of GNU binutils (2.20.1)
-are known to work as well.  Note that your mileage may vary
+@file{/usr/sfw/bin/gas}.  Current versions of GNU binutils (2.20.1 as of
+2010-04-01) are known work either.  Note that your mileage may vary
 if you use a combination of the GNU tools and the Sun tools: while the
 combination GNU @command{as} + Sun @command{ld} should reasonably work,
 the reverse combination Sun @command{as} + GNU @command{ld} is known to
 cause memory corruption at runtime in some cases for C++ programs.
 @c FIXME: still?
-GNU @command{ld} usually works as well, although the version included in
+GNU @command{ld} usually works either, though the version included in
 Solaris 10 cannot be used due to several bugs.  Again, the current
 version (2.20.1) is known to work, but generally lacks platform specific
 features, so better stay with Sun @command{ld}.
@@ -4232,6 +4234,73 @@ For example on a Solaris 9 system:
 @html
 <hr />
 @end html
+@heading @anchor{sparc-sun-solaris27}sparc-sun-solaris2.7
+
+@emph{Note} that this configuration has been obsoleted in GCC 4.5, and will be
+removed in GCC 4.6.
+
+Sun patch 107058-01 (1999-01-13) for Solaris 7/SPARC triggers a bug in
+the dynamic linker.  This problem (Sun bug 4210064) affects GCC 2.8
+and later, including all EGCS releases.  Sun formerly recommended
+107058-01 for all Solaris 7 users, but around 1999-09-01 it started to
+recommend it only for people who use Sun's compilers.
+
+Here are some workarounds to this problem:
+@itemize @bullet
+@item
+Do not install Sun patch 107058-01 until after Sun releases a
+complete patch for bug 4210064.  This is the simplest course to take,
+unless you must also use Sun's C compiler.  Unfortunately 107058-01
+is preinstalled on some new Solaris 7-based hosts, so you may have to
+back it out.
+
+@item
+Copy the original, unpatched Solaris 7
+@command{/usr/ccs/bin/as} into
+@command{/usr/local/libexec/gcc/sparc-sun-solaris2.7/3.4/as},
+adjusting the latter name to fit your local conventions and software
+version numbers.
+
+@item
+Install Sun patch 106950-03 (1999-05-25) or later.  Nobody with
+both 107058-01 and 106950-03 installed has reported the bug with GCC
+and Sun's dynamic linker.  This last course of action is riskiest,
+for two reasons.  First, you must install 106950 on all hosts that
+run code generated by GCC; it doesn't suffice to install it only on
+the hosts that run GCC itself.  Second, Sun says that 106950-03 is
+only a partial fix for bug 4210064, but Sun doesn't know whether the
+partial fix is adequate for GCC@.  Revision -08 or later should fix
+the bug.  The current (as of 2004-05-23) revision is -24, and is included in
+the Solaris 7 Recommended Patch Cluster.
+@end itemize
+
+GCC 3.3 triggers a bug in version 5.0 Alpha 03/27/98 of the Sun assembler,
+which causes a bootstrap failure when linking the 64-bit shared version of
+@samp{libgcc}.  A typical error message is:
+
+@smallexample
+ld: fatal: relocation error: R_SPARC_32: file libgcc/sparcv9/_muldi3.o:
+  symbol <unknown>:  offset 0xffffffff7ec133e7 is non-aligned.
+@end smallexample
+
+@noindent
+This bug has been fixed in the final 5.0 version of the assembler.
+
+A similar problem was reported for version Sun WorkShop 6 99/08/18 of the
+Sun assembler, which causes a bootstrap failure with GCC 4.0.0:
+
+@smallexample
+ld: fatal: relocation error: R_SPARC_DISP32:
+  file .libs/libstdc++.lax/libsupc++convenience.a/vterminate.o:
+    symbol <unknown>: offset 0xfccd33ad is non-aligned
+@end smallexample
+
+@noindent
+This bug has been fixed in more recent revisions of the assembler.
+
+@html
+<hr />
+@end html
 @heading @anchor{sparc-sun-solaris210}sparc-sun-solaris2.10
 
 There is a bug in older versions of the Sun assembler which breaks