libgo patch committed: Update to 1.11 release

Ian Lance Taylor iant@golang.org
Mon Oct 1 20:28:00 GMT 2018


On Wed, Sep 26, 2018 at 7:50 AM, H.J. Lu <hjl.tools@gmail.com> wrote:
> On Mon, Sep 24, 2018 at 2:46 PM, Ian Lance Taylor <iant@golang.org> wrote:
>> I've committed a patch to update libgo to the 1.11 release.  As usual
>> for these updates, the patch is too large to attach to this e-mail
>> message.  I've attached some of the more relevant directories.  This
>> update required some minor patches to the gotools directory and the Go
>> testsuite, also included here.  Bootstrapped and ran Go testsuite on
>> x86_64-pc-linux-gnu.  Committed to mainline.
>>
>> Ian
>>
>> 2018-09-24  Ian Lance Taylor  <iant@golang.org>
>>
>> * Makefile.am (mostlyclean-local): Run chmod on check-go-dir to
>> make sure it is writable.
>> (check-go-tools): Likewise.
>> (check-vet): Copy internal/objabi to check-vet-dir.
>> * Makefile.in: Rebuild.
>
> When building with -mx32, I got
>
> /export/gnu/import/git/sources/gcc/libgo/go/runtime/malloc.go:309:44:
> error: integer constant overflow
> 309 |  arenaBaseOffset uintptr = sys.GoarchAmd64 * (1 << 47)
>     |                                            ^


Thanks.  I fixed this problem by switching to using amd64p32 on x32.
Bootstrapped and ran testsuite on x86_64-pc-linux-gnu using
--with-multilib-list=m64,m32,mx32.  However, I ran this on a kernel
without x32 support, so while building succeeds, I couldn't actually
run any tests.  Let me know how they do.

Ian
-------------- next part --------------
Index: gcc/go/gofrontend/MERGE
===================================================================
--- gcc/go/gofrontend/MERGE	(revision 264771)
+++ gcc/go/gofrontend/MERGE	(working copy)
@@ -1,4 +1,4 @@
-013a9e68c9a31f888733d46182d19f9e5d956f27
+2f56d51c6b3104242613c74b02fa6c63a2fe16c5
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
Index: libgo/configure.ac
===================================================================
--- libgo/configure.ac	(revision 264648)
+++ libgo/configure.ac	(working copy)
@@ -252,8 +252,13 @@ changequote([,])dnl
 #ifdef __x86_64__
 #error 64-bit
 #endif],
-[GOARCH=386],
-[GOARCH=amd64])
+	[GOARCH=386],
+	AC_COMPILE_IFELSE([
+#ifdef __ILP32__
+#error x32
+#endif],
+	[GOARCH=amd64],
+	[GOARCH=amd64p32]))
     ;;
   ia64-*-*)
     GOARCH=ia64
Index: libgo/go/hash/crc32/crc32_amd64p32.go
===================================================================
--- libgo/go/hash/crc32/crc32_amd64p32.go	(revision 264648)
+++ libgo/go/hash/crc32/crc32_amd64p32.go	(working copy)
@@ -2,6 +2,8 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
+// +build ignore
+
 package crc32
 
 import "internal/cpu"
Index: libgo/go/internal/syscall/unix/getrandom_linux_amd64p32.go
===================================================================
--- libgo/go/internal/syscall/unix/getrandom_linux_amd64p32.go	(nonexistent)
+++ libgo/go/internal/syscall/unix/getrandom_linux_amd64p32.go	(working copy)
@@ -0,0 +1,9 @@
+// Copyright 2018 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package unix
+
+// Linux getrandom system call number.
+// See GetRandom in getrandom_linux.go.
+const randomTrap uintptr = 0x40000000 + 318
Index: libgo/go/runtime/lfstack_32bit.go
===================================================================
--- libgo/go/runtime/lfstack_32bit.go	(revision 264648)
+++ libgo/go/runtime/lfstack_32bit.go	(working copy)
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style
 // license that can be found in the LICENSE file.
 
-// +build 386 arm nacl armbe m68k mips mipsle mips64p32 mips64p32le nios2 ppc s390 sh shbe sparc
+// +build 386 amd64p32 arm nacl armbe m68k mips mipsle mips64p32 mips64p32le nios2 ppc s390 sh shbe sparc
 
 package runtime
 
Index: libgo/goarch.sh
===================================================================
--- libgo/goarch.sh	(revision 264648)
+++ libgo/goarch.sh	(working copy)
@@ -57,10 +57,15 @@ case $goarch in
 	defaultphyspagesize=8192
 	pcquantum=4
 	;;
-    amd64 | amd64p32)
+    amd64)
 	family=AMD64
 	hugepagesize="1 << 21"
 	;;
+    amd64p32)
+	family=AMD64
+	hugepagesize="1 << 21"
+	ptrsize=4
+	;;
     arm | armbe)
 	family=ARM
 	cachelinesize=32


More information about the Gcc-patches mailing list