Leo Famulari writes: > While testing the upgrade of our QEMU package to 4.0.0 or 4.1.0-rc3 on > x86_64-linux, the build fails when the header 'gnu/stubs-32.h' can't be > found: > > ------ > In file included from /gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/include/features.h:452:0, > from /gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/include/bits/libc-header-start.h:33, > from /gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/include/stdint.h:26, > from linuxboot_dma.c:65: > /gnu/store/h90vnqw0nwd0hhm1l5dgxsdrigddfmq4-glibc-2.28/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file or directory > compilation terminated. > make[1]: *** [/tmp/guix-build-qemu-4.1.0-rc3.drv-0/qemu-4.1.0-rc3/rules.mak:69: linuxboot_dma.o] Error 1 > make[1]: Leaving directory '/tmp/guix-build-qemu-4.1.0-rc3.drv-0/qemu-4.1.0-rc3/pc-bios/optionrom' > make: *** [Makefile:519: pc-bios/optionrom/all] Error 2 > ------ > > And of course, this header is not installed by glibc when it is built > for 64-bit systems. > > The header in question, 'stubs.h', looks like this: > > ------ > #if !defined __x86_64__ > # include > #endif > #if defined __x86_64__ && defined __LP64__ > # include > #endif > #if defined __x86_64__ && defined __ILP32__ > # include > #endif > ------ > > When I build for i686-linux, it works as expected. > > Any advice? I'm not really sure what's going on here. I don't know why it fails, but it works if you give it a newer GCC such as the one on 'core-updates'. I tried it with 4.0.0, but got stuck on two test failures. Hopefully 4.1.0 is easier to debug... :-)