diff options
-rw-r--r-- | gcc/go/gofrontend/MERGE | 2 | ||||
-rwxr-xr-x | libgo/mkrsysinfo.sh | 6 | ||||
-rwxr-xr-x | libgo/mksysinfo.sh | 6 | ||||
-rw-r--r-- | libgo/sysinfo.c | 4 |
4 files changed, 17 insertions, 1 deletions
diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index 4b7a4b3..330c458 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -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. diff --git a/libgo/mkrsysinfo.sh b/libgo/mkrsysinfo.sh index 0a5e29e..c28f0e5 100755 --- a/libgo/mkrsysinfo.sh +++ b/libgo/mkrsysinfo.sh @@ -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 diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh index d616bd8..488b223 100755 --- a/libgo/mksysinfo.sh +++ b/libgo/mksysinfo.sh @@ -1393,4 +1393,10 @@ grep '^type _mactun_info_t ' gen-sysinfo.go | \ 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 $? diff --git a/libgo/sysinfo.c b/libgo/sysinfo.c index 4ab798c..0692fd4 100644 --- a/libgo/sysinfo.c +++ b/libgo/sysinfo.c @@ -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 |