binutils: fix libbfd missing DSO dependency if NLS enabled
The libbfd package definition uses $(ICONV_DEPENDS) and $(INTL_DEPENDS) but links against neither, leading to libbfd detection failures in other packages (e.g. bpftools) and on-target relocation problems with libintl.so: root@OpenWrt:/# ldd /usr/lib/libbfd.so ldd (0x77db6000) libc.so => ldd (0x77db6000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x77c6d000) Error relocating /usr/lib/libbfd.so: libintl_dgettext: symbol not found Add NLS-conditional linking of "libintl" to fix this. Also remove libbfd package dependency $(ICONV_DEPENDS) which is not used during building or linking. Tested with QEMU on malta/be32, after building all packages from binutils, bpftools and iproute2, using different libc options musl and glibc. Fixes:08e8175696
("binutils: use nls.mk to fix libbfd link errors in other packages") Signed-off-by: Tony Ambardar <itugrok@yahoo.com> (cherry picked from commit9a59f62f61
)
This commit is contained in:
parent
f88459de25
commit
879cbd9e97
|
@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
|
||||||
|
|
||||||
PKG_NAME:=binutils
|
PKG_NAME:=binutils
|
||||||
PKG_VERSION:=2.35.1
|
PKG_VERSION:=2.35.1
|
||||||
PKG_RELEASE:=1
|
PKG_RELEASE:=2
|
||||||
|
|
||||||
PKG_SOURCE_URL:=@GNU/binutils
|
PKG_SOURCE_URL:=@GNU/binutils
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
||||||
|
@ -34,7 +34,7 @@ define Package/libbfd
|
||||||
SECTION:=libs
|
SECTION:=libs
|
||||||
CATEGORY:=Libraries
|
CATEGORY:=Libraries
|
||||||
TITLE:=libbfd
|
TITLE:=libbfd
|
||||||
DEPENDS:=+zlib $(ICONV_DEPENDS) $(INTL_DEPENDS)
|
DEPENDS:=+zlib $(INTL_DEPENDS)
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/libctf
|
define Package/libctf
|
||||||
|
@ -79,6 +79,8 @@ endef
|
||||||
|
|
||||||
TARGET_CFLAGS += $(FPIC) -Wno-unused-value
|
TARGET_CFLAGS += $(FPIC) -Wno-unused-value
|
||||||
|
|
||||||
|
TARGET_LDFLAGS += $(if $(INTL_FULL),-lintl)
|
||||||
|
|
||||||
CONFIGURE_ARGS += \
|
CONFIGURE_ARGS += \
|
||||||
--host=$(REAL_GNU_TARGET_NAME) \
|
--host=$(REAL_GNU_TARGET_NAME) \
|
||||||
--target=$(REAL_GNU_TARGET_NAME) \
|
--target=$(REAL_GNU_TARGET_NAME) \
|
||||||
|
|
Loading…
Reference in New Issue