From bdc70c3c0a38e434002c73e13f0cf494b104b535 Mon Sep 17 00:00:00 2001 From: Fabrice Fontaine Date: Tue, 19 Sep 2023 08:15:56 +0200 Subject: [PATCH] package/binutils: install libsframe for all relevant binutils versions Fix the following build failure with oprofile raised since bump of binutils to version 2.40 in commit 35656482d3b74ab12a6c2395ac9ca61b60a2fd49: configure: error: bfd library not found [...] configure:17928: checking for bfd_openr in -lbfd configure:17953: /home/buildroot/autobuild/run/instance-1/output-1/host/bin/arm-linux-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -g0 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lbfd -liberty -lpopt -ldl -lintl >&5 /home/buildroot/autobuild/run/instance-1/output-1/host/opt/ext-toolchain/bin/../lib/gcc/arm-buildroot-linux-uclibcgnueabi/12.3.0/../../../../arm-buildroot-linux-uclibcgnueabi/bin/ld: warning: libsframe.so.0, needed by /home/buildroot/autobuild/run/instance-1/output-1/host/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libbfd.so, not found (try using -rpath or -rpath-link) Indeed, in this case, libsframe is not installed even after applying commit 1b4d921e1da614a72fed2a79d5c4f8e0b6d1cd45 because BR2_BINUTILS_VERSION_2_40_X is not selected by anyone (binutils package is selected by oprofile and the toolchain is not generated by buildroot) To fix this issue, invert the logic: install libsframe by default (i.e. when binutils is selected or with a buildroot toolchain). libsframe will not be installed only if binutils < 2.40 is detected. Fixes: - http://autobuild.buildroot.org/results/af9a2d52823a332b48e6df14d2708b6a4b3833a4 Signed-off-by: Fabrice Fontaine Signed-off-by: Thomas Petazzoni (cherry picked from commit e9f2f48a7ebba2d5f0b38b6e9d2f12627575141a) Signed-off-by: Peter Korsgaard --- package/binutils/Config.in.host | 6 +++--- package/binutils/binutils.mk | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/package/binutils/Config.in.host b/package/binutils/Config.in.host index 36436c0b27..bc7dc4443c 100644 --- a/package/binutils/Config.in.host +++ b/package/binutils/Config.in.host @@ -5,7 +5,7 @@ config BR2_PACKAGE_HOST_BINUTILS_SUPPORTS_CFI default y depends on !BR2_microblaze -config BR2_PACKAGE_BINUTILS_HAS_LIBSFRAME +config BR2_PACKAGE_BINUTILS_HAS_NO_LIBSFRAME bool choice @@ -17,18 +17,18 @@ choice config BR2_BINUTILS_VERSION_2_39_X bool "binutils 2.39" + select BR2_PACKAGE_BINUTILS_HAS_NO_LIBSFRAME config BR2_BINUTILS_VERSION_2_40_X bool "binutils 2.40" - select BR2_PACKAGE_BINUTILS_HAS_LIBSFRAME config BR2_BINUTILS_VERSION_2_41_X bool "binutils 2.41" - select BR2_PACKAGE_BINUTILS_HAS_LIBSFRAME config BR2_BINUTILS_VERSION_ARC bool "binutils arc (2.34.50)" depends on BR2_arc + select BR2_PACKAGE_BINUTILS_HAS_NO_LIBSFRAME endchoice diff --git a/package/binutils/binutils.mk b/package/binutils/binutils.mk index ecb00077d6..4bc1b69fa0 100644 --- a/package/binutils/binutils.mk +++ b/package/binutils/binutils.mk @@ -105,7 +105,7 @@ endif # our TARGET_CONFIGURE_ARGS are taken into consideration for those BINUTILS_MAKE_ENV = $(TARGET_CONFIGURE_ARGS) -ifeq ($(BR2_PACKAGE_BINUTILS_HAS_LIBSFRAME),y) +ifeq ($(BR2_PACKAGE_BINUTILS_HAS_NO_LIBSFRAME),) define BINUTILS_INSTALL_STAGING_LIBSFRAME $(TARGET_MAKE_ENV) $(MAKE) -C $(@D)/libsframe DESTDIR=$(STAGING_DIR) install endef