65d78dcfeb
It contains several fixes and improvements compared to our current version, and two of our patches have been accepted upstream. Most notably, it fixes the issue we had in using elf2flt with recent versions of binutils (upstream commit ba379d08bb78c9300e84351c11080c26ddcc36b3). Patch 0001-ld-elf2flt-behave-properly-when-called-with-a-name-d.patch is upstream as of commit 1c9b454336eaf38f7d037917a3120fae04193fbe Patch 0002-elf2flt.c-add-new-relocation-types-for-xtensa.patch is upstream as of commit d7eb73163bcea31168c438fc132a0967ac172e3d The other two patches are refreshed to apply properly on 2021.08. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
52 lines
1.8 KiB
Makefile
52 lines
1.8 KiB
Makefile
################################################################################
|
|
#
|
|
# elf2flt
|
|
#
|
|
################################################################################
|
|
|
|
ELF2FLT_VERSION = 2021.08
|
|
ELF2FLT_SITE = $(call github,uclinux-dev,elf2flt,v$(ELF2FLT_VERSION))
|
|
ELF2FLT_LICENSE = GPL-2.0+
|
|
ELF2FLT_LICENSE_FILES = LICENSE.TXT
|
|
|
|
HOST_ELF2FLT_DEPENDENCIES = host-binutils host-zlib
|
|
|
|
# 0003-elf2flt-handle-binutils-2.34.patch
|
|
HOST_ELF2FLT_AUTORECONF = YES
|
|
|
|
# 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))
|