Comment 5 for bug 1843743

Revision history for this message
Ben Hutchings (benh-debian) wrote :

Steve Langasek wrote:
> The root failure is:
> objcopy -O binary usr/klibc/syscalls/typesize.o usr/klibc/syscalls/typesize.bin
> mkdir -p usr/include/klibc/; perl /tmp/klibc-2.0.6/usr/klibc/syscalls.pl -2 usr/klibc/syscalls/SYSCALLS.i /tmp/klibc-2.0.6/usr/klibc/arch/x86_64/sysstub.ph x86_64 64 usr/klibc/syscalls/syscalls.nrs usr/klibc/syscalls usr/include/klibc/havesyscall.h usr/klibc/syscalls/typesize.bin > usr/klibc/syscalls/syscalls.mk || ( rm -f usr/klibc/syscalls/syscalls.mk ; exit 1 )
> [...]
> /tmp/klibc-2.0.6/usr/klibc/syscalls.pl: usr/klibc/syscalls/typesize.bin: magic number not found

Thanks, I wasn't able to access the build log so I didn't see this.

Adam Conrad wrote:
> 2.0.7-1 fails to build in the same way on Ubuntu 19.10. I'm assuming it's either glibc 2.30 (Debian is at 2.29) or linux 5.3 (Debian is at 5.2), with the latter being more likely.

I tested upstream with Linux 5.3 headers, and klibc doesn't use glibc, so it's unlikely to be either of those.

The best guess I can come up with is that there's something different about the compiler defaults you're using that causes "objcopy -O binary" to not include static data in the output. objcopy itself probably isn't the difference as Debian unstable and Ubuntu eoan seem to have the same version of binutils.

(But I wonder whether the objcopy is even necessary. syscalls.pl doesn't require the magic number to be at the beginning of the file, so presumably it would also work with a regular ELF object file.)