This is the reason: https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux-raspi/+git/noble/tree/debian.raspi/config/annotations?h=master-next#n155 https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2038582
Minimal reproducer: # cat test.c #define _GNU_SOURCE
#include <errno.h> #include <stdio.h> #include <string.h> #include <sys/syscall.h> #include <stdlib.h> #include <unistd.h> #include <linux/futex.h>
#define futex(A, B, C, D, E, F) syscall(__NR_futex, A, B, C, D, E, F)
int main(int argc, char **argv) { unsigned int addr = 0; long ret;
ret = futex(&addr, FUTEX_WAKE, 1, NULL, NULL, 0); if (ret) { printf("Error! %s", strerror(errno)); exit(1); }
printf("OK!\n"); return 0; }
# uname -a Linux ubuntu 6.8.0-1004-raspi #4-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 02:29:55 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux
$ arm-linux-gnueabihf-gcc -static test.c $ strace -f /usr/arm-linux-gnueabihf/lib/ld-linux-armhf.so.3 ./a.out
futex(0xff83679c, FUTEX_WAKE, 1) = -1 ENOSYS (Function not implemented) statx(1, "", AT_STATX_SYNC_AS_STAT|AT_NO_AUTOMOUNT|AT_EMPTY_PATH, STATX_BASIC_STATS, {stx_mask=STATX_BASIC_STATS|STATX_MNT_ID, stx_attributes=0, stx_mode=S_IFCHR|0620, stx_size=0, ...}) = 0 write(1, "Error! Function not implemented", 31Error! Function not implemented) = 31 exit_group(1) = ? +++ exited with 1 +++
This code uses futex_time32: https://github.com/torvalds/linux/blob/4a4be1ad3a6efea16c56615f31117590fd881358/kernel/futex/syscalls.c#L492
This is the reason: /git.launchpad. net/~ubuntu- kernel/ ubuntu/ +source/ linux-raspi/ +git/noble/ tree/debian. raspi/config/ annotations? h=master- next#n155 /bugs.launchpad .net/ubuntu/ +source/ linux/+ bug/2038582
https:/
https:/
Minimal reproducer:
# cat test.c
#define _GNU_SOURCE
#include <errno.h>
#include <stdio.h>
#include <string.h>
#include <sys/syscall.h>
#include <stdlib.h>
#include <unistd.h>
#include <linux/futex.h>
#define futex(A, B, C, D, E, F) syscall(__NR_futex, A, B, C, D, E, F)
int main(int argc, char **argv)
{
unsigned int addr = 0;
long ret;
ret = futex(&addr, FUTEX_WAKE, 1, NULL, NULL, 0);
if (ret) {
printf("Error! %s", strerror(errno));
exit(1);
}
printf("OK!\n");
return 0;
}
# uname -a
Linux ubuntu 6.8.0-1004-raspi #4-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 02:29:55 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux
$ arm-linux- gnueabihf- gcc -static test.c linux-gnueabihf /lib/ld- linux-armhf. so.3 ./a.out
$ strace -f /usr/arm-
futex(0xff83679c, FUTEX_WAKE, 1) = -1 ENOSYS (Function not implemented) SYNC_AS_ STAT|AT_ NO_AUTOMOUNT| AT_EMPTY_ PATH, STATX_BASIC_STATS, {stx_mask= STATX_BASIC_ STATS|STATX_ MNT_ID, stx_attributes=0, stx_mode= S_IFCHR| 0620, stx_size=0, ...}) = 0
statx(1, "", AT_STATX_
write(1, "Error! Function not implemented", 31Error! Function not implemented) = 31
exit_group(1) = ?
+++ exited with 1 +++
This code uses futex_time32: /github. com/torvalds/ linux/blob/ 4a4be1ad3a6efea 16c56615f311175 90fd881358/ kernel/ futex/syscalls. c#L492
https:/