mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-20 22:23:27 +00:00
9a59f62f61
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>
144 lines
3.2 KiB
Makefile
144 lines
3.2 KiB
Makefile
#
|
|
# Copyright (C) 2006-2013 OpenWrt.org
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v2.
|
|
# See /LICENSE for more information.
|
|
#
|
|
|
|
include $(TOPDIR)/rules.mk
|
|
|
|
PKG_NAME:=binutils
|
|
PKG_VERSION:=2.35.1
|
|
PKG_RELEASE:=2
|
|
|
|
PKG_SOURCE_URL:=@GNU/binutils
|
|
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz
|
|
PKG_VERSION:=$(PKG_VERSION)
|
|
PKG_HASH:=3ced91db9bf01182b7e420eab68039f2083aed0a214c0424e257eae3ddee8607
|
|
|
|
PKG_FIXUP:=autoreconf
|
|
PKG_LIBTOOL_PATHS:=. gas bfd opcodes gprof binutils ld libiberty gold intl
|
|
PKG_REMOVE_FILES:=libtool.m4
|
|
PKG_INSTALL:=1
|
|
|
|
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
|
PKG_LICENSE:=GPL-3.0+
|
|
PKG_CPE_ID:=cpe:/a:gnu:binutils
|
|
PKG_BUILD_PARALLEL:=1
|
|
PKG_USE_MIPS16:=0
|
|
|
|
include $(INCLUDE_DIR)/nls.mk
|
|
include $(INCLUDE_DIR)/package.mk
|
|
|
|
define Package/libbfd
|
|
SECTION:=libs
|
|
CATEGORY:=Libraries
|
|
TITLE:=libbfd
|
|
DEPENDS:=+zlib $(INTL_DEPENDS)
|
|
endef
|
|
|
|
define Package/libctf
|
|
SECTION:=libs
|
|
CATEGORY:=Libraries
|
|
TITLE:=libctf
|
|
DEPENDS:=+libbfd
|
|
endef
|
|
|
|
define Package/libopcodes
|
|
SECTION:=libs
|
|
CATEGORY:=Libraries
|
|
TITLE:=libopcodes
|
|
DEPENDS:=+libbfd
|
|
endef
|
|
|
|
define Package/binutils
|
|
SECTION:=devel
|
|
CATEGORY:=Development
|
|
TITLE:=binutils
|
|
DEPENDS:=+objdump +ar
|
|
ALTERNATIVES:=200:/usr/bin/strings:/usr/bin/binutils-strings
|
|
endef
|
|
|
|
define Package/objdump
|
|
SECTION:=devel
|
|
CATEGORY:=Development
|
|
TITLE:=objdump
|
|
DEPENDS:=+libopcodes +libctf
|
|
endef
|
|
|
|
define Package/ar
|
|
SECTION:=devel
|
|
CATEGORY:=Development
|
|
TITLE:=ar
|
|
DEPENDS:=+zlib +libbfd
|
|
endef
|
|
|
|
define Package/binutils/description
|
|
The Binutils package contains a linker, an assembler, and other tools for handling object files
|
|
endef
|
|
|
|
TARGET_CFLAGS += $(FPIC) -Wno-unused-value
|
|
|
|
TARGET_LDFLAGS += $(if $(INTL_FULL),-lintl)
|
|
|
|
CONFIGURE_ARGS += \
|
|
--host=$(REAL_GNU_TARGET_NAME) \
|
|
--target=$(REAL_GNU_TARGET_NAME) \
|
|
--enable-shared \
|
|
--enable-install-libiberty \
|
|
--enable-install-libbfd \
|
|
--enable-install-libctf
|
|
|
|
define Build/Install
|
|
$(call Build/Install/Default)
|
|
$(MAKE) -C $(PKG_BUILD_DIR)/libiberty \
|
|
target_header_dir=libiberty \
|
|
DESTDIR="$(PKG_INSTALL_DIR)" \
|
|
MULTIOSDIR="" \
|
|
install
|
|
endef
|
|
|
|
define Build/InstallDev
|
|
$(CP) $(PKG_INSTALL_DIR)/* $(1)/
|
|
endef
|
|
|
|
define Package/libbfd/install
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libbfd*.so* $(1)/usr/lib/
|
|
endef
|
|
|
|
define Package/libctf/install
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libctf*.so* $(1)/usr/lib/
|
|
endef
|
|
|
|
define Package/libopcodes/install
|
|
$(INSTALL_DIR) $(1)/usr/lib
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libopcodes*.so $(1)/usr/lib/
|
|
endef
|
|
|
|
define Package/objdump/install
|
|
$(INSTALL_DIR) $(1)/usr/bin
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/bin/objdump $(1)/usr/bin/
|
|
endef
|
|
|
|
define Package/ar/install
|
|
$(INSTALL_DIR) $(1)/usr/bin
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/bin/ar $(1)/usr/bin/
|
|
endef
|
|
|
|
define Package/binutils/install
|
|
$(INSTALL_DIR) $(1)/usr $(1)/bin
|
|
$(CP) $(PKG_INSTALL_DIR)/usr/bin/ $(1)/usr/
|
|
mv $(1)/usr/bin/strings $(1)/usr/bin/binutils-strings
|
|
rm -f $(1)/usr/bin/objdump
|
|
rm -f $(1)/usr/bin/ar
|
|
endef
|
|
|
|
$(eval $(call BuildPackage,libbfd))
|
|
$(eval $(call BuildPackage,libctf))
|
|
$(eval $(call BuildPackage,libopcodes))
|
|
$(eval $(call BuildPackage,binutils))
|
|
$(eval $(call BuildPackage,objdump))
|
|
$(eval $(call BuildPackage,ar))
|