aboutsummaryrefslogtreecommitdiff
path: root/libgo
diff options
context:
space:
mode:
Diffstat (limited to 'libgo')
-rwxr-xr-xlibgo/mkrsysinfo.sh6
-rwxr-xr-xlibgo/mksysinfo.sh6
-rw-r--r--libgo/sysinfo.c4
3 files changed, 16 insertions, 0 deletions
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