This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: libgo patch committed: Update to Go 1.5 release


On Fri, Nov 6, 2015 at 5:01 AM, Rainer Orth <ro@cebitec.uni-bielefeld.de> wrote:
> Ian Lance Taylor <iant@golang.org> writes:
>
>> I have committed a patch to libgo to update it to the Go 1.5 release.
>>
>> As usual for libgo updates, the actual patch is too large to attach to
>> this e-mail message.  I've attached the changes to the gccgo-specific
>> files.
>>
>> Bootstrapped and ran Go testsuite on x86_64-pc-linux-gnu.  Committed
>> to mainline.
>>
>> This may cause trouble on non-GNU/Linux operating systems.  Please let
>> me know about any problems you encounter.
>
> It does indeed (first tried on i386-pc-solaris2.10):
>
> *
>
> /vol/gcc/src/hg/trunk/local/libgo/runtime/go-varargs.c: In function '__go_ioctl':
> /vol/gcc/src/hg/trunk/local/libgo/runtime/go-varargs.c:63:10: error: implicit declaration of function 'ioctl' [-Werror=implicit-function-declaration]
>    return ioctl (d, request, arg);
>           ^
>
>   Needs <unistd.h>, the following patch works:
>
>
>
> *
>
> /vol/gcc/src/hg/trunk/local/libgo/go/syscall/exec_bsd.go:107:7: error: incompatible types in assignment (cannot use type int as type Pid_t)
>     r1 = raw_getpid()
>        ^
>
> I can cast to Pid_t and this works.  The underlying error to me seems
> that raw_getpid the in the generated libcalls.go is wrong, casting
> c_getpid return value to int while pid_t can be long.
>
> *
>
> /vol/gcc/src/hg/trunk/local/libgo/go/net/hook_cloexec.go:13:70: error: reference to undefined identifier 'syscall.Accept4'
>   accept4Func func(int, int) (int, syscall.Sockaddr, error) = syscall.Accept4
>                                                                       ^
>
> No accept4 on Solaris (and certainly other systems, thence configure
> test), but used unconditionally.
>
> *
>
> /vol/gcc/src/hg/trunk/local/libgo/go/net/sendfile_solaris.go:78:22: error: reference to undefined identifier 'syscall.Sendfile'
>    n, err1 := syscall.Sendfile(dst, src, &pos1, n)
>                       ^
>
> Only in go/syscall/libcall_linux.go!?
>
> *
>
> /vol/gcc/src/hg/trunk/local/libgo/go/net/tcpsockopt_solaris.go:34:103: error: reference to undefined identifier 'syscall.TCP_KEEPALIVE_THRESHOLD'
>   return os.NewSyscallError("setsockopt", syscall.SetsockoptInt(fd.sysfd, syscall.IPPROTO_TCP, syscall.TCP_KEEPALIVE_THRESHOLD, msecs))
>
>                        ^
>
> Not in Solaris 10, only Solaris 11 and 12 have it.

Thanks for the notes.  I committed this patch to address these problems.

Ian

Attachment: patch.txt
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]