https://gcc.gnu.org/bugzilla/show_bug.cgi?id=95928
--- Comment #10 from H.J. Lu <hjl.tools at gmail dot com> --- (In reply to Andi Kleen from comment #8) > It works fine without LTO. > > Otherwise the Linux kernel wouldn't work. It relies on this behavior for its > syscalls. > [hjl@gnu-cfl-2 pr95928]$ make /usr/gcc-9.3.1-x32/bin/gcc -B./ -c -o dummy.o dummy.c /usr/gcc-9.3.1-x32/bin/gcc -B./ -c sys_ni.i /usr/gcc-9.3.1-x32/bin/gcc -B./ -c capability.i /usr/gcc-9.3.1-x32/bin/gcc-ar rc -o libx.a sys_ni.o capability.o /usr/gcc-9.3.1-x32/bin/gcc -B./ -O2 -o x dummy.o libx.a /usr/gcc-9.3.1-x32/bin/gcc -B./ -O2 -o y dummy.o sys_ni.o capability.o objdump --disassemble=__x64_sys_capget x | grep sys_ni_syscall 401127: e8 e5 ff ff ff callq 401111 <sys_ni_syscall> objdump --disassemble=__x64_sys_capget y | grep sys_ni_syscall make: *** [Makefile:20: all] Error 1 [hjl@gnu-cfl-2 pr95928]$ > The test case is extracted from there. Something is missing in this testcase.