kumquat-buildroot/package/elf2flt/elf2flt.mk
Thomas Petazzoni f4187bd1ee package/binutils: drop support for binutils 2.39
Now that we have integrated support for binutils 2.42, and made
binutils 2.41 the default, following our tradition, we can drop
support for binutils 2.39.

In addition to the usual things, there is an additional minor change
in elf2flt.mk, which had a special condition applicable to binutils
2.39 or 2.40, which can be simplified to only apply to binutils 2.40
now.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Signed-off-by: Yann E. MORIN <yann.morin.1998@free.fr>
2024-03-03 11:46:16 +01:00

63 lines
2.4 KiB
Makefile

################################################################################
#
# elf2flt
#
################################################################################
ELF2FLT_VERSION = 2023.09
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
# 0001-elf2flt-handle-binutils-2.34.patch
HOST_ELF2FLT_AUTORECONF = YES
# elf2flt needs to link against libbfd.a and libiberty.a which are
# provided by host-binutils, but not installed, so we poke directly
# into the host-binutils build directory. Turns out that the location
# of libbfd.a has changed in binutils >= 2.41, so we special case
# binutils 2.39 and 2.40, which are the two remaining versions still
# using the "old" path". Note: the ARC-special binutils version is not
# considered because Buildroot only supports ARC CPUs with a MMU and
# therefore host-elf2flt is never used on ARC. libiberty.a has
# remained at the same location.
ifeq ($(BR2_BINUTILS_VERSION_2_40_X),y)
HOST_ELF2FLT_LIBBFD_PATH = $(HOST_BINUTILS_DIR)/bfd/libbfd.a
else
HOST_ELF2FLT_LIBBFD_PATH = $(HOST_BINUTILS_DIR)/bfd/.libs/libbfd.a
endif
# 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_ELF2FLT_LIBBFD_PATH) \
--with-libiberty=$(HOST_BINUTILS_DIR)/libiberty/libiberty.a \
--target=$(GNU_TARGET_NAME) \
--disable-werror
HOST_ELF2FLT_LIBS = -lz -ldl
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))