On Mon, Dec 21, 2015 at 06:20:35PM +0100, Julian Andres Klode wrote:
On Mon, Dec 21, 2015 at 06:19:05PM +0100, Ard Biesheuvel wrote:
On 21 December 2015 at 18:14, Julian Andres Klode jak@debian.org wrote:
Given that we're already here: arm/efibind.h and aarch64/efibind.h version as well include stdint.h - causing -ffreestanding builds like systemd-boot to fail for ARM architectures with
/usr/include/efi/arm/efibind.h:2:20: fatal error: stdint.h: No such file or directory /usr/include/efi/aarch64/efibind.h:2:20: fatal error: stdint.h: No such file or directory
Not sure what the best way to fix this would be. I assume gcc has some builtin fixed-size integers that could be used instead for freestanding environments.
GCC ships with a file called gcc-stdint.h, which gets included when including <stdint.h> while -ffreestanding is in effect. If this gcc-stdint.h is not present under your GCC install directory, or is not being picked up, there may be a problem in the source code that you are trying to build: perhaps it is trying to do something clever with overriding builtin defines?
systemd is also passing -nostdinc - that's probably the reason.
FTR, I forwarded this to systemd upstream: https://github.com/systemd/systemd/issues/2207
Let's see what they have to say.