diff mbox series

[build,libgcc,libgo] Adapt Solaris 12 references

Message ID yddvaj25i8b.fsf@CeBiTec.Uni-Bielefeld.DE
State New
Headers show
Series [build,libgcc,libgo] Adapt Solaris 12 references | expand

Commit Message

Rainer Orth Oct. 26, 2017, 10:14 a.m. UTC
With the change in the Solaris release model (no more major releases
like Solaris 12 but only minor ones like 11.4), the Solaris 12
references in GCC need to be adapted.

The following patch does this, consisting mostly of comment changes.

Only a few changes bear comment:

* Solaris 11.4 introduced __cxa_atexit, so we have to enable it on
  *-*-solaris2.11.  Not a problem for native builds which check for the
  actual availability of the function.

* gcc.dg/torture/pr60092.c was xfailed on *-*-solaris2.11*, but the
  underlying bug was fixed in Solaris 12/11.4.  However, now 11.3 and
  11.4 have the same configure triplet.  To avoid noise on the newest
  release, I've removed the xfail.

I've left a few references to Solaris 12 builds in
libstdc++-v3/acinclude.m4 because those hadn't been renamed
retroactively, of course.

install.texi needs some work, too, but I'll address this separately
because there's more than just the version change.

Bootstrapped without regressions on {i386-pc, sparc-sun}-solaris2.1[01]
(both Solaris 11.3 and 11.4).  I believe I need approval only for the
libgo parts.

I'm going to backport the patch to the gcc-7 and gcc-6 branches after a
bit of soak time.

	Rainer

Comments

Rainer Orth Nov. 14, 2017, 10:09 a.m. UTC | #1
Hi Ian,

> With the change in the Solaris release model (no more major releases
> like Solaris 12 but only minor ones like 11.4), the Solaris 12
> references in GCC need to be adapted.
>
> The following patch does this, consisting mostly of comment changes.
>
> Only a few changes bear comment:
>
> * Solaris 11.4 introduced __cxa_atexit, so we have to enable it on
>   *-*-solaris2.11.  Not a problem for native builds which check for the
>   actual availability of the function.
>
> * gcc.dg/torture/pr60092.c was xfailed on *-*-solaris2.11*, but the
>   underlying bug was fixed in Solaris 12/11.4.  However, now 11.3 and
>   11.4 have the same configure triplet.  To avoid noise on the newest
>   release, I've removed the xfail.
>
> I've left a few references to Solaris 12 builds in
> libstdc++-v3/acinclude.m4 because those hadn't been renamed
> retroactively, of course.
>
> install.texi needs some work, too, but I'll address this separately
> because there's more than just the version change.
>
> Bootstrapped without regressions on {i386-pc, sparc-sun}-solaris2.1[01]
> (both Solaris 11.3 and 11.4).  I believe I need approval only for the
> libgo parts.

how should we proceed with the libgo part of this patch?  I can checkin
the rest (which contains functional changes) now and omit the libgo
part (either for now or completely, given that it consists only of
comment changes).

> I'm going to backport the patch to the gcc-7 and gcc-6 branches after a
> bit of soak time.

What's the procedure for libgo here?  IIUC, only the trunk version of
libgo is imported from upstream, while changes to branches can go in
directly.

Thanks.
        Rainer
Li, Pan2 via Gcc-patches Nov. 14, 2017, 2:27 p.m. UTC | #2
On Tue, Nov 14, 2017 at 2:09 AM, Rainer Orth
<ro@cebitec.uni-bielefeld.de> wrote:
>
>> With the change in the Solaris release model (no more major releases
>> like Solaris 12 but only minor ones like 11.4), the Solaris 12
>> references in GCC need to be adapted.
>>
>> The following patch does this, consisting mostly of comment changes.
>>
>> Only a few changes bear comment:
>>
>> * Solaris 11.4 introduced __cxa_atexit, so we have to enable it on
>>   *-*-solaris2.11.  Not a problem for native builds which check for the
>>   actual availability of the function.
>>
>> * gcc.dg/torture/pr60092.c was xfailed on *-*-solaris2.11*, but the
>>   underlying bug was fixed in Solaris 12/11.4.  However, now 11.3 and
>>   11.4 have the same configure triplet.  To avoid noise on the newest
>>   release, I've removed the xfail.
>>
>> I've left a few references to Solaris 12 builds in
>> libstdc++-v3/acinclude.m4 because those hadn't been renamed
>> retroactively, of course.
>>
>> install.texi needs some work, too, but I'll address this separately
>> because there's more than just the version change.
>>
>> Bootstrapped without regressions on {i386-pc, sparc-sun}-solaris2.1[01]
>> (both Solaris 11.3 and 11.4).  I believe I need approval only for the
>> libgo parts.
>
> how should we proceed with the libgo part of this patch?  I can checkin
> the rest (which contains functional changes) now and omit the libgo
> part (either for now or completely, given that it consists only of
> comment changes).

Sorry, I've fallen behind a bit on gccgo/libgo patch review.  I've now
committed your patch to libgo trunk.


>> I'm going to backport the patch to the gcc-7 and gcc-6 branches after a
>> bit of soak time.
>
> What's the procedure for libgo here?  IIUC, only the trunk version of
> libgo is imported from upstream, while changes to branches can go in
> directly.

That is correct.  Backporting gcc/go/gofrontend and libgo patches to
release branches is always fine with me if the release managers are OK
with it.

Ian
Rainer Orth Nov. 15, 2017, 9:39 a.m. UTC | #3
Hi Ian,

> On Tue, Nov 14, 2017 at 2:09 AM, Rainer Orth
> <ro@cebitec.uni-bielefeld.de> wrote:
>>
>>> With the change in the Solaris release model (no more major releases
>>> like Solaris 12 but only minor ones like 11.4), the Solaris 12
>>> references in GCC need to be adapted.
>>>
>>> The following patch does this, consisting mostly of comment changes.
>>>
>>> Only a few changes bear comment:
>>>
>>> * Solaris 11.4 introduced __cxa_atexit, so we have to enable it on
>>>   *-*-solaris2.11.  Not a problem for native builds which check for the
>>>   actual availability of the function.
>>>
>>> * gcc.dg/torture/pr60092.c was xfailed on *-*-solaris2.11*, but the
>>>   underlying bug was fixed in Solaris 12/11.4.  However, now 11.3 and
>>>   11.4 have the same configure triplet.  To avoid noise on the newest
>>>   release, I've removed the xfail.
>>>
>>> I've left a few references to Solaris 12 builds in
>>> libstdc++-v3/acinclude.m4 because those hadn't been renamed
>>> retroactively, of course.
>>>
>>> install.texi needs some work, too, but I'll address this separately
>>> because there's more than just the version change.
>>>
>>> Bootstrapped without regressions on {i386-pc, sparc-sun}-solaris2.1[01]
>>> (both Solaris 11.3 and 11.4).  I believe I need approval only for the
>>> libgo parts.
>>
>> how should we proceed with the libgo part of this patch?  I can checkin
>> the rest (which contains functional changes) now and omit the libgo
>> part (either for now or completely, given that it consists only of
>> comment changes).
>
> Sorry, I've fallen behind a bit on gccgo/libgo patch review.  I've now
> committed your patch to libgo trunk.

thanks.  I've now committed the rest of the patch to mainline.

>>> I'm going to backport the patch to the gcc-7 and gcc-6 branches after a
>>> bit of soak time.
>>
>> What's the procedure for libgo here?  IIUC, only the trunk version of
>> libgo is imported from upstream, while changes to branches can go in
>> directly.
>
> That is correct.  Backporting gcc/go/gofrontend and libgo patches to
> release branches is always fine with me if the release managers are OK
> with it.

Good: I'll install the backports in a week or two unless the branches
are closed by then.

Thanks.
        Rainer
diff mbox series

Patch

# HG changeset patch
# Parent  f752fe4435b62bc0cae5d59f32c22db221b0c6f0
Adapt Solaris 12 references

diff --git a/gcc/config.gcc b/gcc/config.gcc
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -851,8 +851,8 @@  case ${target} in
   sol2_tm_file_tail="${cpu_type}/sol2.h sol2.h"
   sol2_tm_file="${sol2_tm_file_head} ${sol2_tm_file_tail}"
   case ${target} in
-    *-*-solaris2.1[2-9]*)
-      # __cxa_atexit was introduced in Solaris 12.
+    *-*-solaris2.1[1-9]*)
+      # __cxa_atexit was introduced in Solaris 11.4.
       default_use_cxa_atexit=yes
       ;;
   esac
diff --git a/gcc/config/sol2.h b/gcc/config/sol2.h
--- a/gcc/config/sol2.h
+++ b/gcc/config/sol2.h
@@ -208,8 +208,8 @@  along with GCC; see the file COPYING3.  
 /* We don't use the standard svr4 STARTFILE_SPEC because it's wrong for us.  */
 #undef STARTFILE_SPEC
 #ifdef HAVE_SOLARIS_CRTS
-/* Since Solaris 11.x and Solaris 12, the OS delivers crt1.o, crti.o, and
-   crtn.o, with a hook for compiler-dependent stuff like profile handling.  */
+/* Since Solaris 11.4, the OS delivers crt1.o, crti.o, and crtn.o, with a hook
+   for compiler-dependent stuff like profile handling.  */
 #define STARTFILE_SPEC "%{!shared:%{!symbolic: \
 			  crt1.o%s \
 			  %{p:%e-p is not supported; \
diff --git a/gcc/configure.ac b/gcc/configure.ac
--- a/gcc/configure.ac
+++ b/gcc/configure.ac
@@ -5091,7 +5091,7 @@  elif test x$gcc_cv_ld != x; then
   else
     case "$target" in
       *-*-solaris2.1[[1-9]]*)
-	# Solaris 11.x and Solaris 12 added PIE support.
+	# Solaris 11.3 added PIE support.
 	if $gcc_cv_ld -z help 2>&1 | grep -- type.*pie > /dev/null; then
 	  gcc_cv_ld_pie=yes
 	fi
diff --git a/gcc/testsuite/gcc.dg/torture/pr60092.c b/gcc/testsuite/gcc.dg/torture/pr60092.c
--- a/gcc/testsuite/gcc.dg/torture/pr60092.c
+++ b/gcc/testsuite/gcc.dg/torture/pr60092.c
@@ -4,7 +4,6 @@ 
 /* { dg-skip-if "No undefined weak" { nvptx-*-* } } */
 /* { dg-additional-options "-Wl,-undefined,dynamic_lookup" { target *-*-darwin* } } */
 /* { dg-additional-options "-Wl,-flat_namespace" { target *-*-darwin[89]* } } */
-/* { dg-xfail-run-if "posix_memalign modifies first arg on error" { *-*-solaris2.11* } { "-O0" } } */
 
 typedef __SIZE_TYPE__ size_t;
 extern int posix_memalign(void **memptr, size_t alignment, size_t size) __attribute__((weak));
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
@@ -1170,8 +1170,8 @@  proc check_effective_target_pie { } {
 	return 1;
     }
     if { [istarget *-*-solaris2.1\[1-9\]*] } {
-	# Full PIE support was added in Solaris 11.x and Solaris 12, but gcc
-	# errors out if missing, so check for that.
+	# Full PIE support was added in Solaris 11.3, but gcc errors out
+	# if missing, so check for that.
 	return [check_no_compiler_messages pie executable {
 	    int main (void) { return 0; }
 	} "-pie -fpie"]
diff --git a/libgcc/config.host b/libgcc/config.host
--- a/libgcc/config.host
+++ b/libgcc/config.host
@@ -277,7 +277,7 @@  case ${host} in
   tmake_file="$tmake_file $cpu_type/t-sol2"
   extra_parts="gmon.o crtbegin.o crtend.o"
   if test "${libgcc_cv_solaris_crts}" = yes; then
-    # Solaris 11.x and 12 provide crt1.o, crti.o, and crtn.o as part of the
+    # Solaris 11.4 provides crt1.o, crti.o, and crtn.o as part of the
     # base system.  crtp.o and crtpg.o implement the compiler-dependent parts.
     extra_parts="$extra_parts crtp.o crtpg.o"
     # If the Solaris CRTs are present, both ld and gld will have PIE support.
diff --git a/libgcc/config/sol2/crtpg.c b/libgcc/config/sol2/crtpg.c
--- a/libgcc/config/sol2/crtpg.c
+++ b/libgcc/config/sol2/crtpg.c
@@ -31,11 +31,10 @@  extern char _start[], _etext[];
 
 int __start_crt_compiler (int, char **);
 
-/* Since Solaris 11.x and Solaris 12, the system-provided CRTs provide a
-   hook to invoke initialization code early during process startup.
-   __start_crt_compiler is documented in crt1.o(5).  We use it to perform
-   initialization for profiling as a substitute for the earlier separate
-   gcrt1.o.  */
+/* Since Solaris 11.4, the system-provided CRTs provide a hook to invoke
+   initialization code early during process startup.  __start_crt_compiler
+   is documented in crt1.o(5).  We use it to perform initialization for
+   profiling as a substitute for the earlier separate gcrt1.o.  */
 
 int
 __start_crt_compiler (int argc __attribute__ ((unused)),
diff --git a/libgcc/configure.ac b/libgcc/configure.ac
--- a/libgcc/configure.ac
+++ b/libgcc/configure.ac
@@ -296,7 +296,7 @@  esac
 
 case ${host} in
 *-*-solaris2*)
-  # Check for system-provided CRTs on Solaris 11.x and Solaris 12.
+  # Check for system-provided CRTs on Solaris 11.4.
   AC_CACHE_CHECK([system-provided CRTs on Solaris],
     		 [libgcc_cv_solaris_crts],
     [libgcc_cv_solaris_crts=no
diff --git a/libgo/Makefile.am b/libgo/Makefile.am
--- a/libgo/Makefile.am
+++ b/libgo/Makefile.am
@@ -1111,7 +1111,7 @@  syscall/wait.lo: go/syscall/wait.c runti
 	@$(MKDIR_P) syscall
 	$(LTCOMPILE) -c -o $@ $(srcdir)/go/syscall/wait.c
 
-# Solaris 12 changed the type of fields in struct stat.
+# Solaris 11.4 changed the type of fields in struct stat.
 # Use a build tag, based on a configure check, to cope.
 if LIBGO_IS_SOLARIS
 if HAVE_STAT_TIMESPEC
diff --git a/libgo/configure.ac b/libgo/configure.ac
--- a/libgo/configure.ac
+++ b/libgo/configure.ac
@@ -757,7 +757,7 @@  STRUCT_EPOLL_EVENT_FD_OFFSET=${libgo_cv_
 AC_SUBST(STRUCT_EPOLL_EVENT_FD_OFFSET)
 
 dnl Check if <sys/stat.h> uses timespec_t for st_?tim members.  Introduced
-dnl in Solaris 12 for XPG7 compatibility.
+dnl in Solaris 11.4 for XPG7 compatibility.
 AC_EGREP_HEADER([timespec_t.*st_atim], [sys/stat.h],
 		[have_stat_timespec=yes], [have_stat_timespec=no])
 AM_CONDITIONAL(HAVE_STAT_TIMESPEC, test $have_stat_timespec = yes)
diff --git a/libgo/mkrsysinfo.sh b/libgo/mkrsysinfo.sh
--- a/libgo/mkrsysinfo.sh
+++ b/libgo/mkrsysinfo.sh
@@ -163,22 +163,22 @@  grep '^type _zone_net_addr_t ' gen-sysin
     sed -e 's/_in6_addr/[16]byte/' \
     >> ${OUT}
 
-# The Solaris 12 _flow_arp_desc_t struct.
+# The Solaris 11.4 _flow_arp_desc_t struct.
 grep '^type _flow_arp_desc_t ' gen-sysinfo.go | \
     sed -e 's/_in6_addr_t/[16]byte/g' \
     >> ${OUT}
 
-# The Solaris 12 _flow_l3_desc_t struct.
+# The Solaris 11.4 _flow_l3_desc_t struct.
 grep '^type _flow_l3_desc_t ' gen-sysinfo.go | \
     sed -e 's/_in6_addr_t/[16]byte/g' \
     >> ${OUT}
 
-# The Solaris 12 _mac_ipaddr_t struct.
+# The Solaris 11.3 _mac_ipaddr_t struct.
 grep '^type _mac_ipaddr_t ' gen-sysinfo.go | \
     sed -e 's/_in6_addr_t/[16]byte/g' \
     >> ${OUT}
 
-# The Solaris 12 _mactun_info_t struct.
+# The Solaris 11.3 _mactun_info_t struct.
 grep '^type _mactun_info_t ' gen-sysinfo.go | \
     sed -e 's/_in6_addr_t/[16]byte/g' \
     >> ${OUT}
diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh
--- a/libgo/mksysinfo.sh
+++ b/libgo/mksysinfo.sh
@@ -1288,22 +1288,22 @@  grep '^type _zone_net_addr_t ' gen-sysin
     sed -e 's/_in6_addr/[16]byte/' \
     >> ${OUT}
 
-# The Solaris 12 _flow_arp_desc_t struct.
+# The Solaris 11.4 _flow_arp_desc_t struct.
 grep '^type _flow_arp_desc_t ' gen-sysinfo.go | \
     sed -e 's/_in6_addr_t/[16]byte/g' \
     >> ${OUT}
 
-# The Solaris 12 _flow_l3_desc_t struct.
+# The Solaris 11.4 _flow_l3_desc_t struct.
 grep '^type _flow_l3_desc_t ' gen-sysinfo.go | \
     sed -e 's/_in6_addr_t/[16]byte/g' \
     >> ${OUT}
 
-# The Solaris 12 _mac_ipaddr_t struct.
+# The Solaris 11.3 _mac_ipaddr_t struct.
 grep '^type _mac_ipaddr_t ' gen-sysinfo.go | \
     sed -e 's/_in6_addr_t/[16]byte/g' \
     >> ${OUT}
 
-# The Solaris 12 _mactun_info_t struct.
+# The Solaris 11.3 _mactun_info_t struct.
 grep '^type _mactun_info_t ' gen-sysinfo.go | \
     sed -e 's/_in6_addr_t/[16]byte/g' \
     >> ${OUT}