diff options
Diffstat (limited to 'libgo')
-rwxr-xr-x | libgo/mkrsysinfo.sh | 6 | ||||
-rwxr-xr-x | libgo/mksysinfo.sh | 6 | ||||
-rw-r--r-- | libgo/sysinfo.c | 4 |
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 |