mirror of
https://gitlab.com/buildroot.org/buildroot.git
synced 2026-10-01 06:21:56 -09:00
toolchain: kill ADI Blackfin toolchain
This toolchain has many problems which are fixed in contemporary gcc and uClibc-ng. In addition, several hacks are needed to be able to work with this toolchain. All these hacks are removed as well. Also the package exceptions for this toolchain are removed. The BR2_BFIN_INSTALL_FDPIC_SHARED and BR2_BFIN_INSTALL_FLAT_SHARED options don't get a legacy entry. For the ADI toolchain, there already is a legacy entry, so it doesn't make sense to add it twice. For other external toolchains, these options didn't actually work, because they rely on the specific layout of the ADI toolchain. Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
committed by
Thomas Petazzoni
parent
006ba68a30
commit
311bc137da
@@ -16,7 +16,6 @@
|
||||
# MIPS, PowerPC, x86, x86_64 and NIOS 2 architectures. For the MIPS
|
||||
# toolchain, the -muclibc variant isn't supported yet, only the
|
||||
# default glibc-based variant is.
|
||||
# * Analog Devices toolchains for the Blackfin architecture
|
||||
# * Xilinx toolchains for the Microblaze architecture
|
||||
# * Synopsys DesignWare toolchains for ARC cores
|
||||
#
|
||||
@@ -79,12 +78,8 @@ ifneq ($(TOOLCHAIN_EXTERNAL_PREFIX),)
|
||||
TOOLCHAIN_EXTERNAL_BIN := $(shell dirname $(shell which $(TOOLCHAIN_EXTERNAL_PREFIX)-gcc))
|
||||
endif
|
||||
else
|
||||
ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX),y)
|
||||
TOOLCHAIN_EXTERNAL_BIN := $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/$(TOOLCHAIN_EXTERNAL_PREFIX)/bin
|
||||
else
|
||||
TOOLCHAIN_EXTERNAL_BIN := $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/bin
|
||||
endif
|
||||
endif
|
||||
|
||||
# If this is a buildroot toolchain, it already has a wrapper which we want to
|
||||
# bypass. Since this is only evaluated after it has been extracted, we can use
|
||||
@@ -505,57 +500,6 @@ define TOOLCHAIN_EXTERNAL_MUSL_LD_LINK
|
||||
endef
|
||||
endif
|
||||
|
||||
#
|
||||
# Various functions used by the external toolchain package
|
||||
# infrastructure to handle the Blackfin specific
|
||||
# BR2_BFIN_INSTALL_FDPIC_SHARED and BR2_BFIN_INSTALL_FLAT_SHARED
|
||||
# options.
|
||||
#
|
||||
|
||||
# Special installation target used on the Blackfin architecture when
|
||||
# FDPIC is not the primary binary format being used, but the user has
|
||||
# nonetheless requested the installation of the FDPIC libraries to the
|
||||
# target filesystem.
|
||||
ifeq ($(BR2_BFIN_INSTALL_FDPIC_SHARED),y)
|
||||
define TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS_BFIN_FDPIC
|
||||
$(Q)$(call MESSAGE,"Install external toolchain FDPIC libraries to staging...")
|
||||
$(Q)FDPIC_EXTERNAL_CC=$(dir $(TOOLCHAIN_EXTERNAL_CC))/../../bfin-linux-uclibc/bin/bfin-linux-uclibc-gcc ; \
|
||||
FDPIC_SYSROOT_DIR="$(call toolchain_find_sysroot,$${FDPIC_EXTERNAL_CC} $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \
|
||||
FDPIC_LIB_DIR="$(call toolchain_find_libdir,$${FDPIC_EXTERNAL_CC} $(TOOLCHAIN_EXTERNAL_CFLAGS))" ; \
|
||||
FDPIC_SUPPORT_LIB_DIR="" ; \
|
||||
if test `find $${FDPIC_SYSROOT_DIR} -name 'libstdc++.a' | wc -l` -eq 0 ; then \
|
||||
FDPIC_LIBSTDCPP_A_LOCATION=$$(LANG=C $${FDPIC_EXTERNAL_CC} $(TOOLCHAIN_EXTERNAL_CFLAGS) -print-file-name=libstdc++.a) ; \
|
||||
if [ -e "$${FDPIC_LIBSTDCPP_A_LOCATION}" ]; then \
|
||||
FDPIC_SUPPORT_LIB_DIR=`readlink -f $${FDPIC_LIBSTDCPP_A_LOCATION} | sed -r -e 's:libstdc\+\+\.a::'` ; \
|
||||
fi ; \
|
||||
fi ; \
|
||||
$(call copy_toolchain_sysroot,$${FDPIC_SYSROOT_DIR},$${FDPIC_SYSROOT_DIR},,$${FDPIC_LIB_DIR},$${FDPIC_SUPPORT_LIB_DIR})
|
||||
endef
|
||||
define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FDPIC
|
||||
$(Q)$(call MESSAGE,"Install external toolchain FDPIC libraries to target...")
|
||||
$(Q)for libs in $(TOOLCHAIN_EXTERNAL_LIBS); do \
|
||||
$(call copy_toolchain_lib_root,$$libs); \
|
||||
done
|
||||
endef
|
||||
endif
|
||||
|
||||
# Special installation target used on the Blackfin architecture when
|
||||
# shared FLAT is not the primary format being used, but the user has
|
||||
# nonetheless requested the installation of the shared FLAT libraries
|
||||
# to the target filesystem. The flat libraries are found and linked
|
||||
# according to the index in name "libN.so". Index 1 is reserved for
|
||||
# the standard C library. Customer libraries can use 4 and above.
|
||||
ifeq ($(BR2_BFIN_INSTALL_FLAT_SHARED),y)
|
||||
define TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FLAT
|
||||
$(Q)$(call MESSAGE,"Install external toolchain FLAT libraries to target...")
|
||||
$(Q)FLAT_EXTERNAL_CC=$(dir $(TOOLCHAIN_EXTERNAL_CC))../../bfin-uclinux/bin/bfin-uclinux-gcc ; \
|
||||
FLAT_LIBC_A_LOCATION=`$${FLAT_EXTERNAL_CC} $(TOOLCHAIN_EXTERNAL_CFLAGS) -mid-shared-library -print-file-name=libc`; \
|
||||
if [ -f $${FLAT_LIBC_A_LOCATION} -a ! -h $${FLAT_LIBC_A_LOCATION} ] ; then \
|
||||
$(INSTALL) -D $${FLAT_LIBC_A_LOCATION} $(TARGET_DIR)/lib/lib1.so; \
|
||||
fi
|
||||
endef
|
||||
endif
|
||||
|
||||
# uClibc-ng dynamic loader is called ld-uClibc.so.1, but gcc is not
|
||||
# patched specifically for uClibc-ng, so it continues to generate
|
||||
# binaries that expect the dynamic loader to be named ld-uClibc.so.0,
|
||||
@@ -644,7 +588,6 @@ define $(2)_INSTALL_STAGING_CMDS
|
||||
$$(TOOLCHAIN_WRAPPER_INSTALL)
|
||||
$$(TOOLCHAIN_EXTERNAL_CREATE_STAGING_LIB_SYMLINK)
|
||||
$$(TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS)
|
||||
$$(TOOLCHAIN_EXTERNAL_INSTALL_SYSROOT_LIBS_BFIN_FDPIC)
|
||||
$$(TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER)
|
||||
$$(TOOLCHAIN_EXTERNAL_INSTALL_GDBINIT)
|
||||
endef
|
||||
@@ -660,8 +603,6 @@ define $(2)_INSTALL_TARGET_CMDS
|
||||
$$(TOOLCHAIN_EXTERNAL_CREATE_TARGET_LIB_SYMLINK)
|
||||
$$(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_LIBS)
|
||||
$$(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_GDBSERVER)
|
||||
$$(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FDPIC)
|
||||
$$(TOOLCHAIN_EXTERNAL_INSTALL_TARGET_BFIN_FLAT)
|
||||
$$(TOOLCHAIN_EXTERNAL_FIXUP_UCLIBCNG_LDSO)
|
||||
endef
|
||||
|
||||
|
||||
Reference in New Issue
Block a user