VDSO on armeb seems broken Description of problem: I'm seeing the VDSO method for `__clock_gettime64()` crashing under `qemu-armeb` (stack trace under Additional information, below). I rebuilt glibc with VDSO globally kludged off, and all was well. Steps to reproduce: ``` #include #include #include int main(int argc, char **argv) { time_t ts; printf("%ld\n", time(&ts)); exit(0); } ``` Results, first with VDSO active via a system snapshot, second with the patched glibc: ``` $ armeb-linux-gnueabihf-gcc -o /tmp/time /tmp/time.c $ qemu-armeb -L /.mirrorsnaps/.rootsnap.prev/usr/armeb-linux-gnueabihf /tmp/time qemu: uncaught target signal 11 (Segmentation fault) - core dumped Segmentation fault $ qemu-armeb -L /usr/armeb-linux-gnueabihf /tmp/time 1715123280 ``` Additional information: ``` Program received signal SIGSEGV, Segmentation fault. 0x4082b462 in ?? () (gdb) bt #0 0x4082b462 in ?? () #1 0x40bf64a4 in __GI___clock_gettime64 (clock_id=clock_id@entry=5, tp=tp@entry=0x407fe9c0) at ../sysdeps/unix/sysv/linux/clock_gettime.c:42 #2 0x40be9f58 in __GI___time64 (timer=0x0) at ../sysdeps/unix/sysv/linux/time.c:60 #3 __time (timer=0x407fea04) at ../sysdeps/unix/sysv/linux/time.c:73 ``` `clock_gettime.c:42` is ``` r = INTERNAL_VSYSCALL_CALL (vdso_time64, 2, clock_id, tp); ``` Interestingly, the problem doesn't occur on qemu-arm (little endian), all else equal.