toolchain: kill ADI Blackfin toolchain
authorArnout Vandecappelle <arnout@mind.be>
Wed, 23 Nov 2016 23:40:35 +0000 (00:40 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Fri, 25 Nov 2016 22:00:01 +0000 (23:00 +0100)
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>
12 files changed:
Config.in.legacy
package/glog/Config.in
package/php-amqp/Config.in
package/rabbitmq-c/Config.in
package/tinycbor/Config.in
package/x264/Config.in
toolchain/toolchain-external/Config.in
toolchain/toolchain-external/pkg-toolchain-external.mk
toolchain/toolchain-external/toolchain-external-blackfin-uclinux/Config.in [deleted file]
toolchain/toolchain-external/toolchain-external-blackfin-uclinux/Config.in.options [deleted file]
toolchain/toolchain-external/toolchain-external-blackfin-uclinux/toolchain-external-blackfin-uclinux.hash [deleted file]
toolchain/toolchain-external/toolchain-external-blackfin-uclinux/toolchain-external-blackfin-uclinux.mk [deleted file]

index cfb127610a13fc4eb35288d4c80955969812f87d..aeefb392c3b57b6b9b992702b12e4acd727ff6a6 100644 (file)
@@ -145,6 +145,14 @@ endif
 ###############################################################################
 comment "Legacy options removed in 2017.02"
 
+config BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX
+       bool "Blackfin.uclinux.org 2014R1 toolchain removed"
+       select BR2_LEGACY
+       help
+         The ADI Blackfin toolchain has many bugs which are fixed in
+         more recent gcc and uClibc-ng releases. Use the Buildroot
+         toolchain instead.
+
 config BR2_PACKAGE_MAKEDEVS
        bool "makedevs removed"
        select BR2_LEGACY
index f70875810187d0a12c0d39da47d53919089efd4a..534997af4948018b453dc1d14bc64e4b6ea573fe 100644 (file)
@@ -3,14 +3,11 @@ config BR2_PACKAGE_GLOG
        depends on BR2_INSTALL_LIBSTDCPP
        depends on BR2_TOOLCHAIN_HAS_THREADS
        depends on !BR2_STATIC_LIBS
-       # build issues with this external toolchain
-       depends on !BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX
        help
          C++ implementation of the Google logging module
 
          https://github.com/google/glog
 
 comment "glog needs a toolchain w/ C++, threads, dynamic library"
-       depends on !BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX
        depends on !BR2_INSTALL_LIBSTDCPP || !BR2_TOOLCHAIN_HAS_THREADS || \
                BR2_STATIC_LIBS
index 253bfa7b7c45dad2918892a632d03168330a6410..0aa2021f5ab0615e7bd48db87c60616843ec7c0e 100644 (file)
@@ -2,7 +2,6 @@ config BR2_PACKAGE_PHP_AMQP
        bool "php-amqp"
        depends on BR2_PACKAGE_PHP
        depends on BR2_TOOLCHAIN_HAS_THREADS # rabbitmq-c
-       depends on !BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX # rabbitmq-c
        select BR2_PACKAGE_RABBITMQ_C
        help
          Communicate with any AMQP compliant server.
@@ -11,4 +10,3 @@ config BR2_PACKAGE_PHP_AMQP
 
 comment "php-amqp needs a toolchain w/ threads"
        depends on !BR2_TOOLCHAIN_HAS_THREADS
-       depends on !BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX
index 0d08233a7080cedca5413bd21760139a7a590a8f..b330c904744fb653d33d7a20f251dc7520a98261 100644 (file)
@@ -1,9 +1,6 @@
 config BR2_PACKAGE_RABBITMQ_C
        bool "rabbitmq-c"
        depends on BR2_TOOLCHAIN_HAS_THREADS
-       # too old uClibc, not providing posix_spawn functions
-       # http://autobuild.buildroot.net/results/a6c3e79c61c5a535970d03bf37b068349f766a7f/
-       depends on !BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX
        help
          This is a C-language AMQP client library for use with v2.0+
          of the RabbitMQ broker.
@@ -12,4 +9,3 @@ config BR2_PACKAGE_RABBITMQ_C
 
 comment "rabbitmq-c needs a toolchain w/ threads"
        depends on !BR2_TOOLCHAIN_HAS_THREADS
-       depends on !BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX
index cf176e46fe313edc072f1d74291cebd2ddb70ffd..41f0b5fac3d49711c6dc4d1534f7ca7334c4f699 100644 (file)
@@ -1,7 +1,5 @@
 config BR2_PACKAGE_TINYCBOR
        bool "tinycbor"
-       # package uses fopencookie(), not available with this toolchain
-       depends on !BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX
        help
          Concise Binary Object Representation (CBOR) Library
 
index 7bf2319f2620c5099bbb6b7cf6f1114072401025..be3ab3f3e2bb28ab74a0726b89832293a3a7dad5 100644 (file)
@@ -1,6 +1,5 @@
 config BR2_PACKAGE_X264
        bool "x264"
-       depends on !BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX # madvise()
        help
          x264 is a free software library and application for
          encoding video streams into the H.264/MPEG-4 AVC
index 2c39e5ae592718802fb4bda9bce0cf314d0ed654..c007e623fd2115f9bf0209a8be27ef5d8deaf6ae 100644 (file)
@@ -25,9 +25,6 @@ source "toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.
 # ARM big-endian
 source "toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in"
 
-# Blackfin
-source "toolchain/toolchain-external/toolchain-external-blackfin-uclinux/Config.in"
-
 # MIPS (use codesourcery toolchain by default)
 source "toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in"
 source "toolchain/toolchain-external/toolchain-external-codescape-img-mips/Config.in"
@@ -125,9 +122,6 @@ source "toolchain/toolchain-external/toolchain-external-codesourcery-arm/Config.
 # ARM big-endian
 source "toolchain/toolchain-external/toolchain-external-linaro-armeb/Config.in.options"
 
-# Blackfin
-source "toolchain/toolchain-external/toolchain-external-blackfin-uclinux/Config.in.options"
-
 # MIPS
 source "toolchain/toolchain-external/toolchain-external-codesourcery-mips/Config.in.options"
 source "toolchain/toolchain-external/toolchain-external-codescape-img-mips/Config.in.options"
@@ -156,31 +150,4 @@ config BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY
          Copy the gdbserver provided by the external toolchain to the
          target.
 
-# When the FDPIC shared binary format is used, the corresponding libraries are
-# always installed. When a different binary format is used, we offer the option
-# of installing the FDPIC shared libraries.
-config BR2_BFIN_INSTALL_FDPIC_SHARED
-       bool "Install FDPIC shared libraries"
-       depends on BR2_bfin && !BR2_BINFMT_FDPIC
-       help
-         The Linux kernel supports running both FDPIC and FLAT applications
-         concurrently if the binary format specific libraries are installed
-         properly. This option allows developer to install FDPIC libraries
-         into a buildroot rootfs image built with binary format that is not
-         FDPIC.
-
-# When the FLAT shared binary format is used, we force the installation
-# of the corresponding libraries. When a different binary format is
-# used, we offer the option of installing the FLAT shared libraries.
-config BR2_BFIN_INSTALL_FLAT_SHARED
-       bool "Install FLAT shared libraries" if !BR2_BINFMT_FLAT_SHARED
-       depends on BR2_bfin
-       default y if BR2_BINFMT_FLAT_SHARED
-       help
-         The Linux kernel supports running both FDPIC and FLAT applications
-         concurrently if the binary format specific libraries are installed
-         properly. This option allows developer to install FLAT libraries
-         into a buildroot rootfs image built with binary format that is not
-         shared FLAT.
-
 endif # BR2_TOOLCHAIN_EXTERNAL
index 3cac5202d3b2a15bd9c67741ae093a7c20be9514..e0a8b410c04c0636e57e14d6de1e5b931b39de88 100644 (file)
@@ -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
 
diff --git a/toolchain/toolchain-external/toolchain-external-blackfin-uclinux/Config.in b/toolchain/toolchain-external/toolchain-external-blackfin-uclinux/Config.in
deleted file mode 100644 (file)
index 8b299e8..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-config BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX
-       bool "Blackfin.uclinux.org 2014R1"
-       depends on BR2_bfin
-       depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
-       select BR2_TOOLCHAIN_EXTERNAL_UCLIBC
-       select BR2_INSTALL_LIBSTDCPP
-       select BR2_TOOLCHAIN_HAS_NATIVE_RPC
-       select BR2_USE_WCHAR
-       select BR2_TOOLCHAIN_HAS_THREADS
-       select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
-       select BR2_HOSTARCH_NEEDS_IA32_LIBS
-       select BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_10
-       select BR2_TOOLCHAIN_GCC_AT_LEAST_4_3
-       select BR2_TOOLCHAIN_HAS_FORTRAN
-       help
-         Toolchain for the Blackfin architecture, from
-         http://blackfin.uclinux.org.
diff --git a/toolchain/toolchain-external/toolchain-external-blackfin-uclinux/Config.in.options b/toolchain/toolchain-external/toolchain-external-blackfin-uclinux/Config.in.options
deleted file mode 100644 (file)
index 3b7f457..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-if BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX
-
-config BR2_TOOLCHAIN_EXTERNAL_PREFIX
-       default "bfin-uclinux" if BR2_BINFMT_FLAT
-       default "bfin-linux-uclibc" if BR2_BINFMT_FDPIC
-
-config BR2_PACKAGE_PROVIDES_TOOLCHAIN_EXTERNAL
-       default "toolchain-external-blackfin-uclinux"
-
-endif
diff --git a/toolchain/toolchain-external/toolchain-external-blackfin-uclinux/toolchain-external-blackfin-uclinux.hash b/toolchain/toolchain-external/toolchain-external-blackfin-uclinux/toolchain-external-blackfin-uclinux.hash
deleted file mode 100644 (file)
index b320d94..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-# Locally calculated
-sha256 e424e90d8481d942a40266d78d1488726561fed3ec38403094f98055e61889d0  blackfin-toolchain-2014R1-RC2.i386.tar.bz2
-sha256 c65b1b4b918d5185349d62a3b7bf43b4b21e1175c52598ec047ca56b3f11d857  blackfin-toolchain-uclibc-full-2014R1-RC2.i386.tar.bz2
diff --git a/toolchain/toolchain-external/toolchain-external-blackfin-uclinux/toolchain-external-blackfin-uclinux.mk b/toolchain/toolchain-external/toolchain-external-blackfin-uclinux/toolchain-external-blackfin-uclinux.mk
deleted file mode 100644 (file)
index 0a48220..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-################################################################################
-#
-# toolchain-external-blackfin-uclinux
-#
-################################################################################
-
-TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION_MAJOR = 2014R1
-TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION = $(TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION_MAJOR)-RC2
-
-ifeq ($(BR2_BINFMT_FLAT),y)
-TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_SUBDIR = bfin-uclinux
-else
-TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_SUBDIR = bfin-linux-uclibc
-endif
-
-TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_SITE = http://downloads.sourceforge.net/project/adi-toolchain/$(TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION_MAJOR)/$(TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION)/i386
-TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_SOURCE = blackfin-toolchain-$(TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION).i386.tar.bz2
-TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_EXTRA_DOWNLOADS = blackfin-toolchain-uclibc-full-$(TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_VERSION).i386.tar.bz2
-
-TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_STRIP_COMPONENTS = 3
-
-# Special handling for Blackfin toolchain, because of the split in two
-# tarballs, and the organization of tarball contents. The tarballs
-# contain ./opt/uClinux/{bfin-uclinux,bfin-linux-uclibc} directories,
-# which themselves contain the toolchain. This is why we strip more
-# components than usual.
-define TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_UCLIBC_EXTRA_EXTRACT
-       $(call suitable-extractor,$(TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_EXTRA_DOWNLOADS)) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_EXTRA_DOWNLOADS) | \
-               $(TAR) --strip-components=3 -C $(@D) $(TAR_OPTIONS) -
-endef
-TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_POST_EXTRACT_HOOKS += TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_UCLIBC_EXTRA_EXTRACT
-
-$(eval $(toolchain-external-package))