From 977e56a5fb539b8f497fba6a3c7651738bd53f8e Mon Sep 17 00:00:00 2001 From: Quentin Monnet Date: Mon, 14 Oct 2024 17:43:25 +0100 Subject: [PATCH] mirror: Define PACKAGE at build time when trying to detect libbfd MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Feature detection from the Makefile.feature for libbfd (with the different variants of the probe) may fail on some systems where the bfd.h and dis-asm.h headers expect the PACKAGE or PACKAGE_VERSION macros to be defined [0]. In the kernel tree, feature detection addresses it by defining the PACKAGE macro when invoking the compiler [1]. Add a similar definition for the mirror repository. Note that this issue has remained undetected for a while. This is because the bfd.h included in some distributions (Debian/Ubuntu, for example) does not contain the inclusion guard [2]. [0] https://sourceware.org/git/?p=binutils-gdb.git;a=blob;f=bfd/bfd-in.h;h=04e65aad5f0c235a5013513c545e57a01e96541f;hb=binutils-2_43_1#l27 [1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/build/feature/Makefile?h=v6.11#n114 [2] https://git.launchpad.net/ubuntu/+source/binutils/tree/debian/rules?h=applied/2.43.1-5#n1031 Reported-by: Holger Hoffstätte Signed-off-by: Quentin Monnet --- src/Makefile.feature | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Makefile.feature b/src/Makefile.feature index 131c67e4..90f9e7c3 100644 --- a/src/Makefile.feature +++ b/src/Makefile.feature @@ -45,7 +45,7 @@ LIBBFD_PROBE += ' bfd_demangle(0, 0, 0);' LIBBFD_PROBE += ' return 0;' LIBBFD_PROBE += '}' LIBBFD_PROBE_CMD = printf '%b\n' $(LIBBFD_PROBE) | \ - $(CC) $(CFLAGS) -Wall -Werror -x c - $(1) -o /dev/null >/dev/null + $(CC) $(CFLAGS) -Wall -Werror -x c -DPACKAGE='"bpftool"' - $(1) -o /dev/null >/dev/null define libbfd_build $(call detect,$(LIBBFD_PROBE_CMD)) @@ -78,7 +78,7 @@ DISASSEMBLER_PROBE += ' return 0;' DISASSEMBLER_PROBE += '}' DISASSEMBLER_PROBE_CMD = printf '%b\n' $(1) | \ - $(CC) $(CFLAGS) -Wall -Werror -x c - -lbfd -lopcodes -S -o - >/dev/null + $(CC) $(CFLAGS) -Wall -Werror -x c -DPACKAGE='"bpftool"' - -lbfd -lopcodes -S -o - >/dev/null define disassembler_build $(call detect,$(DISASSEMBLER_PROBE_CMD)) endef