This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[libgo] Use stat_atim.go on Solaris 12+
- From: Rainer Orth <ro at CeBiTec dot Uni-Bielefeld dot DE>
- To: gcc-patches at gcc dot gnu dot org
- Cc: Ian Lance Taylor <iant at google dot com>
- Date: Wed, 26 Aug 2015 13:14:25 +0200
- Subject: [libgo] Use stat_atim.go on Solaris 12+
- Authentication-results: sourceware.org; auth=none
Solaris 12 changes the stat_[amc]tim members of struct stat from
timestruc_t to timespec_t for XPG7 compatiblity, thus breaking the libgo
build. The following patch checks for this change and uses the common
stat_atim.go if appropriate.
Btw., I noticed that go/os/stat_atim.go and stat_dragonfly.go are identical;
no idea why that would be useful.
Bootstrapped without regressions on i386-pc-solaris2.1[12] and
sparc-sun-solaris2.1[12].
I had to regenerate aclocal.m4 since for some reason it had been built
with automake 1.11.1 instead of the common 1.11.6, thus inhibiting
Makefile.in regeneration.
Ok for mainline now and the gcc 5 branch after some soak time?
Rainer
2015-02-10 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* configure.ac (have_stat_timespec): Check for timespec_t st_atim
in <sys/stat.h>.
(HAVE_STAT_TIMESPEC): New conditional.
* configure: Regenerate.
* Makefile.am [LIBGO_IS_SOLARIS && HAVE_STAT_TIMESPEC]
(go_os_stat_file): Use go/os/stat_atim.go.
* aclocal.m4: Regenerate.
* Makefile.in: Regenerate.
# HG changeset patch
# Parent b83d7b91430fc3d2c2f34df34aaf648b178d2cad
Use stat_atim.go on Solaris 12+
diff --git a/libgo/Makefile.am b/libgo/Makefile.am
--- a/libgo/Makefile.am
+++ b/libgo/Makefile.am
@@ -880,7 +880,11 @@ endif
endif
if LIBGO_IS_SOLARIS
+if HAVE_STAT_TIMESPEC
+go_os_stat_file = go/os/stat_atim.go
+else
go_os_stat_file = go/os/stat_solaris.go
+endif
else
if LIBGO_IS_LINUX
go_os_stat_file = go/os/stat_atim.go
diff --git a/libgo/configure.ac b/libgo/configure.ac
--- a/libgo/configure.ac
+++ b/libgo/configure.ac
@@ -654,6 +654,12 @@ AC_CACHE_CHECK([epoll_event data.fd offs
STRUCT_EPOLL_EVENT_FD_OFFSET=${libgo_cv_c_epoll_event_fd_offset}
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.
+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)
+
dnl See if struct exception is defined in <math.h>.
AC_CHECK_TYPE([struct exception],
[libgo_has_struct_exception=yes],
--
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University