lxd

Comment 3 for bug 2062176

Revision history for this message
Aleksandr Mikhalitsyn (mihalicyn) wrote (last edit ):

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