Re: Remove obsolete Solaris 9 support

2014-04-25 Thread Rainer Orth
Rainer Orth r...@cebitec.uni-bielefeld.de writes:

 Uros Bizjak ubiz...@gmail.com writes:

 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

 Right, missed it because it carried no Solaris 9 comment.  I'll remove
 it after a round of testing.

Here's what I installed after successful bootstraps on
i386-pc-solaris2.1[01].

Rainer


2014-04-23  Rainer Orth  r...@cebitec.uni-bielefeld.de

* config/i386/crtfastmath.c [!__x86_64__  __sun__  __svr4__]
(sigill_caught, sigill_hdlr): Remove.

# HG changeset patch
# Parent 150c9610f7b0bfa684db0601a5f026e13ed1d30e
Remove SSE execution test in crtfastmath.c

diff --git a/libgcc/config/i386/crtfastmath.c b/libgcc/config/i386/crtfastmath.c
--- a/libgcc/config/i386/crtfastmath.c
+++ b/libgcc/config/i386/crtfastmath.c
@@ -31,26 +31,6 @@
 #include cpuid.h
 #endif
 
-#if !defined __x86_64__  defined __sun__  defined __svr4__
-#include signal.h
-#include ucontext.h
-
-static volatile sig_atomic_t sigill_caught;
-
-static void
-sigill_hdlr (int sig __attribute((unused)),
-	 siginfo_t *sip __attribute__((unused)),
-	 ucontext_t *ucp)
-{
-  sigill_caught = 1;
-  /* Set PC to the instruction after the faulting one to skip over it,
- otherwise we enter an infinite loop.  3 is the size of the movaps
- instruction.  */
-  ucp-uc_mcontext.gregs[EIP] += 3;
-  setcontext (ucp);
-}
-#endif
-
 static void __attribute__((constructor))
 #ifndef __x86_64__
 /* The i386 ABI only requires 4-byte stack alignment, so this is necessary

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


Re: Remove obsolete Solaris 9 support

2014-04-23 Thread Rainer Orth
Andrew Hughes gnu.and...@redhat.com writes:

 - Original Message -
 On Sat, 2014-04-19 at 09:03 +0100, Andrew Haley wrote:
  On 04/16/2014 12:16 PM, Rainer Orth wrote:
   * 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


Re: Remove obsolete Solaris 9 support

2014-04-23 Thread Uros Bizjak
On Tue, Apr 22, 2014 at 2:35 PM, Rainer Orth
r...@cebitec.uni-bielefeld.de wrote:
 Uros Bizjak ubiz...@gmail.com writes:

 On Wed, Apr 16, 2014 at 1:16 PM, Rainer Orth
 r...@cebitec.uni-bielefeld.de wrote:
 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:

 * 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


Re: Remove obsolete Solaris 9 support

2014-04-23 Thread Rainer Orth
Uros Bizjak ubiz...@gmail.com writes:

 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

Right, missed it because it carried no Solaris 9 comment.  I'll remove
it after a round of testing.

Thanks.
Rainer

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


Re: Remove obsolete Solaris 9 support

2014-04-22 Thread Rainer Orth
Eric Botcazou ebotca...@adacore.com writes:

 But for the Solaris 9 stuff, it crystal clear that this cannot occur on
 Solaris 10 and up (no single-threaded case anymore since libthread.so.1
 has been folded into libc.so.1).  Ok to remove this part?

 OK for the Solaris 9 - single-threaded part.

Thanks.  I've updated the comments on the Solaris 9 multi-threaded
sections with my findings so they aren't forgotten.

Rainer

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


Re: Remove obsolete Solaris 9 support

2014-04-22 Thread Rainer Orth
.
(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.

# HG changeset patch
# Parent 38d681ec07686a092be2c779b81b171605c2db1c
Remove obsolete Solaris 9 support

diff --git a/contrib/config-list.mk b/contrib/config-list.mk
--- a/contrib/config-list.mk
+++ b/contrib/config-list.mk
@@ -75,7 +75,6 @@ LIST = aarch64-elf aarch64-linux-gnu \
   x86_64-knetbsd-gnu x86_64-w64-mingw32 \
   x86_64-mingw32OPT-enable-sjlj-exceptions=yes xstormy16-elf xtensa-elf \
   xtensa-linux \
-  sparc-sun-solaris2.9OPT-enable-obsolete i686-solaris2.9OPT-enable-obsolete \
   i686-interix3OPT-enable-obsolete score-elfOPT-enable-obsolete
 
 LOGFILES = $(patsubst %,log/%-make.out,$(LIST))
diff --git a/fixincludes/inclhack.def b/fixincludes/inclhack.def
--- a/fixincludes/inclhack.def
+++ b/fixincludes/inclhack.def
@@ -2767,6 +2767,9 @@ fix = {
  */
 bypass= 'We have a problem when using C\+\+|for C\+\+, '
 		'_[a-z0-9A-Z_]+_exception; for C, exception';
+/* The Solaris 10 headers already get this right.  */
+mach   = '*-*-solaris2.1[0-9]*';
+not_machine = true;
 c_fix = wrap;
 
 c_fix_arg = #ifdef __cplusplus\n
@@ -3407,42 +3410,6 @@ fix = {
 };
 
 /*
- * Sun Solaris up to 9 has a version of sys/int_types.h that forbids use
- * of Standard C99 64-bit types in 32-bit mode.
- */
-fix = {
-hackname  = solaris_int_types;
-select= __STDC__ - 0 == 0;
-bypass= _LONGLONG_TYPE;
-files = sys/int_types.h;
-c_fix = format;
-c_fix_arg =
-(defined(_STDC_C99) || !defined(_STRICT_STDC) || defined(__GNUC__));
-test_text =
-#if __STDC__ - 0 == 0  !defined(_NO_LONGLONG)\n
-typedef	long long		int64_t;\n
-#endif\n\n
-#if defined(_LP64) || (__STDC__ - 0 == 0  !defined(_NO_LONGLONG))\n
-typedef int64_t			intmax_t;\n
-#endif;
-};
-
-/*
- *  Before Solaris 10, iso/setjmp_iso.h doesn't mark longjump noreturn.
- */
-fix = {
-hackname  = solaris_longjmp_noreturn;
-mach  = *-*-solaris2*;
-files = iso/setjmp_iso.h;
-bypass= __NORETURN;
-select= (.*longjmp\\(jmp_buf.*[^)]+\\));;
-c_fix = format;
-c_fix_arg = %1 __attribute__ ((__noreturn__));;
-
-test_text = extern void longjmp(jmp_buf, int);;
-};
-
-/*
  * Sun Solaris 10 defines several C99 math macros in terms of
  * builtins specific to the Studio compiler, in particular not
  * compatible with the GNU compiler.
@@ -3595,44 +3562,6 @@ fix = {
 };
 
 /*
- * Sun Solaris defines PTHREAD_MUTEX_INITIALIZER with a trailing
- * 0 for the last field of the pthread_mutex_t structure, which is
- * of type upad64_t, which itself is typedef'd to int64_t, but with
- * __STDC__ defined (e.g. by -ansi) it is a union. So change the
- * initializer to {0} instead
- */
-fix = {
-hackname = solaris_mutex_init_2;
-select = '@\(#\)pthread.h' [ \t]+1.[0-9]+[ \t]+[0-9/]+ SMI;
-files = pthread.h;
-/*
- * On Solaris 10, this fix is unnecessary because upad64_t is
- * always defined correctly regardless of the definition of the
- * __STDC__ macro.  The first mach pattern matches up to
- * solaris9.  The second mach pattern will not match any two (or
- * more) digit solaris version, but it will match e.g. 2.5.1.
- */
-mach = '*-*-solaris2.[0-9]', '*-*-solaris2.[0-9][!0-9]*';
-c_fix = format;
-c_fix_arg = #if __STDC__ - 0 == 0  !defined(_NO_LONGLONG)\n
-%0\n
-#else\n
-%1, {0}}%4\n
-#endif;
-c_fix_arg = (^#define[ \t]+PTHREAD_(MUTEX|COND)_INITIALIZER[ \t]+
-(|/\*.*\*/[ \t]*\n[ \t]*)\\{.*)
-,[ \t]*0\\} (|[ \t].*)$;
-test_text =
-'#ident @(#)pthread.h  1.26  98/04/12 SMI'\n
-#define PTHREAD_MUTEX_INITIALIZER\t{{{0},0}, {{{0}}}, 0}\n
-#define PTHREAD_COND_INITIALIZER\t{{{0}, 0}, 0}\t/* DEFAULTCV */\n
-#define	PTHREAD_MUTEX_INITIALIZER		/* = DEFAULTMUTEX */	\n
-	{{0, 0, 0, DEFAULT_TYPE, _MUTEX_MAGIC}, {{{0}}}, 0}\n
-#define	PTHREAD_COND_INITIALIZER		/* = DEFAULTCV */	\n
-	{{{0, 0, 0, 0}, DEFAULT_TYPE, _COND_MAGIC}, 0};
-};
-
-/*
  * Sun Solaris defines PTHREAD_ONCE_INIT as an array containing a
  * structure.  As such, it need two levels of brackets, but only
  * contains one.  Wrap the macro definition in an extra layer.
@@ -3651,38 +3580,6 @@ fix = {
 };
 
 /*
- * Sun Solaris defines PTHREAD_ONCE_INIT with a 0 for some
- *  fields of the pthread_once_t

Re: Remove obsolete Solaris 9 support

2014-04-22 Thread Rainer Orth
Bruce Korb bk...@gnu.org writes:

 On 04/16/14 04:16, Rainer Orth wrote:
 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.


  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.

 Removing dinkleberry fixes by the platform maintainer always has my approval. 
 :)

Thanks.  I've had to update once of the testcases which was modified by
two different fixes.  High time to integrate fixincludes make check with
the testsuite so this isn't so easily overlooked...

Rainer

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


Re: Remove obsolete Solaris 9 support

2014-04-22 Thread Rainer Orth
Rainer Orth r...@cebitec.uni-bielefeld.de writes:

 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?

David, could you please review this comment for correctness on AIX?

Thanks.
Rainer

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


Re: Remove obsolete Solaris 9 support

2014-04-22 Thread Rainer Orth
Andrew Haley a...@redhat.com writes:

 On 04/16/2014 12:16 PM, Rainer Orth wrote:
 * 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


Re: Remove obsolete Solaris 9 support

2014-04-22 Thread Mark Wielaard
On Sat, 2014-04-19 at 09:03 +0100, Andrew Haley wrote:
 On 04/16/2014 12:16 PM, Rainer Orth wrote:
  * 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



Re: Remove obsolete Solaris 9 support

2014-04-22 Thread David Edelsohn
On Tue, Apr 22, 2014 at 8:39 AM, Rainer Orth
r...@cebitec.uni-bielefeld.de wrote:
 Rainer Orth r...@cebitec.uni-bielefeld.de writes:

 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?

 David, could you please review this comment for correctness on AIX?

AIX TLS needs -pthread command line option.

Thanks, David


Re: Remove obsolete Solaris 9 support

2014-04-22 Thread Rainer Orth
David Edelsohn dje@gmail.com writes:

 On Tue, Apr 22, 2014 at 8:39 AM, Rainer Orth
 r...@cebitec.uni-bielefeld.de wrote:
 Rainer Orth r...@cebitec.uni-bielefeld.de writes:

 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?

 David, could you please review this comment for correctness on AIX?

 AIX TLS needs -pthread command line option.

Understood, but is the reason given in that comment (__tls_get_addr in
libthread) correct?  Seems like a Solaris 9 implementation detail to me.

Thanks.
Rainer

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


Re: Remove obsolete Solaris 9 support

2014-04-22 Thread David Edelsohn
On Tue, Apr 22, 2014 at 9:58 AM, Rainer Orth
r...@cebitec.uni-bielefeld.de wrote:

 David, could you please review this comment for correctness on AIX?

 AIX TLS needs -pthread command line option.

 Understood, but is the reason given in that comment (__tls_get_addr in
 libthread) correct?  Seems like a Solaris 9 implementation detail to me.

It's not a Solaris 9 implementation detail. That is why I wrote Same
for AIX. in the comment.

Thanks, David


Re: Remove obsolete Solaris 9 support

2014-04-22 Thread Rainer Orth
David Edelsohn dje@gmail.com writes:

 On Tue, Apr 22, 2014 at 9:58 AM, Rainer Orth
 r...@cebitec.uni-bielefeld.de wrote:

 David, could you please review this comment for correctness on AIX?

 AIX TLS needs -pthread command line option.

 Understood, but is the reason given in that comment (__tls_get_addr in
 libthread) correct?  Seems like a Solaris 9 implementation detail to me.

 It's not a Solaris 9 implementation detail. That is why I wrote Same
 for AIX. in the comment.

Ok, thanks for the confirmation.

Rainer

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


Re: Remove obsolete Solaris 9 support

2014-04-22 Thread Andrew Hughes


- Original Message -
 On Sat, 2014-04-19 at 09:03 +0100, Andrew Haley wrote:
  On 04/16/2014 12:16 PM, Rainer Orth wrote:
   * 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.

 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



Re: Remove obsolete Solaris 9 support

2014-04-19 Thread Andrew Haley
On 04/16/2014 12:16 PM, Rainer Orth wrote:
 * 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.



Re: Remove obsolete Solaris 9 support

2014-04-19 Thread Bruce Korb

On 04/16/14 04:16, Rainer Orth wrote:

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.




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.


Removing dinkleberry fixes by the platform maintainer always has my approval. :)


Re: Remove obsolete Solaris 9 support

2014-04-18 Thread Eric Botcazou
 But for the Solaris 9 stuff, it crystal clear that this cannot occur on
 Solaris 10 and up (no single-threaded case anymore since libthread.so.1
 has been folded into libc.so.1).  Ok to remove this part?

OK for the Solaris 9 - single-threaded part.

-- 
Eric Botcazou


Re: Remove obsolete Solaris 9 support

2014-04-17 Thread Rainer Orth
Uros Bizjak ubiz...@gmail.com writes:

 On Wed, Apr 16, 2014 at 1:16 PM, Rainer Orth
 r...@cebitec.uni-bielefeld.de wrote:
 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:

 * 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.

Done.  I'll repost the final patch once another round of testing has
completed.

Rainer

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


Re: Remove obsolete Solaris 9 support

2014-04-16 Thread Eric Botcazou
 * 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


Re: Remove obsolete Solaris 9 support

2014-04-16 Thread Rainer Orth
Eric Botcazou ebotca...@adacore.com writes:

 * 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.

Maybe not for the 2-frame vs. 3-frame case, though it would still be
good to know the exact circumstances.

But for the Solaris 9 stuff, it crystal clear that this cannot occur on
Solaris 10 and up (no single-threaded case anymore since libthread.so.1
has been folded into libc.so.1).  Ok to remove this part?

Rainer

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


Re: Remove obsolete Solaris 9 support

2014-04-16 Thread Uros Bizjak
On Wed, Apr 16, 2014 at 1:16 PM, Rainer Orth
r...@cebitec.uni-bielefeld.de wrote:
 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:

 * 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.


Re: Remove obsolete Solaris 9 support

2014-04-16 Thread Ian Lance Taylor
On Wed, Apr 16, 2014 at 4:16 AM, Rainer Orth
r...@cebitec.uni-bielefeld.de wrote:

 * 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


Re: Remove obsolete Solaris 9 support

2014-04-16 Thread Rainer Orth
Ian Lance Taylor i...@google.com writes:

 On Wed, Apr 16, 2014 at 4:16 AM, Rainer Orth
 r...@cebitec.uni-bielefeld.de wrote:

 * 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.

Go ahead whenever you like.  It's at most a few days until I commit the
rest, Solaris 9 isn't supposed to work on mainline any longer, and the
libgo part is independent of the rest.

I've already separated the libgo and classpath parts from my main patch.

Rainer

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


Re: Remove obsolete Solaris 9 support

2014-04-16 Thread Ian Lance Taylor
On Wed, Apr 16, 2014 at 1:02 PM, Rainer Orth
r...@cebitec.uni-bielefeld.de wrote:
 Ian Lance Taylor i...@google.com writes:

 On Wed, Apr 16, 2014 at 4:16 AM, Rainer Orth
 r...@cebitec.uni-bielefeld.de wrote:

 * 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.

 Go ahead whenever you like.  It's at most a few days until I commit the
 rest, Solaris 9 isn't supposed to work on mainline any longer, and the
 libgo part is independent of the rest.

 I've already separated the libgo and classpath parts from my main patch.

Thanks.  Committed attached patch to mainline.

Ian
diff -r 98547f162e12 libgo/configure.ac
--- a/libgo/configure.ac	Thu Apr 10 09:25:24 2014 -0700
+++ b/libgo/configure.ac	Wed Apr 16 13:22:16 2014 -0700
@@ -316,11 +316,6 @@
 	# msghdr in sys/socket.h.
 	OSCFLAGS=$OSCFLAGS -D_XOPEN_SOURCE=500
 	;;
-*-*-solaris2.[[89]])
-	# Solaris 8/9 need 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__
-	;;
 *-*-solaris2.1[[01]])
 	# Solaris 10+ needs this so struct msghdr gets the msg_control
 	# etc. fields in sys/socket.h (_XPG4_2).  _XOPEN_SOURCE=600 as
@@ -662,21 +657,6 @@
 [Define to 1 if math.h defines struct exception])
 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]]*)
-libgo_cv_lib_makecontext_stack_top=yes
-;;
-  *)
-libgo_cv_lib_makecontext_stack_top=no
-;;
-esac
-if test $libgo_cv_lib_makecontext_stack_top = yes; then
-  AC_DEFINE(MAKECONTEXT_STACK_TOP, 1,
-	[Define if makecontext expects top of stack in uc_stack.])
-fi
-
 dnl See whether setcontext changes the value of TLS variables.
 AC_CACHE_CHECK([whether setcontext clobbers TLS variables],
 [libgo_cv_lib_setcontext_clobbers_tls],
diff -r 98547f162e12 libgo/go/math/ldexp.go
--- a/libgo/go/math/ldexp.go	Thu Apr 10 09:25:24 2014 -0700
+++ b/libgo/go/math/ldexp.go	Wed Apr 16 13:22:16 2014 -0700
@@ -17,16 +17,6 @@
 
 func Ldexp(frac float64, exp int) float64 {
 	r := libc_ldexp(frac, exp)
-
-	// Work around a bug in the implementation of ldexp on Solaris
-	// 9.  If multiplying a negative number by 2 raised to a
-	// negative exponent underflows, we want to return negative
-	// zero, but the Solaris 9 implementation returns positive
-	// zero.  This workaround can be removed when and if we no
-	// longer care about Solaris 9.
-	if r == 0  frac  0  exp  0 {
-		r = Copysign(0, frac)
-	}
 	return r
 }
 
diff -r 98547f162e12 libgo/runtime/proc.c
--- a/libgo/runtime/proc.c	Thu Apr 10 09:25:24 2014 -0700
+++ b/libgo/runtime/proc.c	Wed Apr 16 13:22:16 2014 -0700
@@ -1212,9 +1212,6 @@
 	// here we need to set up the context for g0.
 	getcontext(mp-g0-context);
 	mp-g0-context.uc_stack.ss_sp = g0_sp;
-#ifdef MAKECONTEXT_STACK_TOP
-	mp-g0-context.uc_stack.ss_sp += g0_spsize;
-#endif
 	mp-g0-context.uc_stack.ss_size = g0_spsize;
 	makecontext(mp-g0-context, kickoff, 0);