]> git.ipfire.org Git - thirdparty/ipxe.git/commit
[build] Use -fshort-wchar when building EFI host utilities
authorMichael Brown <mcb30@ipxe.org>
Mon, 10 Mar 2025 12:23:02 +0000 (12:23 +0000)
committerMichael Brown <mcb30@ipxe.org>
Mon, 10 Mar 2025 12:34:35 +0000 (12:34 +0000)
commit32d706a9ff8d053d31cad7f996defccd92a634b4
treece1cb45e29b3c48949a20bc19c08a3b5b9596230
parent82fac51626ea524d60d77cebfbc98318b0a0f236
[build] Use -fshort-wchar when building EFI host utilities

The EFI host utilities (such as elf2efi64, efirom, etc) include the
EDK2 headers, which include static assertions to ensure that they are
built with -fshort-wchar enabled.  When building the host utilities,
we currently bypass these assertions by defining MDE_CPU_EBC.  The EBC
compiler apparently does not support static assertions, and defining
MDE_CPU_EBC therefore causes EDK2's Base.h to define STATIC_ASSERT()
as a no-op.

Newer versions of the EDK2 headers omit the check for MDE_CPU_EBC (and
will presumably therefore fail to build with the EBC compiler).  This
causes our host utility builds to fail since the static assertion now
detects that we are building with the host's default ABI (i.e. without
enabling -fshort-wchar).

Fix by enabling -fshort-wchar when building EFI host utilities.  This
produces binaries that are technically incompatible with the host ABI.
However, since our host utilities never handle any wide-character
strings, this nominal ABI incompatiblity has no effect.

Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/Makefile.housekeeping