libgo patch committed: Fixes for arm64 GoLLVM build
diff mbox series

Message ID CAOyqgcWTgreeZnWnVzU+tJC_=V=bcBQrkHn0SbLSY=yemTEqjA@mail.gmail.com
State New
Headers show
Series
  • libgo patch committed: Fixes for arm64 GoLLVM build
Related show

Commit Message

Ian Lance Taylor Sept. 19, 2019, 12:03 a.m. UTC
This libgo patch by Xiangdong JI is for the GoLLVM build on arm64
GNU/Linux.  It incorporates a type definition of 'uint128' to
'runtime' and 'syscall' packages.  This fixes
https://golang.org/issue/33711.  Bootstrapped and ran Go testsuite on
x86_64-pc-linux-gnu.  Committed to mainline.

Ian

Patch
diff mbox series

Index: gcc/go/gofrontend/MERGE
===================================================================
--- gcc/go/gofrontend/MERGE	(revision 275814)
+++ gcc/go/gofrontend/MERGE	(working copy)
@@ -1,4 +1,4 @@ 
-09ca3c1ea8a52b5d3d6c4331c59d44e0b6bfab57
+d81ff42c367cce2110ccf5ddbadb6cc9bdf94e28
 
 The first line of this file holds the git revision number of the last
 merge done from the gofrontend repository.
Index: libgo/mkrsysinfo.sh
===================================================================
--- libgo/mkrsysinfo.sh	(revision 275698)
+++ libgo/mkrsysinfo.sh	(working copy)
@@ -209,3 +209,9 @@  grep '^type _kevent ' gen-sysinfo.go | \
     sed -e s'/_kevent/keventt/' \
       -e 's/ udata [^;}]*/ udata *byte/' \
     >> ${OUT}
+
+# Type 'uint128' is needed in a couple of type definitions on arm64,such
+# as _user_fpsimd_struct, _elf_fpregset_t, etc.
+if ! grep '^type uint128' ${OUT} > /dev/null 2>&1; then
+    echo "type uint128 [16]byte" >> ${OUT}
+fi
Index: libgo/mksysinfo.sh
===================================================================
--- libgo/mksysinfo.sh	(revision 275698)
+++ libgo/mksysinfo.sh	(working copy)
@@ -1393,4 +1393,10 @@  grep '^type _mactun_info_t ' gen-sysinfo
     sed -e 's/_in6_addr_t/[16]byte/g' \
     >> ${OUT}
 
+# Type 'uint128' is needed in a couple of type definitions on arm64,such
+# as _user_fpsimd_struct, _elf_fpregset_t, etc.
+if ! grep '^type uint128' ${OUT} > /dev/null 2>&1; then
+    echo "type uint128 [16]byte" >> ${OUT}
+fi
+
 exit $?
Index: libgo/sysinfo.c
===================================================================
--- libgo/sysinfo.c	(revision 275698)
+++ libgo/sysinfo.c	(working copy)
@@ -424,7 +424,11 @@  EREF(MNT_FORCE);
 
 #if defined(HAVE_SYS_PTRACE_H)
 // From <sys/ptrace.h>
+#if defined (__aarch64__)
+SREF(user_pt_regs);
+#else
 SREF(pt_regs);
+#endif
 EREF(PTRACE_PEEKTEXT);
 #endif