Message ID | yddtwrm5mjy.fsf@lokon.CeBiTec.Uni-Bielefeld.DE |
---|---|
State | New |
Headers | show |
Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> writes: > 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. This patch has remained unreviewed for a week. Rainer
On Wed, Aug 26, 2015 at 4:14 AM, Rainer Orth <ro@cebitec.uni-bielefeld.de> wrote: > 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. Thanks. Committed to mainline. Sorry for the slow review. This is fine to commit to GCC 5 branch. stat_atim.go is a gccgo-specific file. stat_dragonfly.go came in from the master Go repository. Just another thing to straighten out some time. Ian
Ian Lance Taylor <iant@google.com> writes: > On Wed, Aug 26, 2015 at 4:14 AM, Rainer Orth > <ro@cebitec.uni-bielefeld.de> wrote: >> 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. > > Thanks. Committed to mainline. > > Sorry for the slow review. Thanks, and no worries: I just wanted to make sure it can make it into GCC 5.3. > This is fine to commit to GCC 5 branch. I'll let it soak on mainline for a week or two and commit to the branch then. > stat_atim.go is a gccgo-specific file. stat_dragonfly.go came in from > the master Go repository. Just another thing to straighten out some > time. I see: such differences can make things a bit confusing ;-) Rainer
# 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],