public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* Remove obsolete Solaris 8 support
@ 2012-03-12 17:45 Rainer Orth
  2012-03-12 18:31 ` Ian Lance Taylor
                   ` (7 more replies)
  0 siblings, 8 replies; 18+ messages in thread
From: Rainer Orth @ 2012-03-12 17:45 UTC (permalink / raw)
  To: gcc-patches; +Cc: libstdc++, java-patches, Eric Botcazou, Ian Lance Taylor

[-- Attachment #1: Type: text/plain, Size: 5162 bytes --]

Since even extended support for Solaris 8 ends by March 31st, this patch
removes Solaris 8 support from mainline.  Given that extended support
for Solaris 9 lasts until October 2014, I guess that will remain in GCC
for at least one major release.

Again, I don't expect the patch to be controversial, but a few issues
bear mention:

* Although libgcc/config/sparc/sol2-unwind.h could be simplified quite a
  bit, perhaps we could go further: I wonder if the remaining nframes = 2
  case really applies to Solaris 9.  If not, one could massivly simplify
  this code.

* As in the IRIX case, I wonder if removing Solaris 8 support from libgo
  is a good idea while it still is supported on the 4.7 branch.

* In libstdc++, all checks for the presence of overloads can be replaced
  by hardcoded values.  This also allows __CORRECT_ISO_CPP_MATH_H_PROTO2
  to be removed and to drop the `1' in __CORRECT_ISO_CPP_MATH_H_PROTO1.

* I haven't yet checked if the Solaris references in
  libstdc++-v3/config/io/basic_file_stdio.cc are correct or also apply
  to newer versions.  This can probably wait for a later time.

* libstdc++-v3/doc/xml/manual/internals.xml still has various references
  to older Solaris versions.  I haven't touched those.

Bootstrapped without regressions on {i386-pc, sparc-sun}-solaris2.{9, 10, 11}
(Solaris 9/SPARC still running).  Ok for mainline if that passes (though
I guess I don't need approval for most of these changes)?

Thanks.
	Rainer


2012-03-11  Rainer Orth  <ro@CeBiTec.Uni-Bielefeld.DE>

	libstdc++-v3:
	* config/os/solaris/solaris2.8: Rename to ...
	* config/os/solaris/solaris2.9: ... this.
	* config/abi/post/solaris2.8: Rename to ...
	* config/abi/post/solaris2.9: ... this.
	* configure.host (os_include_dir): Remove solaris2.8.
	Reflect renaming.
	(abi_baseline_pair): Remove *-*-solaris2.8.
	Reflect renaming.

	* configure.ac (GLIBCXX_CHECK_MATH_PROTO): Remove
	(GLIBCXX_CHECK_STDLIB_PROTO): Remove.
	* acinclude.m4 (GLIBCXX_CHECK_MATH_PROTO): Remove
	(GLIBCXX_CHECK_STDLIB_PROTO): Remove.
	(GLIBCXX_CHECK_GTHREADS): Remove Solaris 8 handling.
	* crossconfig.m4 (GLIBCXX_CROSSCONFIG): Remove *-solaris2.8
	handling.
	* configure: Regenerate.
	* config.h.in: Regenerate.

	* config/os/solaris/solaris2.9/os_defines.h
	(__CORRECT_ISO_CPP_MATH_H_PROTO): Define.
	(__CORRECT_ISO_CPP_STDLIB_H_PROTO): Define.
	* include/c_global/cmath: Rename __CORRECT_ISO_CPP_MATH_H_PROTO1
	to __CORRECT_ISO_CPP_MATH_H_PROTO.
	[!__CORRECT_ISO_CPP_MATH_H_PROTO2]: Remove.
	* include/tr1/cmath: Rename __CORRECT_ISO_CPP_MATH_H_PROTO1 to
	__CORRECT_ISO_CPP_MATH_H_PROTO.

	* doc/xml/manual/configure.xml (Configure, --enable-libstdcxx-threads):
	Remove Solaris 8 reference.

	* testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
	Don't xfail on *-*-solaris2.8.
	* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/12.cc:
	Likewise.
	* testsuite/ext/enc_filebuf/char/13598.cc: Don't xfail on
	*-*-solaris2.8.

	libjava:
	* configure.ac (THREADLIBS): Remove *-*-solaris2.8 handling.
	* configure: Regenerate.

	libgo:
	* configure.ac (OSCFLAGS): Remove *-*-solaris2.8 handling.
	(libgo_cv_lib_makecontext_stack_top): Remove
	sparc*-*-solaris2.8* handling.
	* configure: Regenerate.

	libgcc:
	* config/i386/sol2-unwind.h (x86_fallback_frame_state): Remove
	Solaris 8 handling.
	* config/sparc/sol2-unwind.h (sparc64_is_sighandler): Remove
	Solaris 8 handling.
	(sparc_is_sighandler): Likewise.

	libcpp:
	* lex.c: Remove Solaris 8 reference.

	gcc/testsuite:
	* g++.dg/warn/miss-format-1.C: Remove *-*-solaris2.8 handling.
	* gcc.dg/c99-stdint-6.c: Likewise.
	* gcc.dg/lto/20090210_0.c: Likewise.
	* gcc.dg/pr28796-2.c: Don't skip on sparc*-sun-solaris2.8.
	* gcc.dg/pragma-init-fini.c: Don't skip on i?86-*-solaris2.8.
	* gcc.dg/pragma-init-fini-2.c: Likewise.
	* gcc.dg/torture/pr47917.c: Remove *-*-solaris2.8 handling.
	* gcc.target/i386/pr22076.c: Remove i?86-*-solaris2.8 handling.
	* gcc.target/i386/pr22152.c: Likewise.
	* gcc.target/i386/vect8-ret.c: Likewise.
	* lib/target-supports.exp (add_options_for_tls): Remove Solaris 8
	handling.

	gcc:
	* config.gcc (enable_obsolete): Remove *-*-solaris2.8*.
	(*-*-solaris2.[0-8], *-*-solaris2.[0-8].*): Mark unsupported.
	(i[34567]86-*-solaris2*, x86_64-*-solaris2.1[0-9]*): Remove
	Solaris 8 support.
	* configure.ac (gcc_cv_ld_hidden): Remove *-*-solaris2.8*.
	(ld_tls_support): Remove Solaris 8 references.
	(lwp_dir, lwp_spec): Remove support for alternate thread library.
	* acinclude.m4 (gcc_cv_initfini_array): Remove *-*-solaris2.*
	tests.
	* configure: Regenerate.
	* config.in: Regenerate.

	* config/sol2.h (LINK_SPEC): Remove LIB_THREAD_LDFLAGS_SPEC.
	* config/i386/sol2.h: Remove Solaris 8 references.

	* doc/install.texi (Specific, i?86-*-solaris2.[89]): Rename to ...
	(i?86-*-solaris2.9): ... this.
	Remove Solaris 8 references.
	(Specific, *-*-solaris2*): Document Solaris 8 removal.
	Remove Solaris 8 references.

	fixincludes:
	* inclhack.def (math_exception): Remove duplicate.
	(solaris_cond_init): Remove.
	(solaris_sys_va_list): Remove Solaris 8 support.
	* fixincl.x: Regenerate.
	* tests/base/pthread.h [SOLARIS_COND_INIT_CHECK]: Remove.


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: sol8-removal.patch --]
[-- Type: text/x-patch, Size: 51979 bytes --]

# HG changeset patch
# Parent 70d9a4a121c064783ddbabfaf18e606d404a2e3c
Remove obsolete Solaris 8 support

diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
--- a/fixincludes/inclhack.def
+++ b/fixincludes/inclhack.def
@@ -2382,7 +2382,7 @@ fix = {
     files     = math.h;
     select    = "struct exception";
     /*
-     * This should be bypassed on __cplusplus, but some supposedly C++ C++
+     * This should be bypassed on __cplusplus, but some supposedly C++
      * aware headers, such as Solaris 8 and 9, don't wrap their struct
      * exception either.  So currently we bypass only for glibc, based on a
      * comment in the fixed glibc header.  Ick.
@@ -2926,26 +2926,6 @@ fix = {
 
 
 /*
- * Solaris 8 PTHREAD_COND_INITIALIZER lacks the __pthread_cond_magic field.
- * COND_MAGIC is only defined in <synch.h> and pollutes the namespace, so
- * use the value literally instead.
- */
-fix = {
-    hackname = solaris_cond_init;
-    select = '@\(#\)pthread.h' "[ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI";
-    files = pthread.h;
-    mach = '*-*-solaris2.8';
-    c_fix = format;
-    c_fix_arg = "%1, 0x4356%2";
-    c_fix_arg = "^(#define[ \t]+PTHREAD_COND_INITIALIZER[ \t]+"
-                "\\{.*0)(\\},[ \t]*0\\}.*)$";
-    test_text =
-    '#pragma ident	"@(#)pthread.h	1.29	01/07/07 SMI"'"\n"
-    '#define	PTHREAD_COND_INITIALIZER	{{{0}, 0}, 0}	/* = DEFAULTCV */';
-};
-
-
-/*
  *  g++ rejects functions declared with both C and C++ linkage.
  */
 fix = {
@@ -3422,13 +3402,13 @@ fix = {
 
 
 /*
- * On Solaris 8 and 9, __va_list needs to become a typedef for
+ * On Solaris 9, __va_list needs to become a typedef for
  * __builtin_va_list to make -Wmissing-format-attribute work.
  */
 fix = {
     hackname = solaris_sys_va_list;
     files    = sys/va_list.h;
-    mach     = '*-*-solaris2.[89]';
+    mach     = '*-*-solaris2.9';
     select   = "#if.*__STDC__.*\n"
 	       "typedef void \\*__va_list;\n"
 	       "#else\n"
diff --git a/fixincludes/tests/base/pthread.h b/fixincludes/tests/base/pthread.h
--- a/fixincludes/tests/base/pthread.h
+++ b/fixincludes/tests/base/pthread.h
@@ -75,16 +75,6 @@ extern int __sigsetjmp (struct __jmp_buf
 #endif  /* PTHREAD_INCOMPLETE_STRUCT_ARGUMENT_CHECK */
 
 
-#if defined( SOLARIS_COND_INIT_CHECK )
-#pragma ident	"@(#)pthread.h	1.29	01/07/07 SMI"
-#if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)
-#define	PTHREAD_COND_INITIALIZER	{{{0}, 0, 0x4356}, 0}	/* = DEFAULTCV */
-#else
-#define	PTHREAD_COND_INITIALIZER	{{{0}, 0, 0x4356}, {0}}	/* = DEFAULTCV */
-#endif
-#endif  /* SOLARIS_COND_INIT_CHECK */
-
-
 #if defined( SOLARIS_MUTEX_INIT_2_CHECK )
 #ident "@(#)pthread.h  1.26  98/04/12 SMI"
 #if __STDC__ - 0 == 0 && !defined(_NO_LONGLONG)
diff --git a/gcc/acinclude.m4 b/gcc/acinclude.m4
--- a/gcc/acinclude.m4
+++ b/gcc/acinclude.m4
@@ -461,23 +461,7 @@ changequote([,])dnl
 #  error The C library not known to support .init_array/.fini_array
 # endif
 #endif
-])],[
-    case "${target}" in
-      *-*-solaris2.8*)
-	# .init_array/.fini_array support was introduced in Solaris 8
-	# patches 109147-08 (sparc) and 109148-08 (x86).  Since ld.so.1 and
-	# ld are guaranteed to be updated in lockstep, we can check ld -V
-	# instead.  Unfortunately, proper ld version numbers were only
-	# introduced in rev. -14, so we check for that.
-  	if test "$gcc_cv_sun_ld_vers_minor" -lt 272; then
-	  gcc_cv_initfini_array=no
-	fi
-      ;;
-      *-*-solaris2.9* | *-*-solaris2.1[[0-9]]*)
-        # .init_array/.fini_array support is present since Solaris 9 FCS.
-        ;;
-    esac
-], [gcc_cv_initfini_array=no]);;
+])],, [gcc_cv_initfini_array=no]);;
     esac
   else
     AC_MSG_CHECKING(cross compile... guessing)
diff --git a/gcc/config.gcc b/gcc/config.gcc
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -251,7 +251,6 @@ case ${target} in
  | arm*-*-uclinux*			\
  | arm*-wince-pe*			\
  | score-*				\
- | *-*-solaris2.8*			\
  )
     if test "x$enable_obsolete" != xyes; then
       echo "*** Configuration ${target} is obsolete." >&2
@@ -282,9 +281,9 @@ case ${target} in
  | *-*-rtemsaout*			\
  | *-*-rtemscoff*			\
  | *-*-solaris2				\
- | *-*-solaris2.[0-7]			\
- | *-*-solaris2.[0-7].*			\
- | *-*-sysv*		\
+ | *-*-solaris2.[0-8]			\
+ | *-*-solaris2.[0-8].*			\
+ | *-*-sysv*				\
  | vax-*-vms*				\
  )
 	echo "*** Configuration ${target} not supported" 1>&2
@@ -1320,9 +1319,8 @@ i[34567]86-*-solaris2* | x86_64-*-solari
 	# Set default arch_32 to pentium4, tune_32 to generic like the other
 	# i386 targets, although config.guess defaults to i386-pc-solaris2*.
 	case ${target} in
-	*-*-solaris2.[89]*)
-		# Solaris 8 and 9/x86 cannot execute SSE/SSE2 instructions by
-		# default.
+	*-*-solaris2.9*)
+		# Solaris 9/x86 cannot execute SSE/SSE2 instructions by default.
 		with_arch_32=${with_arch_32:-pentiumpro}
 		;;
 	*)
diff --git a/gcc/config/i386/sol2.h b/gcc/config/i386/sol2.h
--- a/gcc/config/i386/sol2.h
+++ b/gcc/config/i386/sol2.h
@@ -1,6 +1,6 @@
 /* Target definitions for GCC for Intel 80386 running Solaris 2
    Copyright (C) 1993, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003,
-   2004, 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
+   2004, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
    Contributed by Fred Fish (fnf@cygnus.com).
 
 This file is part of GCC.
@@ -21,7 +21,7 @@ along with GCC; see the file COPYING3.  
 
 /* Augment i386/unix.h version to return 8-byte vectors in memory, matching
    Sun Studio compilers until version 12, the only ones supported on
-   Solaris 8 and 9.  */
+   Solaris 9.  */
 #undef TARGET_SUBTARGET_DEFAULT
 #define TARGET_SUBTARGET_DEFAULT \
 	(MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_VECT8_RETURNS)
@@ -63,7 +63,7 @@ along with GCC; see the file COPYING3.  
 
 #define ASM_CPU_SPEC ""
  
-/* Don't include ASM_PIC_SPEC.  While the Solaris 8 and 9 assembler accepts
+/* Don't include ASM_PIC_SPEC.  While the Solaris 9 assembler accepts
    -K PIC, it gives many warnings:
 	R_386_32 relocation is used for symbol "<symbol>"
    GNU as doesn't recognize -K at all.  */
diff --git a/gcc/config/sol2.h b/gcc/config/sol2.h
--- a/gcc/config/sol2.h
+++ b/gcc/config/sol2.h
@@ -1,6 +1,6 @@
 /* Operating system specific defines to be used when targeting GCC for any
    Solaris 2 system.
-   Copyright 2002, 2003, 2004, 2007, 2008, 2009, 2010, 2011
+   Copyright 2002, 2003, 2004, 2007, 2008, 2009, 2010, 2011, 2012
    Free Software Foundation, Inc.
 
 This file is part of GCC.
@@ -173,7 +173,6 @@ along with GCC; see the file COPYING3.  
    %{static:-dn -Bstatic} \
    %{shared:-G -dy %{!mimpure-text:-z text}} \
    %{symbolic:-Bsymbolic -G -dy -z text} \
-   %{pthreads|pthread|fprofile-generate*:" LIB_THREAD_LDFLAGS_SPEC "} \
    %(link_arch) \
    %{Qy:} %{!Qn:-Qy}"
 
diff --git a/gcc/configure.ac b/gcc/configure.ac
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -2345,15 +2345,6 @@ else
       hppa64*-*-hpux* | ia64*-*-hpux*)
 	gcc_cv_ld_hidden=yes
 	;;
-      *-*-solaris2.8*)
-        # .hidden support was backported to Solaris 8, starting with ld
-	# version 1.276.
-	if test "$ld_vers_minor" -ge 276; then
-	  gcc_cv_ld_hidden=yes
-	else
-	  gcc_cv_ld_hidden=no
-	fi
-	;;
       *-*-solaris2.9* | *-*-solaris2.1[0-9]*)
 	# Support for .hidden in Sun ld appeared in Solaris 9 FCS, but
 	# .symbolic was only added in Solaris 9 12/02.
@@ -3170,10 +3161,9 @@ else
   [set_have_as_tls=yes])
 fi
 case "$target" in
-  # TLS was introduced in the Solaris 9 FCS release and backported to
-  # Solaris 8 patches.  Support for GNU-style TLS on x86 was only
-  # introduced in Solaris 9 4/04, replacing the earlier Sun style that Sun
-  # ld and GCC don't support any longer.
+  # TLS was introduced in the Solaris 9 FCS release.  Support for GNU-style
+  # TLS on x86 was only introduced in Solaris 9 4/04, replacing the earlier
+  # Sun style that Sun ld and GCC don't support any longer.
   *-*-solaris2.*)
     AC_MSG_CHECKING(linker and ld.so.1 TLS support)
     ld_tls_support=no
@@ -3184,14 +3174,6 @@ case "$target" in
       ld_tls_support=yes
     else
       case "$target" in
-        # Solaris 8/x86 ld has GNU style TLS support since version 1.280.
-        i?86-*-solaris2.8)
-          min_tls_ld_vers_minor=280
-          ;;
-        # Solaris 8/SPARC ld has TLS support since version 1.272.
-        sparc*-*-solaris2.8)
-          min_tls_ld_vers_minor=272
-          ;;
 	# Solaris 9/x86 ld has GNU style TLS support since version 1.374.
         i?86-*-solaris2.9)
           min_tls_ld_vers_minor=374
@@ -3215,28 +3197,6 @@ case "$target" in
     LIBS=
     LDFLAGS=
 
-    AC_MSG_CHECKING(alternate thread library)
-    case "$target" in
-      # TLS support was backported to Solaris 8 patches, but only lives in
-      # the alternate thread library which became the default in Solaris 9. 
-      # We want to always use that, irrespective of TLS support.
-      *-*-solaris2.8)
-        # Take multilib subdir into account.  There's no spec to handle
-	# this.  The 64 symlink exists since Solaris 8.
-        lwp_dir=/usr/lib/lwp
-	lwp_spec="-L$lwp_dir%{m64:/64} -R$lwp_dir%{m64:/64}"
-        LDFLAGS="-L$lwp_dir -R$lwp_dir"
-        ;;
-      *-*-solaris2*)
-        lwp_dir="none"
-	lwp_spec=""
-	;;
-    esac    
-    # Always define LIB_THREAD_LDFLAGS_SPEC, even without TLS support.
-    AC_DEFINE_UNQUOTED(LIB_THREAD_LDFLAGS_SPEC, "$lwp_spec",
-        [Define to the linker flags to use for -pthread.])
-    AC_MSG_RESULT($lwp_dir)
-
     AC_MSG_CHECKING(library containing $tga_func)
     # Before Solaris 10, __tls_get_addr (SPARC/x64) resp. ___tls_get_addr
     # (32-bit x86) only lived in libthread, so check for that.  Keep
@@ -3246,13 +3206,6 @@ case "$target" in
     if test $set_have_as_tls = no; then
       LIBS=
     fi
-    # Even without TLS support on Solaris 8, explicitly link with libthread
-    # to guarantee that the alternate thread library is used.
-    case "$target" in
-      *-*-solaris2.8)
-	LIBS=-lthread
-	;;
-    esac
     # Always define LIB_TLS_SPEC, even without TLS support.
     AC_DEFINE_UNQUOTED(LIB_TLS_SPEC, "$LIBS",
         [Define to the library containing __tls_get_addr/___tls_get_addr.])
diff --git a/gcc/doc/install.texi b/gcc/doc/install.texi
--- a/gcc/doc/install.texi
+++ b/gcc/doc/install.texi
@@ -3014,7 +3014,7 @@ information are.
 @item
 @uref{#ix86-x-linux,,i?86-*-linux*}
 @item
-@uref{#ix86-x-solaris289,,i?86-*-solaris2.[89]}
+@uref{#ix86-x-solaris289,,i?86-*-solaris2.9}
 @item
 @uref{#ix86-x-solaris210,,i?86-*-solaris2.10}
 @item
@@ -3551,8 +3551,8 @@ found on @uref{http://www.bitwizard.nl/s
 @html
 <hr />
 @end html
-@heading @anchor{ix86-x-solaris289}i?86-*-solaris2.[89]
-The Sun assembler in Solaris 8 and 9 has several bugs and limitations.
+@heading @anchor{ix86-x-solaris29}i?86-*-solaris2.9
+The Sun assembler in Solaris 9 has several bugs and limitations.
 While GCC works around them, several features are missing, so it is
 @c FIXME: which ones?
 recommended to use the GNU assembler instead.  There is no bundled
@@ -3562,9 +3562,9 @@ work.
 Solaris@tie{}2/x86 doesn't support the execution of SSE/SSE2 instructions
 before Solaris@tie{}9 4/04, even if the CPU supports them.  Programs will
 receive @code{SIGILL} if they try.  The fix is available both in
-Solaris@tie{}9 Update@tie{}6 and kernel patch 112234-12 or newer.  There is no
-corresponding patch for Solaris 8.  To avoid this problem,
-@option{-march} defaults to @samp{pentiumpro} on Solaris 8 and 9.  If
+Solaris@tie{}9 Update@tie{}6 and kernel patch 112234-12 or newer.  To
+avoid this problem,
+@option{-march} defaults to @samp{pentiumpro} on Solaris 9.  If
 you have the patch installed, you can configure GCC with an appropriate
 @option{--with-arch} option, but need GNU @command{as} for SSE2 support.
 
@@ -4066,9 +4066,8 @@ supported as cross-compilation target on
 @c alone is too unspecific and must be avoided.
 @heading @anchor{x-x-solaris2}*-*-solaris2*
 
-Support for Solaris 8 has been obsoleted in GCC 4.7, but can still be
-enabled by configuring with @option{--enable-obsolete}.  Support will be
-removed in GCC 4.8.  Support for Solaris 7 has been removed in GCC 4.6.
+Support for Solaris 8 has removed in GCC 4.8.  Support for Solaris 7 has
+been removed in GCC 4.6.
 
 Sun does not ship a C compiler with Solaris 2 before Solaris 10, though
 you can download the Sun Studio compilers for free.  In Solaris 10 and
@@ -4141,13 +4140,6 @@ newer: @command{g++} will complain that 
 assume that omitting the type means @code{int}; this assumption worked for
 C90 but is wrong for C++, and is now wrong for C99 also.
 
-@command{g++} accepts such (invalid) constructs with the option
-@option{-fpermissive}; it will assume that any missing type is @code{int}
-(as defined by C90).
-
-There are patches for Solaris 8 (108652-24 or newer for SPARC,
-108653-22 for Intel) that fix this bug.
-
 Sun bug 4927647 sometimes causes random spurious testsuite failures
 related to missing diagnostic output.  This bug doesn't affect GCC
 itself, rather it is a kernel bug triggered by the @command{expect}
@@ -4155,27 +4147,19 @@ program which is used only by the GCC te
 causes the @command{expect} program to miss anticipated output, extra
 testsuite failures appear.
 
-There are patches for Solaris 8 (117350-12 or newer for SPARC,
-117351-12 or newer for Intel) and Solaris 9 (117171-11 or newer for
+There are patches for Solaris 9 (117171-11 or newer for
 SPARC, 117172-11 or newer for Intel) that address this problem.
 
-Solaris@tie{}8 provides an alternate implementation of the thread
-library @samp{libthread}.  It is required for TLS support and has
-been made the default in Solaris@tie{}9, so it is always used on
-Solaris@tie{}8.
-
-Thread-local storage (TLS) is supported in Solaris@tie{}8 and 9, but requires
+Thread-local storage (TLS) is supported in Solaris@tie{}9, but requires
 some patches.  The @samp{libthread} patches provide the
 @code{__tls_get_addr} (SPARC, 64-bit x86) resp.@ @code{___tls_get_addr}
-(32-bit x86) functions.  On Solaris@tie{}8, you need 108993-26 or newer on
-SPARC, 108994-26 or newer on Intel.  On Solaris@tie{}9, the necessary support
+(32-bit x86) functions.  On Solaris@tie{}9, the necessary support
 on SPARC is present since FCS, while 114432-05 or newer is required on
-Intel.  Additionally, on Solaris@tie{}8, patch 109147-14 or newer on SPARC or
-109148-22 or newer on Intel are required for the Sun @command{ld} and
-runtime linker (@command{ld.so.1}) support.  Again, Solaris@tie{}9/SPARC
-works since FCS, while 113986-02 is required on Intel.  The linker
+Intel.  Additionally, on Solaris@tie{}9/x86, patch 113986-02 or newer is
+required for the Sun @command{ld} and runtime linker (@command{ld.so.1})
+support, while Solaris@tie{}9/SPARC works since FCS.  The linker
 patches must be installed even if GNU @command{ld} is used. Sun
-@command{as} in Solaris@tie{}8 and 9 doesn't support the necessary
+@command{as} in Solaris@tie{}9 doesn't support the necessary
 relocations, so GNU @command{as} must be used.  The @command{configure}
 script checks for those prerequisites and automatically enables TLS
 support if they are met.  Although those minimal patch versions should
diff --git a/gcc/testsuite/g++.dg/warn/miss-format-1.C b/gcc/testsuite/g++.dg/warn/miss-format-1.C
--- a/gcc/testsuite/g++.dg/warn/miss-format-1.C
+++ b/gcc/testsuite/g++.dg/warn/miss-format-1.C
@@ -4,7 +4,7 @@
 /* { dg-options "-Wmissing-format-attribute" } */
 /* { dg-options "-Wmissing-format-attribute -Wno-abi" { target arm_eabi } } */
 /* VxWorks does not provide vscanf, either in kernel or RTP mode.  */
-/* { dg-error "not declared" "" { target { *-*-solaris2.8 *-*-vxworks* } } 26 } */
+/* { dg-error "not declared" "" { target *-*-vxworks* } 26 } */
 
 #include <stdio.h>
 #include <stdarg.h>
@@ -23,7 +23,7 @@ bar (const char *fmt, ...)
 {
   va_list ap;
   va_start (ap, fmt);
-  vscanf (fmt, ap); /* { dg-warning "candidate" "scanf attribute warning" { xfail *-*-solaris2.8 *-*-vxworks* } } */
+  vscanf (fmt, ap); /* { dg-warning "candidate" "scanf attribute warning" { xfail *-*-vxworks* } } */
   va_end (ap);
 }
 
diff --git a/gcc/testsuite/gcc.dg/c99-stdint-6.c b/gcc/testsuite/gcc.dg/c99-stdint-6.c
--- a/gcc/testsuite/gcc.dg/c99-stdint-6.c
+++ b/gcc/testsuite/gcc.dg/c99-stdint-6.c
@@ -2,7 +2,7 @@
    with any system <inttypes.h> header.  */
 /* { dg-do compile { target inttypes_types } } */
 /* { dg-options "-std=iso9899:1999 -pedantic-errors" } */
-/* { dg-options "-std=gnu99 -pedantic-errors -DNO_FAST_TYPES" { target *-*-solaris2.[89]* } } */
+/* { dg-options "-std=gnu99 -pedantic-errors -DNO_FAST_TYPES" { target *-*-solaris2.9* } } */
 
 #include <inttypes.h>
 #ifndef SIGNAL_SUPPRESS
diff --git a/gcc/testsuite/gcc.dg/lto/20090210_0.c b/gcc/testsuite/gcc.dg/lto/20090210_0.c
--- a/gcc/testsuite/gcc.dg/lto/20090210_0.c
+++ b/gcc/testsuite/gcc.dg/lto/20090210_0.c
@@ -2,7 +2,7 @@
 /* { dg-require-effective-target fpic } */
 /* { dg-suppress-ld-options {-fPIC} }  */
 /* { dg-require-effective-target tls_runtime } */
-/* { dg-extra-ld-options "-pthread" { target *-*-solaris2.[89] } } */
+/* { dg-extra-ld-options "-pthread" { target *-*-solaris2.9 } } */
 int foo (int x)
 {
   return x;
diff --git a/gcc/testsuite/gcc.dg/pr28796-2.c b/gcc/testsuite/gcc.dg/pr28796-2.c
--- a/gcc/testsuite/gcc.dg/pr28796-2.c
+++ b/gcc/testsuite/gcc.dg/pr28796-2.c
@@ -2,7 +2,6 @@
 /* { dg-options "-O2 -funsafe-math-optimizations -fno-finite-math-only -DUNSAFE" } */
 /* { dg-add-options ieee } */
 /* { dg-skip-if "No Inf/NaN support" { spu-*-* } } */
-/* { dg-skip-if "Bug in _Q_dtoq" { sparc*-sun-solaris2.8 } } */
 
 #include "tg-tests.h"
 
diff --git a/gcc/testsuite/gcc.dg/pragma-init-fini-2.c b/gcc/testsuite/gcc.dg/pragma-init-fini-2.c
--- a/gcc/testsuite/gcc.dg/pragma-init-fini-2.c
+++ b/gcc/testsuite/gcc.dg/pragma-init-fini-2.c
@@ -2,7 +2,6 @@
 
 /* { dg-do link { target *-*-solaris2.* } } */
 /* { dg-options "-fpic" } */
-/* { dg-xfail-if "no .pushsection/.popsection" { i?86-*-solaris2.8 && { ! gas } } } */
 
 #include <stdio.h>
 
diff --git a/gcc/testsuite/gcc.dg/pragma-init-fini.c b/gcc/testsuite/gcc.dg/pragma-init-fini.c
--- a/gcc/testsuite/gcc.dg/pragma-init-fini.c
+++ b/gcc/testsuite/gcc.dg/pragma-init-fini.c
@@ -1,7 +1,6 @@
 /* Tests for #pragma init and #pragma fini.  */
 
 /* { dg-do run { target *-*-solaris2.* } } */
-/* { dg-skip-if "no .pushsection/.popsection" { i?86-*-solaris2.8 && { ! gas } } } */
 
 extern void abort ();
 
diff --git a/gcc/testsuite/gcc.dg/torture/pr47917.c b/gcc/testsuite/gcc.dg/torture/pr47917.c
--- a/gcc/testsuite/gcc.dg/torture/pr47917.c
+++ b/gcc/testsuite/gcc.dg/torture/pr47917.c
@@ -1,6 +1,6 @@
 /* { dg-do run } */
 /* { dg-options "-std=c99" } */
-/* { dg-options "-std=c99 -D_XOPEN_SOURCE=500" { target *-*-solaris2.[89] } } */
+/* { dg-options "-std=c99 -D_XOPEN_SOURCE=500" { target *-*-solaris2.9 } } */
 /* { dg-options "-std=gnu99" { target *-*-hpux* } } */
 /* { dg-additional-options "-D__USE_MINGW_ANSI_STDIO=1" { target *-*-mingw* } } */
 /* { dg-xfail-if "no C99 snprintf function" { *-*-hpux10* } } */
diff --git a/gcc/testsuite/gcc.target/i386/pr22076.c b/gcc/testsuite/gcc.target/i386/pr22076.c
--- a/gcc/testsuite/gcc.target/i386/pr22076.c
+++ b/gcc/testsuite/gcc.target/i386/pr22076.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -fomit-frame-pointer -flax-vector-conversions -mmmx" } */
-/* { dg-options "-O2 -fomit-frame-pointer -flax-vector-conversions -mmmx -mno-vect8-ret-in-mem" { target i?86-*-solaris2.[89] *-*-vxworks* } } */
+/* { dg-options "-O2 -fomit-frame-pointer -flax-vector-conversions -mmmx -mno-vect8-ret-in-mem" { target i?86-*-solaris2.9 *-*-vxworks* } } */
 
 #include <mmintrin.h>
 
diff --git a/gcc/testsuite/gcc.target/i386/pr22152.c b/gcc/testsuite/gcc.target/i386/pr22152.c
--- a/gcc/testsuite/gcc.target/i386/pr22152.c
+++ b/gcc/testsuite/gcc.target/i386/pr22152.c
@@ -1,6 +1,6 @@
 /* { dg-do compile } */
 /* { dg-options "-O2 -msse2" } */
-/* { dg-options "-O2 -msse2 -mno-vect8-ret-in-mem" { target i?86-*-solaris2.[89] *-*-vxworks* } } */
+/* { dg-options "-O2 -msse2 -mno-vect8-ret-in-mem" { target i?86-*-solaris2.9 *-*-vxworks* } } */
 /* { dg-additional-options "-mabi=sysv" { target x86_64-*-mingw* } } */
 
 #include <mmintrin.h>
diff --git a/gcc/testsuite/gcc.target/i386/vect8-ret.c b/gcc/testsuite/gcc.target/i386/vect8-ret.c
--- a/gcc/testsuite/gcc.target/i386/vect8-ret.c
+++ b/gcc/testsuite/gcc.target/i386/vect8-ret.c
@@ -1,5 +1,5 @@
 /* { dg-do compile { target ia32 } } */
-/* { dg-options "-mmmx" { target i?86-*-solaris2.[89] *-*-vxworks* } } */
+/* { dg-options "-mmmx" { target i?86-*-solaris2.9 *-*-vxworks* } } */
 /* { dg-options "-mmmx -mvect8-ret-in-mem" } */
 
 #include <mmintrin.h>
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -569,11 +569,11 @@ proc check_effective_target_pcc_bitfield
 # Add to FLAGS all the target-specific flags needed to use thread-local storage.
 
 proc add_options_for_tls { flags } {
-    # On Solaris 8 and 9, __tls_get_addr/___tls_get_addr only lives in
+    # On Solaris 9, __tls_get_addr/___tls_get_addr only lives in
     # libthread, so always pass -pthread for native TLS.
     # Need to duplicate native TLS check from
     # check_effective_target_tls_native to avoid recursion.
-    if { [istarget *-*-solaris2.\[89\]*] &&
+    if { [istarget *-*-solaris2.9*] &&
 	 [check_no_messages_and_pattern tls_native "!emutls" assembly {
 	     __thread int i;
 	     int f (void) { return i; }
diff --git a/libcpp/lex.c b/libcpp/lex.c
--- a/libcpp/lex.c
+++ b/libcpp/lex.c
@@ -1,6 +1,6 @@
 /* CPP Library - lexical analysis.
    Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005, 2007, 2008, 2009, 2010,
-   2011 Free Software Foundation, Inc.
+   2011, 2012 Free Software Foundation, Inc.
    Contributed by Per Bothner, 1994-95.
    Based on CCCP program by Paul Rubin, June 1986
    Adapted to ANSI C, Richard Stallman, Jan 1987
@@ -267,7 +267,6 @@ search_line_acc_char (const uchar *s, co
 /* Disable on Solaris 2/x86 until the following problems can be properly
    autoconfed:
 
-   The Solaris 8 assembler cannot assemble SSE2/SSE4.2 insns.
    The Solaris 9 assembler cannot assemble SSE4.2 insns.
    Before Solaris 9 Update 6, SSE insns cannot be executed.
    The Solaris 10+ assembler tags objects with the instruction set
diff --git a/libgcc/config/i386/sol2-unwind.h b/libgcc/config/i386/sol2-unwind.h
--- a/libgcc/config/i386/sol2-unwind.h
+++ b/libgcc/config/i386/sol2-unwind.h
@@ -1,5 +1,5 @@
 /* DWARF2 EH unwinding support for AMD x86-64 and x86.
-   Copyright (C) 2009, 2010 Free Software Foundation, Inc.
+   Copyright (C) 2009, 2010, 2012 Free Software Foundation, Inc.
 
 This file is part of GCC.
 
@@ -144,55 +144,23 @@ x86_fallback_frame_state (struct _Unwind
   mcontext_t *mctx;
   long new_cfa;
 
-  if (/* Solaris 8 - single-threaded
+  if (/* Solaris 9 - single-threaded
 	----------------------------
-	<sigacthandler+17>:  mov    0x10(%ebp),%esi
-	<sigacthandler+20>:  push   %esi
-	<sigacthandler+21>:  pushl  0xc(%ebp)
-	<sigacthandler+24>:  mov    0x8(%ebp),%ecx
-	<sigacthandler+27>:  push   %ecx
-	<sigacthandler+28>:  mov    offset(%ebx),%eax
-	<sigacthandler+34>:  call   *(%eax,%ecx,4)
-	<sigacthandler+37>:  add    $0xc,%esp        <--- PC
-	<sigacthandler+40>:  push   %esi ... */
-      (*(unsigned long *)(pc - 20) == 0x5610758b
-       && *(unsigned long *)(pc - 16) == 0x8b0c75ff
-       && *(unsigned long *)(pc - 12) == 0x8b51084d
-       && *(unsigned char *)(pc - 8)  == 0x83
-       && *(unsigned long *)(pc - 4)  == 0x8814ff00
-       && *(unsigned long *)(pc - 0)  == 0x560cc483)
-
-      || /* Solaris 8 - multi-threaded
-	   ---------------------------
-	   <__sighndlr+0>:      push   %ebp
-	   <__sighndlr+1>:      mov    %esp,%ebp
-	   <__sighndlr+3>:      pushl  0x10(%ebp)
-	   <__sighndlr+6>:      pushl  0xc(%ebp)
-	   <__sighndlr+9>:      pushl  0x8(%ebp)
-	   <__sighndlr+12>:     call   *0x14(%ebp)
-	   <__sighndlr+15>:     leave               <--- PC  */
-	 (*(unsigned long *)(pc - 15) == 0xffec8b55
-	  && *(unsigned long *)(pc - 11) == 0x75ff1075
-	  && *(unsigned long *)(pc - 7)  == 0x0875ff0c
-	  && *(unsigned long *)(pc - 3)  == 0xc91455ff)
-
-      || /* Solaris 9 - single-threaded
-	   ----------------------------
-           <sigacthandler+16>:    mov    0x244(%ebx),%ecx
-	   <sigacthandler+22>:    mov    0x8(%ebp),%eax
-	   <sigacthandler+25>:    mov    (%ecx,%eax,4),%ecx
-	   <sigacthandler+28>:    pushl  0x10(%ebp)
-	   <sigacthandler+31>:    pushl  0xc(%ebp)
-	   <sigacthandler+34>:    push   %eax
-	   <sigacthandler+35>:    call   *%ecx
-	   <sigacthandler+37>:    add    $0xc,%esp	<--- PC
-	   <sigacthandler+40>:    pushl  0x10(%ebp) */
-         (*(unsigned long *)(pc - 21) == 0x2448b8b
-	  && *(unsigned long *)(pc - 17) == 0x458b0000
-	  && *(unsigned long *)(pc - 13) == 0x810c8b08
-	  && *(unsigned long *)(pc - 9)  == 0xff1075ff
-	  && *(unsigned long *)(pc - 5)  == 0xff500c75
-	  && *(unsigned long *)(pc - 1)  == 0xcc483d1)
+         <sigacthandler+16>:    mov    0x244(%ebx),%ecx
+	 <sigacthandler+22>:    mov    0x8(%ebp),%eax
+	 <sigacthandler+25>:    mov    (%ecx,%eax,4),%ecx
+	 <sigacthandler+28>:    pushl  0x10(%ebp)
+	 <sigacthandler+31>:    pushl  0xc(%ebp)
+	 <sigacthandler+34>:    push   %eax
+	 <sigacthandler+35>:    call   *%ecx
+	 <sigacthandler+37>:    add    $0xc,%esp	<--- PC
+	 <sigacthandler+40>:    pushl  0x10(%ebp) */
+      (*(unsigned long *)(pc - 21) == 0x2448b8b
+       && *(unsigned long *)(pc - 17) == 0x458b0000
+       && *(unsigned long *)(pc - 13) == 0x810c8b08
+       && *(unsigned long *)(pc - 9)  == 0xff1075ff
+       && *(unsigned long *)(pc - 5)  == 0xff500c75
+       && *(unsigned long *)(pc - 1)  == 0xcc483d1)
 
       || /* Solaris 9 - multi-threaded, Solaris 10
 	   ---------------------------------------
diff --git a/libgcc/config/sparc/sol2-unwind.h b/libgcc/config/sparc/sol2-unwind.h
--- a/libgcc/config/sparc/sol2-unwind.h
+++ b/libgcc/config/sparc/sol2-unwind.h
@@ -36,44 +36,25 @@ see the files COPYING3 and COPYING.RUNTI
 static int
 sparc64_is_sighandler (unsigned int *pc, void *cfa, int *nframes)
 {
-  if (/* Solaris 8 - single-threaded
+  if (/* Solaris 9 - single-threaded
 	----------------------------
-	<sigacthandler+24>:  add  %g5, %o7, %o2
-	<sigacthandler+28>:  ldx  [ %o2 + 0xfa0 ], %g5
-	<sigacthandler+32>:  sra  %i0, 0, %o0
-	<sigacthandler+36>:  sllx  %o0, 3, %g4
+	The pattern changes slightly in different versions of the
+	operating system, so we skip the comparison against pc[-6] for
+	Solaris 9.
+
+	<sigacthandler+24>:  sra  %i0, 0, %l1
+
+	Solaris 9 5/02:
+	<sigacthandler+28>:  ldx  [ %o2 + 0xf68 ], %g5
+	Solaris 9 9/05:
+	<sigacthandler+28>:  ldx  [ %o2 + 0xe50 ], %g5
+
+	<sigacthandler+32>:  sllx  %l1, 3, %g4
+	<sigacthandler+36>:  mov  %l1, %o0
 	<sigacthandler+40>:  ldx  [ %g4 + %g5 ], %l0
 	<sigacthandler+44>:  call  %l0
 	<sigacthandler+48>:  mov  %i2, %o2
-	<sigacthandler+52>:  cmp  %i3, 8	<--- PC  */
-      (   pc[-7] == 0x9401400f
-       && pc[-6] == 0xca5aafa0
-       && pc[-5] == 0x913e2000
-       && pc[-4] == 0x892a3003
-       && pc[-3] == 0xe0590005
-       && pc[-2] == 0x9fc40000
-       && pc[-1] == 0x9410001a
-       && pc[ 0] == 0x80a6e008)
-
-      || /* Solaris 9 - single-threaded
-	   ----------------------------
-	   The pattern changes slightly in different versions of the
-	   operating system, so we skip the comparison against pc[-6] for
-	   Solaris 9.
-
-	   <sigacthandler+24>:  sra  %i0, 0, %l1
-
-	   Solaris 9 5/02:
-	   <sigacthandler+28>:  ldx  [ %o2 + 0xf68 ], %g5
-	   Solaris 9 9/05:
-	   <sigacthandler+28>:  ldx  [ %o2 + 0xe50 ], %g5
-
-	   <sigacthandler+32>:  sllx  %l1, 3, %g4
-	   <sigacthandler+36>:  mov  %l1, %o0
-	   <sigacthandler+40>:  ldx  [ %g4 + %g5 ], %l0
-	   <sigacthandler+44>:  call  %l0
-	   <sigacthandler+48>:  mov  %i2, %o2
-	   <sigacthandler+52>:  cmp  %l1, 8	<--- PC  */
+	<sigacthandler+52>:  cmp  %l1, 8	<--- PC  */
       (   pc[-7] == 0xa33e2000
        /* skip pc[-6] */
        && pc[-5] == 0x892c7003
@@ -147,8 +128,7 @@ sparc64_is_sighandler (unsigned int *pc,
 	}
 
       else if (cuh_pattern == 0x9410001a || cuh_pattern == 0x94100013)
-	/* This matches the call_user_handler pattern for Solaris 9 and
-	   for Solaris 8 running inside Solaris Containers respectively
+	/* This matches the call_user_handler pattern for Solaris 9.
 	   We need to move up three frames:
 
 		<signal handler>	<-- context->cfa
@@ -159,17 +139,6 @@ sparc64_is_sighandler (unsigned int *pc,
 	*/
 	*nframes = 3;
 
-      else /* cuh_pattern == 0xe0272010 */
-	/* This is the default Solaris 8 case.
-	   We need to move up two frames:
-
-		<signal handler>	<-- context->cfa
-		__sighndlr
-		sigacthandler
-		<kernel>
-	*/
-	*nframes = 2;
-
       return 1;
     }
 
@@ -211,8 +180,8 @@ sparc64_frob_update_context (struct _Unw
 static int
 sparc_is_sighandler (unsigned int *pc, void *cfa, int *nframes)
 {
-  if (/* Solaris 8, 9 - single-threaded
-        -------------------------------
+  if (/* Solaris 9 - single-threaded
+        ----------------------------
 	The pattern changes slightly in different versions of the operating
 	system, so we skip the comparison against pc[-6].
 
@@ -247,37 +216,6 @@ sparc_is_sighandler (unsigned int *pc, v
       return 1;
     }
 
-  if (/* Solaris 8 - multi-threaded
-	---------------------------
-	<__libthread_segvhdlr+212>:  clr  %o2
-	<__libthread_segvhdlr+216>:  ld  [ %fp + -28 ], %l0
-	<__libthread_segvhdlr+220>:  mov  %i4, %o0
-	<__libthread_segvhdlr+224>:  mov  %i1, %o1
-	<__libthread_segvhdlr+228>:  call  %l0
-	<__libthread_segvhdlr+232>:  mov  %i2, %o2
-	<__libthread_segvhdlr+236>:  ret		<--- PC
-	<__libthread_segvhdlr+240>:  restore
-	<__libthread_segvhdlr+244>:  cmp  %o1, 0  */
-         pc[-6] == 0x94102000
-      && pc[-5] == 0xe007bfe4
-      && pc[-4] == 0x9010001c
-      && pc[-3] == 0x92100019
-      && pc[-2] == 0x9fc40000
-      && pc[-1] == 0x9410001a
-      && pc[ 0] == 0x81c7e008
-      && pc[ 1] == 0x81e80000
-      && pc[ 2] == 0x80a26000)
-    {
-      /* We need to move up one frame:
-
-		<signal handler>	<-- context->cfa
-		__libthread_segvhdlr
-		<kernel>
-      */
-      *nframes = 1;
-      return 1;
-    }
-
   if(/* Solaris 8+ - multi-threaded
        ----------------------------
        <__sighndlr>:	save  %sp, -96, %sp
@@ -332,8 +270,7 @@ sparc_is_sighandler (unsigned int *pc, v
 	}
 
       else if (cuh_pattern == 0x9410001a || cuh_pattern == 0x9410001b)
-	/* This matches the call_user_handler pattern for Solaris 9 and
-	   for Solaris 8 running inside Solaris Containers respectively.
+	/* This matches the call_user_handler pattern for Solaris 9.
 	   We need to move up three frames:
 
 		<signal handler>	<-- context->cfa
@@ -344,17 +281,6 @@ sparc_is_sighandler (unsigned int *pc, v
 	*/
 	*nframes = 3;
 
-      else /* cuh_pattern == 0x90100018 */
-	/* This is the default Solaris 8 case.
-	   We need to move up two frames:
-
-		<signal handler>	<-- context->cfa
-		__sighndlr
-		sigacthandler
-		<kernel>
-	*/
-	*nframes = 2;
-
       return 1;
     }
 
diff --git a/libgo/configure.ac b/libgo/configure.ac
--- a/libgo/configure.ac
+++ b/libgo/configure.ac
@@ -282,8 +282,8 @@ AC_SUBST(GO_SYSCALL_OS_ARCH_FILE)
 dnl Special flags used to generate sysinfo.go.
 OSCFLAGS="-D_GNU_SOURCE -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
 case "$target" in
-    *-*-solaris2.[[89]])
-	# Solaris 8/9 need this so struct msghdr gets the msg_control
+    *-*-solaris2.9)
+	# Solaris 9 needs this so struct msghdr gets the msg_control
 	# etc. fields in <sys/socket.h> (_XPG4_2).
 	OSCFLAGS="$OSCFLAGS -D_XOPEN_SOURCE=500 -D_XOPEN_SOURCE_EXTENDED -D__EXTENSIONS__"
 	;;
@@ -623,7 +623,7 @@ fi
 dnl Check if makecontext expects the uc_stack member of ucontext to point
 dnl to the top of the stack.
 case "$target" in
-  sparc*-*-solaris2.[[89]]*)
+  sparc*-*-solaris2.9*)
     libgo_cv_lib_makecontext_stack_top=yes
     ;;
   *)
diff --git a/libjava/configure.ac b/libjava/configure.ac
--- a/libjava/configure.ac
+++ b/libjava/configure.ac
@@ -1086,16 +1086,8 @@ case "$THREADS" in
 	THREADLIBS='-lpthread -lrt'
 	THREADSPEC='-lpthread -lrt'
 	;;
-     *-*-solaris2.8)
-	# Always use alternate thread library on Solaris 8.  Need libthread
-	# for TLS support.
-	# Need -Wl,-R to get it through libtool ...
-	THREADLIBS='-L/usr/lib/lwp$(MULTISUBDIR) -Wl,-R -Wl,/usr/lib/lwp$(MULTISUBDIR) -lpthread -lthread'
-	# ... while ld only accepts -R.
-	THREADSPEC='-L/usr/lib/lwp%{m64:/64} -R/usr/lib/lwp%{m64:/64} -lpthread -lthread'
-        ;;
      *-*-solaris2.9)
-	# As on Solaris 8, need libthread for TLS support.
+	# Need libthread for TLS support.
 	THREADLIBS='-lpthread -lthread'
 	THREADSPEC='-lpthread -lthread'
 	;;
diff --git a/libstdc++-v3/acinclude.m4 b/libstdc++-v3/acinclude.m4
--- a/libstdc++-v3/acinclude.m4
+++ b/libstdc++-v3/acinclude.m4
@@ -1715,100 +1715,6 @@ AC_DEFUN([GLIBCXX_COMPUTE_STDIO_INTEGER_
 ])
 
 dnl
-dnl Check whether required C++ overloads are present in <math.h>.
-dnl
-
-AC_DEFUN([GLIBCXX_CHECK_MATH_PROTO], [
-
-  AC_LANG_SAVE
-  AC_LANG_CPLUSPLUS
-
-  case "$host" in
-    *-*-solaris2.*)
-      # Solaris 8 FCS only had an overload for double std::abs(double) in
-      # <iso/math_iso.h>.  Patches 111721-04 (SPARC) and 112757-01 (x86)
-      # introduced the full set also found from Solaris 9 onwards.
-      AC_MSG_CHECKING([for float std::abs(float) overload])
-      AC_CACHE_VAL(glibcxx_cv_abs_float, [
-	AC_COMPILE_IFELSE([AC_LANG_SOURCE(
-	  [#include <math.h>
-	   namespace std {
-	     inline float abs(float __x)
-	     {  return __builtin_fabsf(__x); }
-	   }
-	])],
-	[glibcxx_cv_abs_float=no],
-	[glibcxx_cv_abs_float=yes]
-      )])
-
-      # autoheader cannot handle indented templates.
-      AH_VERBATIM([__CORRECT_ISO_CPP_MATH_H_PROTO1],
-	[/* Define if all C++ overloads are available in <math.h>.  */
-#if __cplusplus >= 199711L
-#undef __CORRECT_ISO_CPP_MATH_H_PROTO1
-#endif])
-      AH_VERBATIM([__CORRECT_ISO_CPP_MATH_H_PROTO2],
-	[/* Define if only double std::abs(double) is available in <math.h>.  */
-#if __cplusplus >= 199711L
-#undef __CORRECT_ISO_CPP_MATH_H_PROTO2
-#endif])
-
-      if test $glibcxx_cv_abs_float = yes; then
-	AC_DEFINE(__CORRECT_ISO_CPP_MATH_H_PROTO1)
-      else
-	AC_DEFINE(__CORRECT_ISO_CPP_MATH_H_PROTO2)
-      fi
-      AC_MSG_RESULT($glibcxx_cv_abs_float)
-      ;;
-  esac
-
-  AC_LANG_RESTORE
-])
-
-dnl
-dnl Check whether required C++ overloads are present in <stdlib.h>.
-dnl
-
-AC_DEFUN([GLIBCXX_CHECK_STDLIB_PROTO], [
-
-  AC_LANG_SAVE
-  AC_LANG_CPLUSPLUS
-
-  case "$host" in
-    *-*-solaris2.*)
-      # Solaris 8 FCS lacked the overloads for long std::abs(long) and
-      # ldiv_t std::div(long, long) in <iso/stdlib_iso.h>.  Patches 109607-02
-      # (SPARC) and 109608-02 (x86) introduced them.
-      AC_MSG_CHECKING([for long std::abs(long) overload])
-      AC_CACHE_VAL(glibcxx_cv_abs_long, [
-	AC_COMPILE_IFELSE([AC_LANG_SOURCE(
-	  [#include <stdlib.h>
-	   namespace std {
-	     inline long
-	     abs(long __i) { return labs(__i); }
-	   }
-	])],
-	[glibcxx_cv_abs_long=no],
-	[glibcxx_cv_abs_long=yes]
-      )])
-
-      # autoheader cannot handle indented templates.
-      AH_VERBATIM([__CORRECT_ISO_CPP_STDLIB_H_PROTO],
-	[/* Define if all C++ overloads are available in <stdlib.h>.  */
-#if __cplusplus >= 199711L
-#undef __CORRECT_ISO_CPP_STDLIB_H_PROTO
-#endif])
-      if test $glibcxx_cv_abs_long = yes; then
-	AC_DEFINE(__CORRECT_ISO_CPP_STDLIB_H_PROTO, 1)
-      fi
-      AC_MSG_RESULT($glibcxx_cv_abs_long)
-      ;;
-  esac
-
-  AC_LANG_RESTORE
-])
-
-dnl
 dnl Check whether required C++ overloads are present in <stdio.h>.
 dnl
 AC_DEFUN([GLIBCXX_CHECK_STDIO_PROTO], [
@@ -3401,9 +3307,9 @@ AC_DEFUN([GLIBCXX_CHECK_GTHREADS], [
       #error
       #endif
     ], [case $target_os in
-	  # gthreads support breaks symbol versioning on Solaris 8/9 (PR
+	  # gthreads support breaks symbol versioning on Solaris 9 (PR
 	  # libstdc++/52189).
-          solaris2.[[89]]*)
+          solaris2.9*)
 	    if test x$enable_symvers = xno; then
 	      ac_has_gthreads=yes
 	    elif test x$enable_libstdcxx_threads = xyes; then
diff --git a/libstdc++-v3/config/abi/post/solaris2.8/baseline_symbols.txt b/libstdc++-v3/config/abi/post/solaris2.9/baseline_symbols.txt
rename from libstdc++-v3/config/abi/post/solaris2.8/baseline_symbols.txt
rename to libstdc++-v3/config/abi/post/solaris2.9/baseline_symbols.txt
diff --git a/libstdc++-v3/config/abi/post/solaris2.8/sparcv9/baseline_symbols.txt b/libstdc++-v3/config/abi/post/solaris2.9/sparcv9/baseline_symbols.txt
rename from libstdc++-v3/config/abi/post/solaris2.8/sparcv9/baseline_symbols.txt
rename to libstdc++-v3/config/abi/post/solaris2.9/sparcv9/baseline_symbols.txt
diff --git a/libstdc++-v3/config/os/solaris/solaris2.8/ctype_base.h b/libstdc++-v3/config/os/solaris/solaris2.9/ctype_base.h
rename from libstdc++-v3/config/os/solaris/solaris2.8/ctype_base.h
rename to libstdc++-v3/config/os/solaris/solaris2.9/ctype_base.h
diff --git a/libstdc++-v3/config/os/solaris/solaris2.8/ctype_configure_char.cc b/libstdc++-v3/config/os/solaris/solaris2.9/ctype_configure_char.cc
rename from libstdc++-v3/config/os/solaris/solaris2.8/ctype_configure_char.cc
rename to libstdc++-v3/config/os/solaris/solaris2.9/ctype_configure_char.cc
diff --git a/libstdc++-v3/config/os/solaris/solaris2.8/ctype_inline.h b/libstdc++-v3/config/os/solaris/solaris2.9/ctype_inline.h
rename from libstdc++-v3/config/os/solaris/solaris2.8/ctype_inline.h
rename to libstdc++-v3/config/os/solaris/solaris2.9/ctype_inline.h
diff --git a/libstdc++-v3/config/os/solaris/solaris2.8/os_defines.h b/libstdc++-v3/config/os/solaris/solaris2.9/os_defines.h
rename from libstdc++-v3/config/os/solaris/solaris2.8/os_defines.h
rename to libstdc++-v3/config/os/solaris/solaris2.9/os_defines.h
--- a/libstdc++-v3/config/os/solaris/solaris2.8/os_defines.h
+++ b/libstdc++-v3/config/os/solaris/solaris2.9/os_defines.h
@@ -1,6 +1,7 @@
-// Specific definitions for Solaris 8+  -*- C++ -*-
+// Specific definitions for Solaris 9+  -*- C++ -*-
 
-// Copyright (C) 2000, 2002, 2005, 2009, 2011 Free Software Foundation, Inc.
+// Copyright (C) 2000, 2002, 2005, 2009, 2011, 2012
+// Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the
@@ -29,11 +30,8 @@
 // file will come before all others.
 
 #if __cplusplus >= 199711L
-// Overloads in <iso/math_iso.h> and <iso/stdlib_iso.h> changed with
-// Solaris 8 patches.  Since <bits/c++config.h> includes
-// <bits/os_defines.h> before configure results,
-// __CORRECT_ISO_CPP_MATH_H_PROTO[12] and __CORRECT_ISO_CPP_STDLIB_H_PROTO
-// must be defined via acinclude.m4.
+#define __CORRECT_ISO_CPP_MATH_H_PROTO
+#define __CORRECT_ISO_CPP_STDLIB_H_PROTO
 #define __CORRECT_ISO_CPP_STRING_H_PROTO
 #define __CORRECT_ISO_CPP_WCHAR_H_PROTO
 #endif
diff --git a/libstdc++-v3/configure.ac b/libstdc++-v3/configure.ac
--- a/libstdc++-v3/configure.ac
+++ b/libstdc++-v3/configure.ac
@@ -134,8 +134,6 @@ GLIBCXX_ENABLE_PYTHON
 GLIBCXX_ENABLE_WERROR([yes])
 
 # Checks for operating systems support that doesn't require linking.
-GLIBCXX_CHECK_MATH_PROTO
-GLIBCXX_CHECK_STDLIB_PROTO
 GLIBCXX_CHECK_STDIO_PROTO
 GLIBCXX_CHECK_SYSTEM_ERROR
 
diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host
--- a/libstdc++-v3/configure.host
+++ b/libstdc++-v3/configure.host
@@ -280,8 +280,8 @@ case "${host_os}" in
     echo "Please specify the full version of Solaris, ie. solaris2.9 " 1>&2
     exit 1
     ;;
-  solaris2.[89] | solaris2.1[0-9])
-    os_include_dir="os/solaris/solaris2.8"
+  solaris2.9 | solaris2.1[0-9])
+    os_include_dir="os/solaris/solaris2.9"
     ;;
   tpf)
     os_include_dir="os/tpf"
@@ -332,8 +332,8 @@ case "${host}" in
   powerpc*-*-darwin*)
     port_specific_symbol_files="\$(srcdir)/../config/os/bsd/darwin/ppc-extra.ver"
     ;;
-  *-*-solaris2.[89])
-    abi_baseline_pair=solaris2.8
+  *-*-solaris2.9)
+    abi_baseline_pair=solaris2.9
     abi_baseline_subdir_switch=--print-multi-os-directory
     ;;
   *-*-solaris2.1[0-9])
diff --git a/libstdc++-v3/crossconfig.m4 b/libstdc++-v3/crossconfig.m4
--- a/libstdc++-v3/crossconfig.m4
+++ b/libstdc++-v3/crossconfig.m4
@@ -198,7 +198,7 @@ case "${host}" in
     ;;
   *-solaris*)
     case "$target" in
-      *-solaris2.8 | *-solaris2.9 | *-solaris2.10)
+      *-solaris2.9 | *-solaris2.10)
          GLIBCXX_CHECK_LINKER_FEATURES
          AC_DEFINE(HAVE_MBSTATE_T)
          AC_DEFINE(HAVE_FINITE)
diff --git a/libstdc++-v3/doc/xml/manual/configure.xml b/libstdc++-v3/doc/xml/manual/configure.xml
--- a/libstdc++-v3/doc/xml/manual/configure.xml
+++ b/libstdc++-v3/doc/xml/manual/configure.xml
@@ -164,7 +164,7 @@
  <varlistentry><term><code>--enable-libstdcxx-threads</code></term>
  <listitem><para>Enable C++11 threads support.  If not explicitly specified,
         the  configure process enables it if possible.  It defaults to 'off'
-	on Solaris 8 and 9, where it would break symbol versioning.   This
+	on Solaris 9, where it would break symbol versioning.   This
 	option can change the library ABI.
      </para>
  </listitem></varlistentry>
diff --git a/libstdc++-v3/include/c_global/cmath b/libstdc++-v3/include/c_global/cmath
--- a/libstdc++-v3/include/c_global/cmath
+++ b/libstdc++-v3/include/c_global/cmath
@@ -1,7 +1,7 @@
 // -*- C++ -*- C forwarding header.
 
 // Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
-// 2006, 2007, 2008, 2009, 2010, 2011
+// 2006, 2007, 2008, 2009, 2010, 2011, 2012
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -78,14 +78,13 @@ namespace std _GLIBCXX_VISIBILITY(defaul
 {
 _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
-#if !defined(__CORRECT_ISO_CPP_MATH_H_PROTO1) \
-  && !defined(__CORRECT_ISO_CPP_MATH_H_PROTO2)
+#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
   inline _GLIBCXX_CONSTEXPR double
   abs(double __x)
   { return __builtin_fabs(__x); }
 #endif
 
-#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1
+#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
   inline _GLIBCXX_CONSTEXPR float
   abs(float __x)
   { return __builtin_fabsf(__x); }
@@ -104,7 +103,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   using ::acos;
 
-#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1
+#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
   inline _GLIBCXX_CONSTEXPR float
   acos(float __x)
   { return __builtin_acosf(__x); }
@@ -123,7 +122,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   using ::asin;
 
-#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1
+#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
   inline _GLIBCXX_CONSTEXPR float
   asin(float __x)
   { return __builtin_asinf(__x); }
@@ -142,7 +141,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   using ::atan;
 
-#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1
+#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
   inline _GLIBCXX_CONSTEXPR float
   atan(float __x)
   { return __builtin_atanf(__x); }
@@ -161,7 +160,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   using ::atan2;
 
-#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1
+#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
   inline _GLIBCXX_CONSTEXPR float
   atan2(float __y, float __x)
   { return __builtin_atan2f(__y, __x); }
@@ -182,7 +181,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   using ::ceil;
 
-#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1
+#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
   inline _GLIBCXX_CONSTEXPR float
   ceil(float __x)
   { return __builtin_ceilf(__x); }
@@ -201,7 +200,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   using ::cos;
 
-#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1
+#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
   inline _GLIBCXX_CONSTEXPR float
   cos(float __x)
   { return __builtin_cosf(__x); }
@@ -220,7 +219,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   using ::cosh;
 
-#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1
+#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
   inline _GLIBCXX_CONSTEXPR float
   cosh(float __x)
   { return __builtin_coshf(__x); }
@@ -239,7 +238,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   using ::exp;
 
-#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1
+#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
   inline _GLIBCXX_CONSTEXPR float
   exp(float __x)
   { return __builtin_expf(__x); }
@@ -258,7 +257,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   using ::fabs;
 
-#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1
+#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
   inline _GLIBCXX_CONSTEXPR float
   fabs(float __x)
   { return __builtin_fabsf(__x); }
@@ -277,7 +276,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   using ::floor;
 
-#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1
+#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
   inline _GLIBCXX_CONSTEXPR float
   floor(float __x)
   { return __builtin_floorf(__x); }
@@ -296,7 +295,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   using ::fmod;
 
-#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1
+#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
   inline _GLIBCXX_CONSTEXPR float
   fmod(float __x, float __y)
   { return __builtin_fmodf(__x, __y); }
@@ -317,7 +316,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   using ::frexp;
 
-#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1
+#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
   inline float
   frexp(float __x, int* __exp)
   { return __builtin_frexpf(__x, __exp); }
@@ -336,7 +335,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   using ::ldexp;
 
-#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1
+#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
   inline _GLIBCXX_CONSTEXPR float
   ldexp(float __x, int __exp)
   { return __builtin_ldexpf(__x, __exp); }
@@ -355,7 +354,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   using ::log;
 
-#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1
+#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
   inline _GLIBCXX_CONSTEXPR float
   log(float __x)
   { return __builtin_logf(__x); }
@@ -374,7 +373,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   using ::log10;
 
-#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1
+#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
   inline _GLIBCXX_CONSTEXPR float
   log10(float __x)
   { return __builtin_log10f(__x); }
@@ -393,7 +392,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   using ::modf;
 
-#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1
+#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
   inline float
   modf(float __x, float* __iptr)
   { return __builtin_modff(__x, __iptr); }
@@ -405,7 +404,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   using ::pow;
 
-#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1
+#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
   inline _GLIBCXX_CONSTEXPR float
   pow(float __x, float __y)
   { return __builtin_powf(__x, __y); }
@@ -442,7 +441,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   using ::sin;
 
-#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1
+#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
   inline _GLIBCXX_CONSTEXPR float
   sin(float __x)
   { return __builtin_sinf(__x); }
@@ -461,7 +460,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   using ::sinh;
 
-#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1
+#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
   inline _GLIBCXX_CONSTEXPR float
   sinh(float __x)
   { return __builtin_sinhf(__x); }
@@ -480,7 +479,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   using ::sqrt;
 
-#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1
+#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
   inline _GLIBCXX_CONSTEXPR float
   sqrt(float __x)
   { return __builtin_sqrtf(__x); }
@@ -499,7 +498,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   using ::tan;
 
-#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1
+#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
   inline _GLIBCXX_CONSTEXPR float
   tan(float __x)
   { return __builtin_tanf(__x); }
@@ -518,7 +517,7 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
 
   using ::tanh;
 
-#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1
+#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
   inline _GLIBCXX_CONSTEXPR float
   tanh(float __x)
   { return __builtin_tanhf(__x); }
diff --git a/libstdc++-v3/include/tr1/cmath b/libstdc++-v3/include/tr1/cmath
--- a/libstdc++-v3/include/tr1/cmath
+++ b/libstdc++-v3/include/tr1/cmath
@@ -1,6 +1,6 @@
 // TR1 cmath -*- C++ -*-
 
-// Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011
+// Copyright (C) 2006, 2007, 2008, 2009, 2010, 2011, 2012
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -563,12 +563,12 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
   // Note: we deal with fabs in a special way, because an using std::fabs
   // would bring in also the overloads for complex types, which in C++0x
   // mode have a different return type.
-  // With __CORRECT_ISO_CPP_MATH_H_PROTO1, math.h imports std::fabs in the
+  // With __CORRECT_ISO_CPP_MATH_H_PROTO, math.h imports std::fabs in the
   // global namespace after the declarations of the float / double / long
   // double overloads but before the std::complex overloads.
   using ::fabs;
 
-#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO1
+#ifndef __CORRECT_ISO_CPP_MATH_H_PROTO
   inline float
   fabs(float __x)
   { return __builtin_fabsf(__x); }
diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc
--- a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc
@@ -1,7 +1,7 @@
 // 1999-04-12 bkoz
 
 // Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009,
-// 2010
+// 2010, 2012
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -21,10 +21,10 @@
 
 // 27.6.1.2.2 arithmetic extractors
 
-// XXX This test fails on Solaris 8 and 9 because of a bug in libc
+// XXX This test fails on Solaris 9 because of a bug in libc
 // XXX sscanf for very long input.  See:
 // XXX http://gcc.gnu.org/ml/gcc/2002-12/msg01422.html
-// { dg-do run { xfail { { *-*-solaris2.[89] } || lax_strtofp } } }
+// { dg-do run { xfail { { *-*-solaris2.9 } || lax_strtofp } } }
 
 #include <istream>
 #include <sstream>
diff --git a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/12.cc b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/12.cc
--- a/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/12.cc
+++ b/libstdc++-v3/testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/12.cc
@@ -1,4 +1,4 @@
-// Copyright (C) 2004, 2005, 2006, 2007, 2009, 2010
+// Copyright (C) 2004, 2005, 2006, 2007, 2009, 2010, 2012
 // Free Software Foundation, Inc.
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
@@ -18,10 +18,10 @@
 
 // 27.6.1.2.2 arithmetic extractors
 
-// XXX This test fails on Solaris 8 and 9 because of a bug in libc
+// XXX This test fails on Solaris 9 because of a bug in libc
 // XXX sscanf for very long input.  See:
 // XXX http://gcc.gnu.org/ml/gcc/2002-12/msg01422.html
-// { dg-do run { xfail { { *-*-solaris2.[89] } || lax_strtofp } } }
+// { dg-do run { xfail { { *-*-solaris2.9 } || lax_strtofp } } }
 
 #include <istream>
 #include <sstream>
diff --git a/libstdc++-v3/testsuite/ext/enc_filebuf/char/13598.cc b/libstdc++-v3/testsuite/ext/enc_filebuf/char/13598.cc
--- a/libstdc++-v3/testsuite/ext/enc_filebuf/char/13598.cc
+++ b/libstdc++-v3/testsuite/ext/enc_filebuf/char/13598.cc
@@ -1,10 +1,11 @@
 // Before Solaris 11, iconv -f ISO-8859-1 -t ISO-8859-1 fails with
 // Not supported ISO-8859-1 to ISO-8859-1
 //
-// { dg-do run { xfail *-*-solaris2.[89] *-*-solaris2.10 } }
+// { dg-do run { xfail *-*-solaris2.9 *-*-solaris2.10 } }
 // { dg-require-iconv "ISO-8859-1" }
 
-// Copyright (C) 2004, 2005, 2006, 2007, 2009, 2010 Free Software Foundation
+// Copyright (C) 2004, 2005, 2006, 2007, 2009, 2010, 2012
+// Free Software Foundation
 //
 // This file is part of the GNU ISO C++ Library.  This library is free
 // software; you can redistribute it and/or modify it under the

[-- Attachment #3: Type: text/plain, Size: 144 bytes --]



-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2012-11-04 23:33 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-03-12 17:45 Remove obsolete Solaris 8 support Rainer Orth
2012-03-12 18:31 ` Ian Lance Taylor
2012-03-15 14:34   ` Rainer Orth
2012-03-12 18:38 ` Mike Stump
2012-03-12 18:49   ` Rainer Orth
2012-03-12 18:59     ` Mike Stump
2012-03-12 18:49   ` Richard Kenner
2012-03-12 18:56     ` Rainer Orth
2012-03-12 18:58   ` Steven Bosscher
2012-03-12 19:36 ` Bruce Korb
2012-03-12 20:14 ` Jonathan Wakely
2012-03-12 20:43 ` Tom Tromey
2012-03-12 20:43 ` Tom Tromey
2012-03-12 22:19 ` Eric Botcazou
2012-03-15 14:41   ` Rainer Orth
2012-03-15 14:53     ` Eric Botcazou
2012-06-30 10:02 ` Thomas Schwinge
2012-11-04 23:33   ` Thomas Schwinge

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).