-
Notifications
You must be signed in to change notification settings - Fork 18.4k
Description
Go currently uses the 32-bit futex syscall for Arm Linux:
go/src/runtime/sys_linux_arm.s
Line 32 in a212494
| #define SYS_futex (SYS_BASE + 240) |
Since torvalds/linux@00bf25d, this requires Linux to be configured with CONFIG_COMPAT_32BIT_TIME, or Go would need to switch to the newer futex_time64 syscall.
See the syscall table for Arm in Linux:
https://github.com/torvalds/linux/blob/1b237f190eb3d36f52dffe07a40b5eb210280e00/arch/arm/tools/syscall.tbl#L258
240 common futex sys_futex_time32
further down
422 common futex_time64 sys_futex
I am not seeing the minimum requirements mention this at this point: https://go.dev/wiki/MinimumRequirements
My suggestion is to switch to the newer syscall.
We have for now documented the Kconfig option in u-root.
For reference, this is how I found it:
u-root/u-root#3442
This is the crash, as it would be seen:
https://gist.github.com/orangecms/d7a8a59ec9dc28b74a20da09ff2db3ec
Metadata
Metadata
Assignees
Labels
Type
Projects
Status