This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

3.0.1 PATCH: install.texi updates for Solaris 2


This patch updates the Solaris 2 parts of install.texi.

Two questions about this stuff:

* This section

Unfortunately, C++ shared libraries, including @samp{libstdc++}, won't work
properly if assembled with Sun @command{as}: the linker will complain about
relocations in read-only sections, in the definition of virtual
tables.  Also, Sun @command{as} fails to process long symbols resulting from
mangling template-heavy C++ function names.

  seems obsolete.  The introduction of the new ABI should have fixed part
  of this, and I never had any problems during my testing on Solaris 2.5.1
  and 8.  Can anyone confirm that this can go?

* Could someone review the section on missing/incomplete 64-bit SPARC V9
  support to ensure it's both complete and accurate?  It documents my
  current understanding of the situation, but may well be wrong.

Tested with texi2dvi and makeinfo.

Ok for branch and mainline?

	Rainer

-----------------------------------------------------------------------------
Rainer Orth, Faculty of Technology, Bielefeld University

Email: ro@TechFak.Uni-Bielefeld.DE


Thu Aug  2 20:35:15 2001  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>

	* doc/install.texi: Use Solaris 2, SunOS 4 as appropriate.
	(Specific, *-*-solaris2*): Explain this.
	Unconditionally warn against /usr/ucb tools.
	Move X11 header bug workaround here, update patches.
	(Specific, sparc-sun-solaris2*): Document 64-bit support.
	(Specific, sparc-sun-solaris2.7): Update patch 106950 status.
	
--- install.texi.alpha+irix	Thu Aug  2 21:17:42 2001
+++ install.texi	Thu Aug  2 22:15:49 2001
@@ -450,7 +450,7 @@
 @var{version} denotes the GCC version, such as 3.0.
 @item
 Check operating system specific directories (e.g.@: @file{/usr/ccs/bin} on
-Sun Solaris).
+Sun Solaris 2).
 @end itemize
 Note that these rules do not check for the value of @env{PATH}.  You may
 want to use @option{--with-as} if no assembler is installed in the
@@ -1148,7 +1148,7 @@
 OpenServer/Unixware};
 
 @item
-Solaris (SPARC, Intel)---@uref{http://www.sunfreeware.com/,,Sunfreeware};
+Solaris 2 (SPARC, Intel)---@uref{http://www.sunfreeware.com/,,Sunfreeware};
 
 @item
 SGI---@uref{http://freeware.sgi.com/,,SGI Freeware};
@@ -1374,15 +1374,15 @@
 @item
 @uref{#romp-*-aos,,romp-*-aos, romp-*-mach}
 @item
-@uref{#*-*-solaris*,,*-*-solaris*}
+@uref{#*-*-solaris2*,,*-*-solaris2*}
 @item
-@uref{#sparc-sun-solaris*,,sparc-sun-solaris*}
+@uref{#sparc-sun-solaris2*,,sparc-sun-solaris2*}
 @item
 @uref{#sparc-sun-solaris2.7,,sparc-sun-solaris2.7}
 @item
-@uref{#*-sun-solaris2.8,,*-sun-solaris2.8}
+@uref{#*-*-solaris2.8,,*-*-solaris2.8}
 @item
-@uref{#sparc-sun-sunos*,,sparc-sun-sunos*}
+@uref{#sparc-sun-sunos4*,,sparc-sun-sunos4*}
 @item
 @uref{#sparc-unknown-linux-gnulibc1,,sparc-unknown-linux-gnulibc1}
 @item
@@ -1403,7 +1403,7 @@
 
 @itemize
 @item
-@uref{#elf_targets,,all ELF targets} (SVR4, Solaris, etc.)
+@uref{#elf_targets,,all ELF targets} (SVR4, Solaris 2, etc.)
 @end itemize
 @end ifhtml
 
@@ -2940,31 +2940,35 @@
 </p>
 <hr>
 @end html
-@heading @anchor{*-*-solaris*}*-*-solaris*
+@c Please use Solaris 2 to refer to all release of Solaris, starting
+@c with 2.0 until 2.6, 7, and 8.  Solaris 1 was a marketing name for
+@c SunOS 4 releases which we don't use to avoid confusion.  Solaris
+@c alone is too unspecific and must be avoided.
+@heading @anchor{*-*-solaris2*}*-*-solaris2*
 
-Sun does not ship a C compiler with Solaris.  To bootstrap and install
+Sun does not ship a C compiler with Solaris 2.  To bootstrap and install
 GCC you first have to install a pre-built compiler, see our
 @uref{binaries.html,,binaries page} for details.
 
-Solaris' @file{/bin/sh} will often fail to configure @file{libstdc++-v3}, @file{boehm-gc} or
+The Solaris 2 @file{/bin/sh} will often fail to configure @file{libstdc++-v3}, @file{boehm-gc} or
 @file{libjava}.  If you encounter this problem, set @env{CONFIG_SHELL} to
 @file{/bin/ksh} in your environment and run @command{make bootstrap} again.
 Another possibility that sometimes helps is to remove
-@file{*-*-solaris*/config.cache}.
+@file{*-*-solaris2*/config.cache}.
 
 Solaris 2 comes with a number of optional OS packages.  Some of these
 packages are needed to use GCC fully, namely @code{SUNWarc},
 @code{SUNWbtool}, @code{SUNWesu}, @code{SUNWhea}, @code{SUNWlibm},
 @code{SUNWsprot}, and @code{SUNWtoo}.  If you did not install all
-optional packages when installing Solaris, you will need to verify that
+optional packages when installing Solaris 2, you will need to verify that
 the packages that GCC needs are installed.
 
 To check whether an optional package is installed, use
 the @command{pkginfo} command.  To add an optional package, use the
-@command{pkgadd} command.  For further details, see the Solaris
+@command{pkgadd} command.  For further details, see the Solaris 2
 documentation.
 
-On some versions of Solaris, trying to use the linker and other tools in
+Trying to use the linker and other tools in
 @file{/usr/ucb} to install GCC has been observed to cause trouble.
 For example, the linker may hang indefinitely.  The fix is to remove
 @file{/usr/ucb} from your @code{PATH}.
@@ -2979,20 +2983,46 @@
 tables.  Also, Sun @command{as} fails to process long symbols resulting from
 mangling template-heavy C++ function names.
 
+Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or
+newer: @command{g++} will complain that types are missing.  These headers assume
+that omitting the type means @code{int}; this assumption worked for C89 but
+is wrong for C++, and is now wrong for C99 also.
+
+@command{g++} accepts such (illegal) constructs with the option @option{-fpermissive}; it
+will assume that any missing type is @code{int} (as defined by C89).
+
+There are patches for Solaris 2.6 (105633-56 or newer for SPARC,
+106248-42 or newer for Intel), Solaris 7 (108376-21 or newer for SPARC,
+108377-20 for Intel), and Solaris 8 (108652-24 or newer for SPARC,
+108653-22 for Intel) that fix this bug.
+
 @html
 </p>
 <hr>
 @end html
-@heading @anchor{sparc-sun-solaris*}sparc-sun-solaris*
+@heading @anchor{sparc-sun-solaris2*}sparc-sun-solaris2*
 
-Sun @command{as} 4.X is broken in that it cannot cope with long symbol names.
+Sun @command{as} 4.x is broken in that it cannot cope with long symbol names.
 A typical error message might look similar to the following:
 
 @samp{/usr/ccs/bin/as: "/var/tmp/ccMsw135.s", line 11041:
 error: can't compute value of an expression involving an external symbol.}
 
-This is Sun bug 4237974.  This is fixed with patch 108908-02 and has
-been fixed in later (5.x) versions of the assembler.
+This is Sun bug 4237974.  This is fixed with patch 108908-02 for Solaris
+2.6 and has been fixed in later (5.x) versions of the assembler,
+starting with Solaris 7.
+
+Starting with Solaris 7, the operating system is capable of executing
+64-bit SPARC V9 binaries.  GCC 3.0 doesn't properly support this yet.
+Although some patches or recipes to enable this support have been posted
+to various newsgroups and mailing lists, we recommend against using
+them, since the compiler may either crash or, worse, silently generate
+bad code.  If you really need this capability now, you might try a CVS
+version of GCC 3.1, which will fully support this.  If all you want is
+code tuned for the UltraSPARC CPU, you should try the
+@option{-mtune=ultrasparc} option instead, which should be safe from
+those bugs and produce code that, unlike full 64-bit code, can still run
+on non-UltraSPARC machines.
 
 @html
 </p>
@@ -3000,7 +3030,7 @@
 @end html
 @heading @anchor{sparc-sun-solaris2.7}sparc-sun-solaris2.7
 
-Sun patch 107058-01 (1999-01-13) for SPARC Solaris 7 triggers a bug in
+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
@@ -3012,7 +3042,7 @@
 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-based hosts, so you may have to
+is preinstalled on some new Solaris 7-based hosts, so you may have to
 back it out.
 
 @item
@@ -3031,32 +3061,21 @@
 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, but (as of 1999-10-06) it is still being tested.
+the bug.  The current revision is -13 (2000-10-02), and is included in
+the Solaris 7 Recommended Patch Cluster. 
 @end itemize
 
 
 @html
 <p>
 <hr>
-<!-- ripped from the same FAQ that I answered -->
 @end html
-@heading @anchor{*-sun-solaris2.8}*-sun-solaris2.8
-
-Sun bug 4296832 turns up when compiling X11 headers with GCC 2.95 or
-newer: @command{g++} will complain that types are missing.  These headers assume
-that omitting the type means @code{int}; this assumption worked for C89 but
-is wrong for C++, and is now wrong for C99 also.
-
-@command{g++} accepts such (illegal) constructs with the option @option{-fpermissive}; it
-will assume that any missing type is @code{int} (as defined by C89).
-
-For Solaris 8, this is fixed by revision 24 or later of patch 108652
-(for SPARCs) or 108653 (for Intels).
+@heading @anchor{*-*-solaris2.8}*-*-solaris2.8
 
-Solaris 8's linker fails to link some @samp{libjava} programs if
+The Solaris 8 linker fails to link some @samp{libjava} programs if
 previously-installed GCC java libraries already exist in the configured
 prefix.  For this reason, @samp{libgcj} is disabled by default on Solaris 8.
-If you use GNU ld, or if you don't have a previously-installed @samp{libgcj} in
+If you use GNU @command{ld}, or if you don't have a previously-installed @samp{libgcj} in
 the same prefix, use @option{--enable-libgcj} to build and install the
 Java libraries.
 
@@ -3064,7 +3083,7 @@
 <p>
 <hr>
 @end html
-@heading @anchor{sparc-sun-sunos*}sparc-sun-sunos*
+@heading @anchor{sparc-sun-sunos4*}sparc-sun-sunos4*
 
 A bug in the SunOS 4 linker will cause it to crash when linking
 @option{-fPIC} compiled objects (and will therefore not allow you to build
@@ -3259,7 +3278,7 @@
 </p>
 <hr>
 @end html
-@heading @anchor{elf_targets}all ELF targets (SVR4, Solaris, etc.)
+@heading @anchor{elf_targets}all ELF targets (SVR4, Solaris 2, etc.)
 
 C++ support is significantly better on ELF targets if you use the
 @uref{./configure.html#with-gnu-ld,,GNU linker}; duplicate copies of


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]