On Fri, Aug 12, 2016 at 2:15 AM, Rainer Orth wrote: > >>> this patch broke i386-pc-solaris2.12 and sparc-sun-solaris2.12 >>> bootstrap, however: in both cases, the 64-bit build of os.lo fails like this: >>> >>> /vol/gcc/src/hg/trunk/local/libgo/go/os/dir.go:82:8: error: reference to undefined name 'libc_readdir_r' >>> i := libc_readdir_r(file.dirinfo.dir, entryDirent, pr) >>> ^ >>> >>> Neither dir_largefile.go (which is correctly omitted, being 32-bit only) >>> nor dir_regfile.go (which is needed here) is included in the >>> compilation. >> >> Sorry, I don't know what I messed up in my testing. I committed the >> appended patch, which should fix the problem. > > I had found a different one to the same effect, but running match.sh > with yours looked right, too. > > There's now one new failure, 32 and 64-bit, sparc and x86: > > +FAIL: syscall > > libgo.log shows > > libcalls.go:825:1: error: redefinition of 'Getpgid' > func Getpgid(pid int) (pgid int, err error) { > ^ > exec_solaris_test.go:22:1: note: previous definition of 'Getpgid' was here > func Getpgid(pid int) (pgid int, err error) { > ^ > libcalls.go:843:1: error: redefinition of 'Getpgrp' > func Getpgrp() (pid int) { > ^ > exec_solaris_test.go:31:1: note: previous definition of 'Getpgrp' was here > func Getpgrp() (pgrp int) { > ^ > exec_solaris_test.go:14:3: error: libc_Getpgid is not a function; //go:linkname is only supported for functions > //go:linkname libc_Getpgid libc_Getpgid > ^ > exec_solaris_test.go:15:3: error: libc_Getpgrp is not a function; //go:linkname is only supported for functions > //go:linkname libc_Getpgrp libc_Getpgrp > ^ > exec_solaris_test.go:23:15: error: reference to undefined name 'sysvicall6' > r0, _, e1 := sysvicall6(uintptr(unsafe.Pointer(&libc_Getpgid)), 1, uintptr(pid), 0, 0, 0, 0, 0) > ^ > exec_solaris_test.go:32:14: error: reference to undefined name 'sysvicall6' > r0, _, _ := sysvicall6(uintptr(unsafe.Pointer(&libc_Getpgrp)), 0, 0, 0, 0, 0, 0, 0) > ^ > exec_solaris_test.go:37:13: error: reference to undefined name 'ioctl' > var Ioctl = ioctl > ^ > exec_solaris_test.go:19:15: error: use of undefined type 'libcFunc' > libc_Getpgrp libcFunc > ^ > > I've no idea what exec_solaris_test.go is about: e.g.I couldn't find any > other reference to sysvicall6 elsewhere in the gcc tree. The file syscall/exec_solaris_test.go is verifying that the somewhat unusual way that Solaris support is implemented in the gc toolchain works correctly. It is meaningless and unnecessary for gccgo. I removed it. Patch bootstrapped and tested on x86_64-pc-linux-gnu, which I admit means nothing. Committed to mainline. Ian