![Yann E. MORIN](/assets/img/avatar_default.png)
Do for elf2flt what we did for binutils: replace the hardlinks (which
break rpath handling) with copies of the individaul tools.
See previous commit (package/binutils: switch from symlinks to copies
and commit f9cffb6af4
(binutils: replace hard-links with soft-links to
fix rpath) for the complete story.
Fixes: #11031.
Reported-by: Christophe Priouzeau <christophe.priouzeau@st.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Christophe Priouzeau <christophe.priouzeau@st.com>
Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Cc: Peter Korsgaard <peter@korsgaard.com>
Cc: Arnout Vandecappelle <arnout@mind.be>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
49 lines
1.7 KiB
Makefile
49 lines
1.7 KiB
Makefile
################################################################################
|
|
#
|
|
# elf2flt
|
|
#
|
|
################################################################################
|
|
|
|
ELF2FLT_VERSION = 6d80ab6c93409e796f85da404bde84b841231531
|
|
ELF2FLT_SITE = $(call github,uclinux-dev,elf2flt,$(ELF2FLT_VERSION))
|
|
ELF2FLT_LICENSE = GPL-2.0+
|
|
ELF2FLT_LICENSE_FILES = LICENSE.TXT
|
|
|
|
HOST_ELF2FLT_DEPENDENCIES = host-binutils host-zlib
|
|
|
|
# It is not exactly a host variant, but more a cross variant, which is
|
|
# why we pass a special --target option.
|
|
HOST_ELF2FLT_CONF_OPTS = \
|
|
--with-bfd-include-dir=$(HOST_BINUTILS_DIR)/bfd/ \
|
|
--with-binutils-include-dir=$(HOST_BINUTILS_DIR)/include/ \
|
|
--with-libbfd=$(HOST_BINUTILS_DIR)/bfd/libbfd.a \
|
|
--with-libiberty=$(HOST_BINUTILS_DIR)/libiberty/libiberty.a \
|
|
--target=$(GNU_TARGET_NAME) \
|
|
--disable-werror
|
|
|
|
HOST_ELF2FLT_LIBS = -lz
|
|
|
|
ifeq ($(BR2_GCC_ENABLE_LTO),y)
|
|
HOST_ELF2FLT_LIBS += -ldl
|
|
endif
|
|
|
|
HOST_ELF2FLT_CONF_ENV = LIBS="$(HOST_ELF2FLT_LIBS)"
|
|
|
|
# Hardlinks between binaries in different directories cause a problem
|
|
# with rpath fixup, so we de-hardlink those binaries, and replace them
|
|
# with copies instead. Note that elf2flt will rename ld to ld.real
|
|
# before installing its own ld, but we already took care of the
|
|
# original ld from binutils so that it is already de-hardlinked. So
|
|
# ld is now the one from elf2flt, and we want to de-hardlinke it.
|
|
ELF2FLT_TOOLS = elf2flt flthdr ld
|
|
define HOST_ELF2FLT_FIXUP_HARDLINKS
|
|
$(foreach tool,$(ELF2FLT_TOOLS),\
|
|
rm -f $(HOST_DIR)/$(GNU_TARGET_NAME)/bin/$(tool) && \
|
|
cp -a $(HOST_DIR)/bin/$(GNU_TARGET_NAME)-$(tool) \
|
|
$(HOST_DIR)/$(GNU_TARGET_NAME)/bin/$(tool)
|
|
)
|
|
endef
|
|
HOST_ELF2FLT_POST_INSTALL_HOOKS += HOST_ELF2FLT_FIXUP_HARDLINKS
|
|
|
|
$(eval $(host-autotools-package))
|