Discussion:
Remove obsolete Solaris 9 support
Rainer Orth
2014-04-16 11:16:32 UTC
Permalink
Now that 4.9 has branched, it's time to actually remove the obsolete
Solaris 9 configuration. Most of this is just legwork and falls under
my Solaris maintainership.

A couple of questions, though:

* David: In target-supports.exp (add_options_for_tls), the comment needs
to be updated with Solaris 9 support gone. Is it completely accurate
for AIX, even wrt. __tls_get_addr/___tls_get_addr?

* Uros: I'm removing all sse_os_support() checks from the testsuite.
Solaris 9 was the only consumer, so it seems best to do away with it.

* Eric: In libgcc/config/sparc/sol2-unwind.h, I've removed the Solaris 9
cases after verifying that the cuh_pattern's used there only occur in
Solaris 9 (from FCS to the latest libthread.so.1 patch), but not even
in Solaris 10 FCS.

For Solaris 10, do you have any more details on when the 2-frame case
occurs? I've found that patch submission

http://gcc.gnu.org/ml/gcc-patches/2010-10/msg02370.html

but no details on what S10 update/patch this happens with.

* Ian: I've removed Solaris 8 and 9 support from libgo. I'm uncertain
if you want this or rather keep that support for the 4.[789] branches?

* I'm removing the <sys/loadavg.h> check from classpath. Again, I'm
uncertain if this is desirable. In the past, classpath changes were
merged upstream by one of the libjava maintainers.

I've already verified that trunk fails to build no sparc-sun-solaris2.9
and i386-pc-solaris2.9. Bootstraps on {i386,sparc}-*-solaris2.{10,11}
(and x86_64-unknown-linux-gnu for good measure) are in progress. I'll
verify that there are no unexpected fixincludes changes and differences
in gcc configure results.

If testing goes well, unless someone objects I'll probably check in
everything but the classpath and libgo parts after the easter weekend.

After that patch, all Solaris configurations are bi-arch, so I'll later
post another patch to merge and/or rename some of the t-* fragments and
config headers. There's probably more cleanup potential even after that.

Rainer


2014-01-06 Rainer Orth <***@CeBiTec.Uni-Bielefeld.DE>

libstdc++-v3:
* configure.host: Remove solaris2.9 handling.
Change os_include_dir to os/solaris/solaris2.10.
* acinclude.m4 (ac_has_gthreads): Remove solaris2.9* handling.
* crossconfig.m4: Remove *-solaris2.9 handling, simplify.
* configure: Regenerate.
* config/abi/post/solaris2.9: Remove.
* config/os/solaris/solaris2.9: Rename to ...
* config/os/solaris/solaris2.10: ... this.
* config/os/solaris/solaris2.10/os_defines.h (CLOCK_MONOTONIC):
Remove.

* doc/xml/manual/configure.xml (--enable-libstdcxx-threads):
Remove Solaris 9 reference.
* doc/html/manual/configure.html: Regenerate.

* testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
Remove *-*-solaris2.9 xfail.
* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/12.cc:
Likewise.

* testsuite/ext/enc_filebuf/char/13598.cc: Remove *-*-solaris2.9
xfail.

libjava:
* configure.ac (THREADLIBS, THREADSPEC): Remove *-*-solaris2.9
handling.
* configure: Regenerate.

libjava/classpath:
* configure.ac: Don't check for sys/loadavg.h.
* configure: Regenerate.
* include/config.h.in: Regenerate.
* native/jni/java-lang/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.c
[HAVE_SYS_LOADAVG_H]: Don't include <sys/loadavg.h>.

libgo:
* configure.ac (OSCFLAGS): Remove *-*-solaris2.[89] handling.
(libgo_cv_lib_makecontext_stack_top): Remove.
* configure: Regenerate.
* config.h.in: Regenerate.
* go/math/ldexp.go (Ldexp): Remove Solaris 9 workaround.
* runtime/proc.c (runtime_newextram) [MAKECONTEXT_STACK_TOP]:
Remove.

libgfortran:
* config/fpu-387.h [__sun__ && __svr4__]: Remove SSE execution
check.

libgcc:
* config/i386/crtfastmath.c (set_fast_math): Remove SSE execution
check.
* config/i386/sol2-unwind.h (x86_fallback_frame_state): Remove
Solaris 9 support.
* config/sparc/sol2-unwind.h (sparc64_is_sighandler): Remove
Solaris 9 support. Add call_user_handler code sequences.
(sparc_is_sighandler): Likewise.

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

gcc/testsuite:
* gcc.c-torture/compile/pr28865.c: Remove dg-xfail-if.

* gcc.dg/c99-stdint-6.c: Remove dg-options for *-*-solaris2.9.
* gcc.dg/lto/20090210_0.c: Remove dg-extra-ld-options for
*-*-solaris2.9.
* gcc.dg/torture/pr47917.c: Remove dg-options for *-*-solaris2.9.
* gcc.target/i386/pr22076.c: Remove i?86-*-solaris2.9 handling
from dg-options.
* gcc.target/i386/pr22152.c: Remove i?86-*-solaris2.9 handling
from dg-additional-options.
* gcc.target/i386/vect8-ret.c: Remove i?86-*-solaris2.9 handling
from dg-options.

* gcc.dg/vect/tree-vect.h (check_vect): Remove Solaris 9 SSE2
execution check.
* gcc.target/i386/sse-os-support.h: Remove.
* gcc.target/i386/pr52754.c: Don't include sse-os-support.h.
(main): Remove call to sse_os_support().
* gcc.target/i386/sse-check.h: Likewise.
* gcc.target/i386/sse2-check.h: Likewise.
* gcc.target/i386/sse3-check.h: Likewise.
* gcc.target/i386/vperm-v2df.c: Likewise.
* gcc.target/i386/vperm-v2di.c: Likewise.
* gcc.target/i386/vperm-v4sf-1.c: Likewise.
* gcc.target/i386/vperm-v4si-1.c: Likewise.

* gfortran.dg/erf_3.F90: Remove sparc*-*-solaris2.9* handling.
* gfortran.dg/fmt_en.f90: Remove i?86-*-solaris2.9* handling.
* gfortran.dg/round_4.f90: Remove *-*-solaris2.9* handling.

* lib/target-supports.exp (add_options_for_tls): Remove
*-*-solaris2.9* handling.

gcc:
* config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
(*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
(*-*-solaris2*): Simplify.
(i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
(i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
*-*-solaris2.9* handling.

* configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
as bug.
(gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
(ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
handling, simplify.
(gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
* configure: Regenerate.

* config/i386/sol2-9.h: Remove.

* doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
(Specific, *-*-solaris2*): Mention Solaris 9 support removal.
Remove Solaris 9 references.

fixincludes:
* inclhack.def (math_exception): Bypass on *-*-solaris2.1[0-9]*.
(solaris_int_types): Remove.
(solaris_longjmp_noreturn): Remove.
(solaris_mutex_init_2): Remove.
(solaris_once_init_2): Remove.
(solaris_sys_va_list): Remove.
* fixincl.x: Regenerate.
* tests/base/iso/setjmp_iso.h: Remove.
* tests/base/pthread.h [SOLARIS_MUTEX_INIT_2_CHECK]: Remove.
[SOLARIS_ONCE_INIT_2_CHECK]: Remove.
* tests/base/sys/int_types.h: Remove.
* tests/base/sys/va_list.h: Remove.

contrib:
* config-list.mk (LIST): Remove sparc-sun-solaris2.9, i686-solaris2.9.
Eric Botcazou
2014-04-16 16:00:13 UTC
Permalink
Post by Rainer Orth
* Eric: In libgcc/config/sparc/sol2-unwind.h, I've removed the Solaris 9
cases after verifying that the cuh_pattern's used there only occur in
Solaris 9 (from FCS to the latest libthread.so.1 patch), but not even
in Solaris 10 FCS.
For Solaris 10, do you have any more details on when the 2-frame case
occurs? I've found that patch submission
http://gcc.gnu.org/ml/gcc-patches/2010-10/msg02370.html
but no details on what S10 update/patch this happens with.
Let's not touch libgcc/config/sparc/sol2-unwind.h, the small gain is not worth
the potential trouble IMO.
--
Eric Botcazou
Uros Bizjak
2014-04-16 17:28:46 UTC
Permalink
On Wed, Apr 16, 2014 at 1:16 PM, Rainer Orth
Post by Rainer Orth
Now that 4.9 has branched, it's time to actually remove the obsolete
Solaris 9 configuration. Most of this is just legwork and falls under
my Solaris maintainership.
* Uros: I'm removing all sse_os_support() checks from the testsuite.
Solaris 9 was the only consumer, so it seems best to do away with it.
This is OK, but please leave sse-os-check.h (and corresponding
sse_os_support calls) in the testsuite. Just remove the Solaris 9
specific code from sse-os-check.h and always return 1, perhaps with
the comment that all currently supported OSes support SSE
instructions.

Uros.
Rainer Orth
2014-04-22 12:35:29 UTC
Permalink
Post by Uros Bizjak
On Wed, Apr 16, 2014 at 1:16 PM, Rainer Orth
Post by Rainer Orth
Now that 4.9 has branched, it's time to actually remove the obsolete
Solaris 9 configuration. Most of this is just legwork and falls under
my Solaris maintainership.
* Uros: I'm removing all sse_os_support() checks from the testsuite.
Solaris 9 was the only consumer, so it seems best to do away with it.
This is OK, but please leave sse-os-check.h (and corresponding
sse_os_support calls) in the testsuite. Just remove the Solaris 9
specific code from sse-os-check.h and always return 1, perhaps with
the comment that all currently supported OSes support SSE
instructions.
Here's the final patch I've checked in, incorporating all review
comments. I've left out the libgo (already checked in by Ian) and
classpath parts.

Rainer


2014-01-06 Rainer Orth <***@CeBiTec.Uni-Bielefeld.DE>

libstdc++-v3:
* configure.host: Remove solaris2.9 handling.
Change os_include_dir to os/solaris/solaris2.10.
* acinclude.m4 (ac_has_gthreads): Remove solaris2.9* handling.
* crossconfig.m4: Remove *-solaris2.9 handling, simplify.
* configure: Regenerate.
* config/abi/post/solaris2.9: Remove.
* config/os/solaris/solaris2.9: Rename to ...
* config/os/solaris/solaris2.10: ... this.
* config/os/solaris/solaris2.10/os_defines.h (CLOCK_MONOTONIC):
Remove.

* doc/xml/manual/configure.xml (--enable-libstdcxx-threads):
Remove Solaris 9 reference.
* doc/html/manual/configure.html: Regenerate.

* testsuite/27_io/basic_istream/extractors_arithmetic/char/12.cc:
Remove *-*-solaris2.9 xfail.
* testsuite/27_io/basic_istream/extractors_arithmetic/wchar_t/12.cc:
Likewise.

* testsuite/ext/enc_filebuf/char/13598.cc: Remove *-*-solaris2.9
xfail.

libjava:
* configure.ac (THREADLIBS, THREADSPEC): Remove *-*-solaris2.9
handling.
* configure: Regenerate.

libgfortran:
* config/fpu-387.h [__sun__ && __svr4__]: Remove SSE execution
check.

libgcc:
* config/i386/crtfastmath.c (set_fast_math): Remove SSE execution
check.
* config/i386/sol2-unwind.h (x86_fallback_frame_state): Remove
Solaris 9 single-threaded support.
* config/sparc/sol2-unwind.h (sparc64_is_sighandler): Remove
Solaris 9 single-threaded support. Add call_user_handler code
sequences.
(sparc_is_sighandler): Likewise.

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

gcc/testsuite:
* gcc.c-torture/compile/pr28865.c: Remove dg-xfail-if.

* gcc.dg/c99-stdint-6.c: Remove dg-options for *-*-solaris2.9.
* gcc.dg/lto/20090210_0.c: Remove dg-extra-ld-options for
*-*-solaris2.9.
* gcc.dg/torture/pr47917.c: Remove dg-options for *-*-solaris2.9.
* gcc.target/i386/pr22076.c: Remove i?86-*-solaris2.9 handling
from dg-options.
* gcc.target/i386/pr22152.c: Remove i?86-*-solaris2.9 handling
from dg-additional-options.
* gcc.target/i386/vect8-ret.c: Remove i?86-*-solaris2.9 handling
from dg-options.

* gcc.dg/vect/tree-vect.h (check_vect): Remove Solaris 9 SSE2
execution check.
* gcc.target/i386/sse-os-support.h [__sun__ && __svr4__]
(sigill_hdlr): Remove.
(sse_os_support) [__sun__ && __svr4__]: Remove SSE execution
check.

* gfortran.dg/erf_3.F90: Remove sparc*-*-solaris2.9* handling.
* gfortran.dg/fmt_en.f90: Remove i?86-*-solaris2.9* handling.
* gfortran.dg/round_4.f90: Remove *-*-solaris2.9* handling.

* lib/target-supports.exp (add_options_for_tls): Remove
*-*-solaris2.9* handling.

gcc:
* config.gcc (enable_obsolete): Remove *-*-solaris2.9*.
(*-*-solaris2.[0-9] | *-*-solaris2.[0-9].*): Mark unsupported.
(*-*-solaris2*): Simplify.
(i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Likewise.
(i[34567]86-*-solaris2* | x86_64-*-solaris2.1[0-9]*): Remove
*-*-solaris2.9* handling.

* configure.ac (gcc_cv_as_hidden): Remove test for Solaris 9/x86
as bug.
(gcc_cv_ld_hidden): Remove *-*-solaris2.9* handling.
(ld_tls_support): Remove i?86-*-solaris2.9, sparc*-*-solaris2.9
handling, simplify.
(gcc_cv_as_gstabs_flag): Remove workaround for Solaris 9/x86 as bug.
* configure: Regenerate.

* config/i386/sol2-9.h: Remove.

* doc/install.texi (Specific, i?86-*-solaris2.9): Remove.
(Specific, *-*-solaris2*): Mention Solaris 9 support removal.
Remove Solaris 9 references.

fixincludes:
* inclhack.def (math_exception): Bypass on *-*-solaris2.1[0-9]*.
(solaris_int_types): Remove.
(solaris_longjmp_noreturn): Remove.
(solaris_mutex_init_2): Remove.
(solaris_once_init_2): Remove.
(solaris_sys_va_list): Remove.
* fixincl.x: Regenerate.
* tests/base/iso/setjmp_iso.h: Remove.
* tests/base/pthread.h [SOLARIS_MUTEX_INIT_2_CHECK]: Remove.
[SOLARIS_ONCE_INIT_1_CHECK]: Remove wrapping done by
solaris_once_init_2.
[SOLARIS_ONCE_INIT_2_CHECK]: Remove.
* tests/base/sys/int_types.h: Remove.
* tests/base/sys/va_list.h: Remove.

contrib:
* config-list.mk (LIST): Remove sparc-sun-solaris2.9, i686-solaris2.9.
Uros Bizjak
2014-04-23 12:51:36 UTC
Permalink
On Tue, Apr 22, 2014 at 2:35 PM, Rainer Orth
Post by Rainer Orth
Post by Uros Bizjak
On Wed, Apr 16, 2014 at 1:16 PM, Rainer Orth
Post by Rainer Orth
Now that 4.9 has branched, it's time to actually remove the obsolete
Solaris 9 configuration. Most of this is just legwork and falls under
my Solaris maintainership.
* Uros: I'm removing all sse_os_support() checks from the testsuite.
Solaris 9 was the only consumer, so it seems best to do away with it.
This is OK, but please leave sse-os-check.h (and corresponding
sse_os_support calls) in the testsuite. Just remove the Solaris 9
specific code from sse-os-check.h and always return 1, perhaps with
the comment that all currently supported OSes support SSE
instructions.
Here's the final patch I've checked in, incorporating all review
comments. I've left out the libgo (already checked in by Ian) and
classpath parts.
It looks to me that one part was left in libgcc/config/i386/crtfastmath.c:

#if !defined __x86_64__ && defined __sun__ && defined __svr4__
#include <signal.h>
#include <ucontext.h>
...
#endif

Ian Lance Taylor
2014-04-16 19:59:39 UTC
Permalink
On Wed, Apr 16, 2014 at 4:16 AM, Rainer Orth
Post by Rainer Orth
* Ian: I've removed Solaris 8 and 9 support from libgo. I'm uncertain
if you want this or rather keep that support for the 4.[789] branches?
I want it. I don't try to maintain exact copies of older GCC
branches.

Your patch appears separable, and I can commit the libgo part. Let me
know when I should do so.

Ian
Andrew Haley
2014-04-19 08:03:57 UTC
Permalink
Post by Rainer Orth
* I'm removing the <sys/loadavg.h> check from classpath. Again, I'm
uncertain if this is desirable. In the past, classpath changes were
merged upstream by one of the libjava maintainers.
We should not diverge from GNU Classpath unless there is a strong reason
to do so.

Andrew.
Rainer Orth
2014-04-22 12:42:49 UTC
Permalink
Post by Andrew Haley
Post by Rainer Orth
* I'm removing the <sys/loadavg.h> check from classpath. Again, I'm
uncertain if this is desirable. In the past, classpath changes were
merged upstream by one of the libjava maintainers.
We should not diverge from GNU Classpath unless there is a strong reason
to do so.
I never meant to suggest that. With Solaris 9 support gone from from
gcc, the only consumer of this code fragment is gone, and this seems a
good opportunity to get rid of this obsolete code.

Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University
Mark Wielaard
2014-04-22 13:22:26 UTC
Permalink
Post by Andrew Haley
Post by Rainer Orth
* I'm removing the <sys/loadavg.h> check from classpath. Again, I'm
uncertain if this is desirable. In the past, classpath changes were
merged upstream by one of the libjava maintainers.
We should not diverge from GNU Classpath unless there is a strong reason
to do so.
I think the configure check is mostly harmless, but wouldn't be opposed
removing it. It really seems to have been added explicitly for Solaris
9, which is probably really dead by now. Andrew Hughes, you added it
back in 2008. Are you still using/building on any Solaris 9 setups?

Cheers,

Mark
Andrew Hughes
2014-04-22 15:18:44 UTC
Permalink
----- Original Message -----
Post by Mark Wielaard
Post by Andrew Haley
Post by Rainer Orth
* I'm removing the <sys/loadavg.h> check from classpath. Again, I'm
uncertain if this is desirable. In the past, classpath changes were
merged upstream by one of the libjava maintainers.
We should not diverge from GNU Classpath unless there is a strong reason
to do so.
I think the configure check is mostly harmless, but wouldn't be opposed
removing it. It really seems to have been added explicitly for Solaris
9, which is probably really dead by now. Andrew Hughes, you added it
back in 2008. Are you still using/building on any Solaris 9 setups?
I vaguely remember adding it. I was building on the university's Solaris 9
machines at the time. They've long since replaced them with GNU/Linux machines
and I've been at Red Hat for over five years, so those days are long gone :)

I have some Freetype fixes to push to Classpath as well, so I'll fix this too
and look at merging to gcj in the not-too-distant future. I think it's long
overdue. Ideally, the change should be left out of this patch, so as to avoid
conflicts.
Post by Mark Wielaard
Cheers,
Mark
Thanks,
--
Andrew :)

Free Java Software Engineer
Red Hat, Inc. (http://www.redhat.com)

PGP Key: 248BDC07 (https://keys.indymedia.org/)
Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07
Rainer Orth
2014-04-23 09:04:10 UTC
Permalink
Post by Andrew Hughes
----- Original Message -----
Post by Mark Wielaard
Post by Andrew Haley
Post by Rainer Orth
* I'm removing the <sys/loadavg.h> check from classpath. Again, I'm
uncertain if this is desirable. In the past, classpath changes were
merged upstream by one of the libjava maintainers.
We should not diverge from GNU Classpath unless there is a strong reason
to do so.
I think the configure check is mostly harmless, but wouldn't be opposed
removing it. It really seems to have been added explicitly for Solaris
9, which is probably really dead by now. Andrew Hughes, you added it
back in 2008. Are you still using/building on any Solaris 9 setups?
I vaguely remember adding it. I was building on the university's Solaris 9
machines at the time. They've long since replaced them with GNU/Linux machines
and I've been at Red Hat for over five years, so those days are long gone :)
I have some Freetype fixes to push to Classpath as well, so I'll fix this too
and look at merging to gcj in the not-too-distant future. I think it's long
overdue. Ideally, the change should be left out of this patch, so as to avoid
conflicts.
Based on the other Andrew's comment and the knowledge that classpath
(like libgo) lives upstream, I didn't commit that part with the rest of
the patch.

Thanks.
Rainer
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University
Bruce Korb
2014-04-19 18:08:06 UTC
Permalink
Post by Rainer Orth
I've already verified that trunk fails to build no sparc-sun-solaris2.9
and i386-pc-solaris2.9. Bootstraps on {i386,sparc}-*-solaris2.{10,11}
(and x86_64-unknown-linux-gnu for good measure) are in progress. I'll
verify that there are no unexpected fixincludes changes and differences
in gcc configure results.
* inclhack.def (math_exception): Bypass on *-*-solaris2.1[0-9]*.
(solaris_int_types): Remove.
(solaris_longjmp_noreturn): Remove.
(solaris_mutex_init_2): Remove.
(solaris_once_init_2): Remove.
(solaris_sys_va_list): Remove.
* fixincl.x: Regenerate.
* tests/base/iso/setjmp_iso.h: Remove.
* tests/base/pthread.h [SOLARIS_MUTEX_INIT_2_CHECK]: Remove.
[SOLARIS_ONCE_INIT_2_CHECK]: Remove.
* tests/base/sys/int_types.h: Remove.
* tests/base/sys/va_list.h: Remove.
Removing dinkleberry fixes by the platform maintainer always has my approval. :)
Loading...