Ian Lance Taylor <i...@google.com> writes: > This patch to libgo fills out the syscall package for GNU/Linux to match > all the functions in the syscall package in the master Go library. > There is a test case for this patch at > http://code.google.com/p/go/issues/detail?id=3071 . Bootstrapped and > ran Go testsuite on x86_64-unknown-linux-gnu. Committed to mainline.
Unfortunately, this broke Solaris bootstrap: /usr/include/sys/ustat.h:31:2: error: #error "Cannot use ustat in the large files compilation environment" make[4]: *** No rule to make target `s-sysinfo', needed by `sysinfo.go'. Stop. make[4]: *** Waiting for unfinished jobs.... <sys/ustat.h> has #if !defined(_LP64) && _FILE_OFFSET_BITS == 64 #error "Cannot use ustat in the large files compilation environment" #endif I've used the hack below to restore bootstrap, but suppose a cleaner solution would be to run the configure tests with the same flags as used for the actual compilations (i.e. OSCFLAGS). Alternatively, one could restrict the use of <ustat.h> to Linux since it's only used in go/syscall/libcall_linux.go anyway. Rainer
# HG changeset patch # Parent d7ca4c137cbff062787505281b123c22dfc72019 Don't use <ustat.h> on 32-bit Solaris diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh --- a/libgo/mksysinfo.sh +++ b/libgo/mksysinfo.sh @@ -110,8 +110,12 @@ cat > sysinfo.c <<EOF #include <sys/sysinfo.h> #endif #if defined(HAVE_USTAT_H) +#if defined(__sun__) && defined(__svr4__) && !defined(_LP64) && _FILE_OFFSET_BITS == 64 +/* Solaris <ustat.h> is incompatible with largefiles. */ +#else #include <ustat.h> #endif +#endif #if defined(HAVE_UTIME_H) #include <utime.h> #endif
-- ----------------------------------------------------------------------------- Rainer Orth, Center for Biotechnology, Bielefeld University