All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [RFCv1 00/11] Convert toolchain backends to packages to fix source/external-deps/legal-info
@ 2013-09-05 21:27 Thomas Petazzoni
  2013-09-05 21:27 ` [Buildroot] [RFCv1 01/11] Makefile: make $(BUILD_DIR)/.root rule idempotent Thomas Petazzoni
                   ` (12 more replies)
  0 siblings, 13 replies; 49+ messages in thread
From: Thomas Petazzoni @ 2013-09-05 21:27 UTC (permalink / raw)
  To: buildroot

Hello,

The final goal of this patch set is to get 'make source' and 'make
external-deps' to behave properly after the conversion of the internal
toolchain backend to the package infrastructure.

To do so, the idea of this patch is to:

 (1) Create a 'toolchain' virtual package, which will depend on the
     particular toolchain backend depending on the configuration.

 (2) Turn the toolchain backends into normal packages. In this patch
     set, only the internal and external backends are converted, the
     Crosstool-NG backend is removed. If we feel it's too early or not
     desirable to remove the Crosstool-NG backend, it can be converted
     to the package infrastructure as well.

 (3) Rely on new package infrastructure targets <pkg>-all-source and
     <pkg>-all-legal-info to properly get the complete list of sources
     (or legal informations).

Note that I am not sure that this patch set is fully bisectable. When
touching such core stuff, it's quite hard to ensure that things work
at every step of the patch series.

With an internal toolchain:

$ make external-deps
binutils-2.21.1.tar.bz2
busybox-1.21.1.tar.bz2
gcc-4.7.3.tar.bz2
gmp-5.1.2.tar.bz2
linux-3.11.tar.xz
mpc-1.0.1.tar.gz
mpfr-3.1.2.tar.bz2
uClibc-0.9.33.2.tar.xz
$ make legal-info
[...]
$ cat output/legal-info/manifest.csv
"PACKAGE","VERSION","LICENSE","LICENSE FILES","SOURCE ARCHIVE"
"buildroot","2013.11-git-00096-g7756e14","GPLv2+","COPYING","not saved"
"busybox","1.21.1","GPLv2","LICENSE","busybox-1.21.1.tar.bz2"
"binutils","2.21.1","GPLv3+, libiberty LGPLv2.1+","COPYING3 COPYING.LIB","binutils-2.21.1.tar.bz2"
"gmp","5.1.2","LGPLv3+","COPYING.LIB","gmp-5.1.2.tar.bz2"
"mpfr","3.1.2","LGPLv3+","COPYING.LESSER","mpfr-3.1.2.tar.bz2"
"mpc","1.0.1","LGPLv3+","COPYING.LESSER","mpc-1.0.1.tar.gz"
"gcc-initial","4.7.3","unknown","not saved","gcc-4.7.3.tar.bz2"
"linux-headers","3.11","unknown","not saved","linux-3.11.tar.xz"
"uclibc","0.9.33.2","unknown","not saved","uClibc-0.9.33.2.tar.xz"
"gcc-final","4.7.3","unknown","not saved","gcc-4.7.3.tar.bz2"

This patch set is sent as an RFC for now, since it really needs some
testing from various people. The dependencies of this core stuff are
pretty tricky to get right, it's pretty likely that I have overlooked
something.

In the long term, I'm thinking of:

 (1) Making 'toolchain' a dependency of all target packages, because
     it's really what it is.

 (2) Maybe create a 'host-toolchain' package which would encapsulate
     the logic to ensure that the host toolchain is ready to be used
     by Buildroot, especially the fact of building ccache if
     needed. All host packages woudl depend on host-toolchain, and
     some target packages could also depend on it (for example the
     busybox-menuconfig target could depend on host-toolchain to
     ensure that ccache is built before the menuconfig interface of
     Busybox gets built).

This of course remains to be discussed and implemented. I do not
intend to implement this until this series (or the evolutions of it)
are merged.

Best regards,

Thomas

Thomas Petazzoni (11):
  Makefile: make $(BUILD_DIR)/.root rule idempotent
  toolchain-crosstool-ng: remove support
  toolchain-external: make ext-tool.mk includable in all cases
  toolchain: move helpers.mk into toolchain-external/
  toolchain: introduce a virtual package
  toolchain-buildroot: convert to the package infrastructure
  toolchain: intermediate .mk files no longer needed
  package: package-based implementation of source, external-deps and
    legal-info
  package: add a <pkg>_SOURCE_ADDONS variable
  toolchain-external: convert to the package infrastructure
  dependencies: remove useless targets

 Makefile                                           |  61 +--
 package/pkg-generic.mk                             |   5 +
 support/dependencies/dependencies.mk               |   8 -
 toolchain/Config.in                                |  13 -
 toolchain/toolchain-buildroot.mk                   |   9 -
 .../toolchain-buildroot/toolchain-buildroot.mk     |  17 +
 toolchain/toolchain-common.in                      |   4 -
 toolchain/toolchain-crosstool-ng.mk                |   5 -
 toolchain/toolchain-crosstool-ng/Config.in         | 133 ------
 .../crosstool-ng.config-eglibc                     | 502 ---------------------
 .../crosstool-ng.config-glibc                      | 491 --------------------
 .../crosstool-ng.config-uClibc                     | 473 -------------------
 toolchain/toolchain-crosstool-ng/crosstool-ng.mk   | 396 ----------------
 toolchain/toolchain-external.mk                    |   4 -
 toolchain/{ => toolchain-external}/helpers.mk      |   4 +-
 .../{ext-tool.mk => toolchain-external.mk}         | 155 +++----
 toolchain/toolchain/toolchain.mk                   |  18 +
 17 files changed, 124 insertions(+), 2174 deletions(-)
 delete mode 100644 toolchain/toolchain-buildroot.mk
 create mode 100644 toolchain/toolchain-buildroot/toolchain-buildroot.mk
 delete mode 100644 toolchain/toolchain-crosstool-ng.mk
 delete mode 100644 toolchain/toolchain-crosstool-ng/Config.in
 delete mode 100644 toolchain/toolchain-crosstool-ng/crosstool-ng.config-eglibc
 delete mode 100644 toolchain/toolchain-crosstool-ng/crosstool-ng.config-glibc
 delete mode 100644 toolchain/toolchain-crosstool-ng/crosstool-ng.config-uClibc
 delete mode 100644 toolchain/toolchain-crosstool-ng/crosstool-ng.mk
 delete mode 100644 toolchain/toolchain-external.mk
 rename toolchain/{ => toolchain-external}/helpers.mk (99%)
 rename toolchain/toolchain-external/{ext-tool.mk => toolchain-external.mk} (86%)
 create mode 100644 toolchain/toolchain/toolchain.mk

-- 
1.8.1.2

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 01/11] Makefile: make $(BUILD_DIR)/.root rule idempotent
  2013-09-05 21:27 [Buildroot] [RFCv1 00/11] Convert toolchain backends to packages to fix source/external-deps/legal-info Thomas Petazzoni
@ 2013-09-05 21:27 ` Thomas Petazzoni
  2013-09-08 12:06   ` Thomas De Schampheleire
                     ` (3 more replies)
  2013-09-05 21:27 ` [Buildroot] [RFCv1 02/11] toolchain-crosstool-ng: remove support Thomas Petazzoni
                   ` (11 subsequent siblings)
  12 siblings, 4 replies; 49+ messages in thread
From: Thomas Petazzoni @ 2013-09-05 21:27 UTC (permalink / raw)
  To: buildroot

The $(BUILD_DIR)/.root rule is executed as part of the 'dirs'
target. The 'dirs' target is re-executed at every execution of 'make
external-deps', and make external-deps explicitly tells make to ignore
targets that have already been made (through the -B option). This
means that the $(BUILD_DIR)/.root rule has to be idempotant, which was
not the case this the introduction of the lib32/lib64 symbolic
link.

Running 'make external-deps' three times in a row was sufficient to
trigger an error due to symbolic links being incorrectly created. This
patch fixes that.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
This should probably be taken for 2013.08.1 as a fix of 'make
external-deps'.
---
 Makefile | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)

diff --git a/Makefile b/Makefile
index 09faeba..93fc6ea 100644
--- a/Makefile
+++ b/Makefile
@@ -447,9 +447,13 @@ $(BUILD_DIR)/.root:
 		--exclude .hg --exclude=CVS --exclude '*~' \
 		$(TARGET_SKELETON)/ $(TARGET_DIR)/
 	cp support/misc/target-dir-warning.txt $(TARGET_DIR_WARNING_FILE)
-	@ln -s lib $(TARGET_DIR)/$(LIB_SYMLINK)
-	@mkdir -p $(TARGET_DIR)/usr
-	@ln -s lib $(TARGET_DIR)/usr/$(LIB_SYMLINK)
+	$(Q)if [ ! -L $(TARGET_DIR)/$(LIB_SYMLINK) ]; then \
+		ln -s lib $(TARGET_DIR)/$(LIB_SYMLINK) ; \
+	fi
+	$(Q)mkdir -p $(TARGET_DIR)/usr
+	$(Q)if [ ! -L $(TARGET_DIR)/usr/$(LIB_SYMLINK) ]; then \
+		ln -s lib $(TARGET_DIR)/usr/$(LIB_SYMLINK) ; \
+	fi
 	touch $@
 
 $(TARGET_DIR): $(BUILD_DIR)/.root
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 02/11] toolchain-crosstool-ng: remove support
  2013-09-05 21:27 [Buildroot] [RFCv1 00/11] Convert toolchain backends to packages to fix source/external-deps/legal-info Thomas Petazzoni
  2013-09-05 21:27 ` [Buildroot] [RFCv1 01/11] Makefile: make $(BUILD_DIR)/.root rule idempotent Thomas Petazzoni
@ 2013-09-05 21:27 ` Thomas Petazzoni
  2013-09-06  9:35   ` Yann E. MORIN
                     ` (3 more replies)
  2013-09-05 21:27 ` [Buildroot] [RFCv1 03/11] toolchain-external: make ext-tool.mk includable in all cases Thomas Petazzoni
                   ` (10 subsequent siblings)
  12 siblings, 4 replies; 49+ messages in thread
From: Thomas Petazzoni @ 2013-09-05 21:27 UTC (permalink / raw)
  To: buildroot

In order to avoid the work of converting the toolchain-crosstool-ng
logic to the package infrastructure, we remove it from Buildroot,
since it has been deprecated since quite some time.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
If we consider it too early to get rid of the Crosstool-NG backend
entirely, then it can of course be converted to the package
infrastructure, with quite a bit of effort (which we wanted to avoid
for now).
---
 Makefile                                           |   7 -
 toolchain/Config.in                                |  13 -
 toolchain/helpers.mk                               |   4 +-
 toolchain/toolchain-common.in                      |   4 -
 toolchain/toolchain-crosstool-ng.mk                |   5 -
 toolchain/toolchain-crosstool-ng/Config.in         | 133 ------
 .../crosstool-ng.config-eglibc                     | 502 ---------------------
 .../crosstool-ng.config-glibc                      | 491 --------------------
 .../crosstool-ng.config-uClibc                     | 473 -------------------
 toolchain/toolchain-crosstool-ng/crosstool-ng.mk   | 396 ----------------
 10 files changed, 1 insertion(+), 2027 deletions(-)
 delete mode 100644 toolchain/toolchain-crosstool-ng.mk
 delete mode 100644 toolchain/toolchain-crosstool-ng/Config.in
 delete mode 100644 toolchain/toolchain-crosstool-ng/crosstool-ng.config-eglibc
 delete mode 100644 toolchain/toolchain-crosstool-ng/crosstool-ng.config-glibc
 delete mode 100644 toolchain/toolchain-crosstool-ng/crosstool-ng.config-uClibc
 delete mode 100644 toolchain/toolchain-crosstool-ng/crosstool-ng.mk

diff --git a/Makefile b/Makefile
index 93fc6ea..f64a101 100644
--- a/Makefile
+++ b/Makefile
@@ -226,8 +226,6 @@ ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
 BASE_TARGETS += toolchain-buildroot
 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
 BASE_TARGETS += toolchain-external
-else ifeq ($(BR2_TOOLCHAIN_CTNG),y)
-BASE_TARGETS += toolchain-crosstool-ng
 endif
 
 TARGETS:=
@@ -322,8 +320,6 @@ ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
 include toolchain/toolchain-buildroot.mk
 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
 include toolchain/toolchain-external.mk
-else ifeq ($(BR2_TOOLCHAIN_CTNG),y)
-include toolchain/toolchain-crosstool-ng.mk
 endif
 
 # Include the package override file if one has been provided in the
@@ -805,9 +801,6 @@ endif
 ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
 	@echo '  uclibc-menuconfig      - Run uClibc menuconfig'
 endif
-ifeq ($(BR2_TOOLCHAIN_CTNG),y)
-	@echo '  ctng-menuconfig        - Run crosstool-NG menuconfig'
-endif
 ifeq ($(BR2_TARGET_BAREBOX),y)
 	@echo '  barebox-menuconfig     - Run barebox menuconfig'
 	@echo '  barebox-savedefconfig  - Run barebox savedefconfig'
diff --git a/toolchain/Config.in b/toolchain/Config.in
index 9d1e68f..4bb147f 100644
--- a/toolchain/Config.in
+++ b/toolchain/Config.in
@@ -35,23 +35,10 @@ config BR2_TOOLCHAIN_EXTERNAL
 	  toolchain. Buildroot can either download automatically a
 	  toolchain, or use an already installed toolchain.
 
-config BR2_TOOLCHAIN_CTNG
-	bool "Crosstool-NG toolchain"
-	depends on BR2_DEPRECATED
-	depends on !BR2_microblaze && !BR2_aarch64 && !BR2_xtensa && \
-		   !BR2_arc && !BR2_nios2
-	select BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
-	help
-	  Say 'y' if you want to generate the toolchain with crosstool-NG
-	  (http://crosstool-ng.org).
-
-	  This is considered experimental, and you can expect some breakage.
-
 endchoice
 
 source "toolchain/toolchain-buildroot/Config.in"
 source "toolchain/toolchain-external/Config.in"
-source "toolchain/toolchain-crosstool-ng/Config.in"
 source "toolchain/toolchain-common.in"
 source "toolchain/toolchain-buildroot/Config.in.2"
 
diff --git a/toolchain/helpers.mk b/toolchain/helpers.mk
index 44b6018..e6ecc02 100644
--- a/toolchain/helpers.mk
+++ b/toolchain/helpers.mk
@@ -1,7 +1,5 @@
 # This Makefile fragment declares helper functions, usefull to handle
-# non- buildroot-built toolchains, eg. purely external toolchains or
-# toolchains (internally) built using crosstool-NG.
-
+# non- buildroot-built toolchains, eg. purely external toolchains.
 #
 # Copy a toolchain library and its symbolic links from the sysroot
 # directory to the target directory. Also optionaly strips the
diff --git a/toolchain/toolchain-common.in b/toolchain/toolchain-common.in
index dc3bd2a..bff11f5 100644
--- a/toolchain/toolchain-common.in
+++ b/toolchain/toolchain-common.in
@@ -56,10 +56,6 @@ config BR2_ENABLE_LOCALE_WHITELIST
 config BR2_GENERATE_LOCALE
 	string "Generate locale data"
 	default ""
-	# Pre-built uClibc external toolchains and uClibc toolchains
-	# built by the Crosstool-NG backend cannot be supported,
-	# because the list of locales to support must be defined at
-	# build time.
 	depends on \
 		BR2_TOOLCHAIN_BUILDROOT      || \
 		BR2_TOOLCHAIN_USES_GLIBC
diff --git a/toolchain/toolchain-crosstool-ng.mk b/toolchain/toolchain-crosstool-ng.mk
deleted file mode 100644
index 9e666a0..0000000
--- a/toolchain/toolchain-crosstool-ng.mk
+++ /dev/null
@@ -1,5 +0,0 @@
-# Required includes for the external toolchain backend
-
-# Explicit ordering:
-include toolchain/helpers.mk
-include toolchain/toolchain-crosstool-ng/crosstool-ng.mk
diff --git a/toolchain/toolchain-crosstool-ng/Config.in b/toolchain/toolchain-crosstool-ng/Config.in
deleted file mode 100644
index 7cfd8c2..0000000
--- a/toolchain/toolchain-crosstool-ng/Config.in
+++ /dev/null
@@ -1,133 +0,0 @@
-# Selection options for crosstool-NG
-
-if BR2_TOOLCHAIN_CTNG
-
-choice
- 	prompt "Crosstool-NG C library"
-
-config BR2_TOOLCHAIN_CTNG_uClibc
-	bool "uClibc"
-	select BR2_TOOLCHAIN_USES_UCLIBC
-
-# Although eglibc can be configured to opt-out some features,
-# let's not deal with that for the time being, it's complex...
-config BR2_TOOLCHAIN_CTNG_eglibc
-	bool "eglibc"
-	# Our default ct-ng configuration uses eglibc 2.12, which has
-	# native RPC support
-	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
-	select BR2_TOOLCHAIN_USES_GLIBC
-
-config BR2_TOOLCHAIN_CTNG_glibc
-	bool "glibc"
-	# Our default ct-ng configuration uses glibc 2.14.1, which
-	# does not have native RPC support
-	select BR2_TOOLCHAIN_USES_GLIBC
-
-endchoice # C library
-
-config BR2_TOOLCHAIN_CTNG_LIBC
-	string
-	default "uClibc"	if BR2_TOOLCHAIN_CTNG_uClibc
-	default "eglibc"	if BR2_TOOLCHAIN_CTNG_eglibc
-	default "glibc"		if BR2_TOOLCHAIN_CTNG_glibc
-
-config BR2_TOOLCHAIN_CTNG_CONFIG
-	string "crosstool-NG configuration file to use"
-	default "toolchain/toolchain-crosstool-ng/crosstool-ng.config-uClibc" if BR2_TOOLCHAIN_CTNG_uClibc
-	default "toolchain/toolchain-crosstool-ng/crosstool-ng.config-eglibc" if BR2_TOOLCHAIN_CTNG_eglibc
-	default "toolchain/toolchain-crosstool-ng/crosstool-ng.config-glibc"  if BR2_TOOLCHAIN_CTNG_glibc
-	help
-	  Enter here the path to the crosstool-NG .config file to use.
-	  
-	  Generally, the default crosstool-NG configuration files bundled with
-	  Buildroot work fine in most situations. Use 'make ctng-menuconfig'
-	  from the command line, for expert customization of your toolchain.
-	  
-	  If unsure, keep the default value.
-
-if BR2_TOOLCHAIN_CTNG_uClibc
-
-comment "Toolchain Options"
-
-config BR2_TOOLCHAIN_CTNG_uClibc_LARGEFILE
-	bool "Enable large file (files > 2 GB) support"
-	select BR2_LARGEFILE
-	help
-	  Enable this option if you want your toolchain to support
-	  files bigger than 2 GB.
-
-config BR2_TOOLCHAIN_CTNG_uClibc_INET_IPV6
-	bool "Enable IPv6 support"
-	select BR2_INET_IPV6
-	help
-	  Enable this option if you want your toolchain to support
-	  IPv6.
-
-config BR2_TOOLCHAIN_CTNG_uClibc_INET_RPC
-	bool "Enable RPC support"
-	select BR2_TOOLCHAIN_HAS_NATIVE_RPC
-	help
-	  Enable this option if you want your toolchain to support
-	  RPC (needed for NFS, for example).
-
-config BR2_TOOLCHAIN_CTNG_uClibc_WCHAR
-	bool "Enable WCHAR support"
-	select BR2_USE_WCHAR
-	help
-	  Enable this option if you want your toolchain to support
-	  wide characters (i.e characters longer than 8 bits, needed
-	  for locale support).
-
-config BR2_TOOLCHAIN_CTNG_uClibc_LOCALE
-	bool "Enable toolchain locale/i18n support"
-	select BR2_TOOLCHAIN_CTNG_uClibc_WCHAR
-	select BR2_ENABLE_LOCALE
-	help
-	  Enable this option if you want your toolchain to support
-	  localization and internationalization.
-
-endif # BR2_TOOLCHAIN_CTNG_uClibc
-
-config BR2_TOOLCHAIN_CTNG_CXX
-	bool "Enable C++ support"
-	select BR2_INSTALL_LIBSTDCPP
-	help
-	  Enable this option if you want your toolchain to support the
-	  C++ language and you want C++ libraries to be installed on
-	  your target system.
-
-choice
-	prompt "Thread library implementation"
-	default BR2_TOOLCHAIN_CTNG_THREADS_NPTL
-	help
-	  Enable thread support and select thread implementation. With
-	  glibc, thread support is mandatory but several
-	  implementations are available. With uClibc, thread support
-	  is optional, and when enabled, several implementations are
-	  available. However, not all thread variants work with all
-	  versions of uClibc for all architectures, the "linuxthreads
-	  (stable/old)" may be a working fallback.
-
-	config BR2_TOOLCHAIN_CTNG_THREADS_NONE
-		bool "none"
-		depends on BR2_TOOLCHAIN_CTNG_uClibc
-
-	config BR2_TOOLCHAIN_CTNG_THREADS_PTHREADS
-		bool "linuxthreads"
-		select BR2_TOOLCHAIN_HAS_THREADS
-		select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
-
-	config BR2_TOOLCHAIN_CTNG_THREADS_PTHREADS_OLD
-		bool "linuxthreads (stable/old)"
-		select BR2_TOOLCHAIN_HAS_THREADS
-		select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
-		depends on BR2_TOOLCHAIN_CTNG_uClibc
-
-	config BR2_TOOLCHAIN_CTNG_THREADS_NPTL
-		bool "Native POSIX Threading (NPTL)"
-		select BR2_TOOLCHAIN_HAS_THREADS
-		select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
-endchoice
-
-endif # BR2_TOOLCHAIN_CTNG
diff --git a/toolchain/toolchain-crosstool-ng/crosstool-ng.config-eglibc b/toolchain/toolchain-crosstool-ng/crosstool-ng.config-eglibc
deleted file mode 100644
index 08f036c..0000000
--- a/toolchain/toolchain-crosstool-ng/crosstool-ng.config-eglibc
+++ /dev/null
@@ -1,502 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# crosstool-NG 1.17.0 Configuration
-# Sat Dec  8 12:57:07 2012
-#
-CT_CONFIGURE_has_xz=y
-CT_CONFIGURE_has_svn=y
-CT_MODULES=y
-
-#
-# Paths and misc options
-#
-
-#
-# crosstool-NG behavior
-#
-# CT_OBSOLETE is not set
-# CT_EXPERIMENTAL is not set
-# CT_DEBUG_CT is not set
-
-#
-# Paths
-#
-CT_LOCAL_TARBALLS_DIR=""
-CT_WORK_DIR="${CT_TOP_DIR}/.build"
-CT_PREFIX_DIR=""
-CT_INSTALL_DIR="${CT_PREFIX_DIR}"
-CT_RM_RF_PREFIX_DIR=y
-CT_REMOVE_DOCS=y
-# CT_INSTALL_DIR_RO is not set
-# CT_STRIP_ALL_TOOLCHAIN_EXECUTABLES is not set
-
-#
-# Downloading
-#
-# CT_FORBID_DOWNLOAD is not set
-# CT_FORCE_DOWNLOAD is not set
-CT_CONNECT_TIMEOUT=10
-# CT_ONLY_DOWNLOAD is not set
-# CT_USE_MIRROR is not set
-
-#
-# Extracting
-#
-# CT_FORCE_EXTRACT is not set
-CT_OVERIDE_CONFIG_GUESS_SUB=y
-# CT_ONLY_EXTRACT is not set
-CT_PATCH_BUNDLED=y
-# CT_PATCH_LOCAL is not set
-# CT_PATCH_BUNDLED_LOCAL is not set
-# CT_PATCH_LOCAL_BUNDLED is not set
-# CT_PATCH_BUNDLED_FALLBACK_LOCAL is not set
-# CT_PATCH_LOCAL_FALLBACK_BUNDLED is not set
-# CT_PATCH_NONE is not set
-CT_PATCH_ORDER="bundled"
-
-#
-# Build behavior
-#
-CT_PARALLEL_JOBS=0
-CT_LOAD=0
-CT_USE_PIPES=y
-CT_EXTRA_FLAGS_FOR_HOST=""
-# CT_CONFIG_SHELL_SH is not set
-# CT_CONFIG_SHELL_ASH is not set
-CT_CONFIG_SHELL_BASH=y
-# CT_CONFIG_SHELL_CUSTOM is not set
-CT_CONFIG_SHELL="${bash}"
-
-#
-# Logging
-#
-# CT_LOG_ERROR is not set
-# CT_LOG_WARN is not set
-# CT_LOG_INFO is not set
-# CT_LOG_EXTRA is not set
-CT_LOG_ALL=y
-# CT_LOG_DEBUG is not set
-CT_LOG_LEVEL_MAX="ALL"
-# CT_LOG_SEE_TOOLS_WARN is not set
-CT_LOG_TO_FILE=y
-CT_LOG_FILE_COMPRESS=y
-
-#
-# Target options
-#
-CT_ARCH="arm"
-CT_ARCH_SUPPORTS_BOTH_MMU=y
-CT_ARCH_SUPPORTS_BOTH_ENDIAN=y
-CT_ARCH_SUPPORTS_32=y
-CT_ARCH_SUPPORTS_WITH_ARCH=y
-CT_ARCH_SUPPORTS_WITH_CPU=y
-CT_ARCH_SUPPORTS_WITH_TUNE=y
-CT_ARCH_SUPPORTS_WITH_FLOAT=y
-CT_ARCH_SUPPORTS_WITH_FPU=y
-CT_ARCH_SUPPORTS_SOFTFP=y
-CT_ARCH_DEFAULT_HAS_MMU=y
-CT_ARCH_DEFAULT_LE=y
-CT_ARCH_DEFAULT_32=y
-CT_ARCH_ARCH=""
-CT_ARCH_CPU=""
-CT_ARCH_TUNE=""
-CT_ARCH_FPU=""
-# CT_ARCH_BE is not set
-CT_ARCH_LE=y
-CT_ARCH_32=y
-CT_ARCH_BITNESS=32
-# CT_ARCH_FLOAT_HW is not set
-CT_ARCH_FLOAT_SW=y
-CT_TARGET_CFLAGS=""
-CT_TARGET_LDFLAGS=""
-# CT_ARCH_alpha is not set
-CT_ARCH_arm=y
-# CT_ARCH_avr32 is not set
-# CT_ARCH_blackfin is not set
-# CT_ARCH_mips is not set
-# CT_ARCH_powerpc is not set
-# CT_ARCH_sh is not set
-# CT_ARCH_sparc is not set
-# CT_ARCH_x86 is not set
-CT_ARCH_alpha_AVAILABLE=y
-CT_ARCH_arm_AVAILABLE=y
-CT_ARCH_avr32_AVAILABLE=y
-CT_ARCH_blackfin_AVAILABLE=y
-CT_ARCH_m68k_AVAILABLE=y
-CT_ARCH_microblaze_AVAILABLE=y
-CT_ARCH_mips_AVAILABLE=y
-CT_ARCH_powerpc_AVAILABLE=y
-CT_ARCH_s390_AVAILABLE=y
-CT_ARCH_sh_AVAILABLE=y
-CT_ARCH_sparc_AVAILABLE=y
-CT_ARCH_x86_AVAILABLE=y
-
-#
-# Generic target options
-#
-CT_ARCH_USE_MMU=y
-CT_ARCH_ENDIAN="little"
-
-#
-# Target optimisations
-#
-# CT_ARCH_FLOAT_SOFTFP is not set
-CT_ARCH_FLOAT="soft"
-
-#
-# arm other options
-#
-CT_ARCH_ARM_MODE="arm"
-CT_ARCH_ARM_MODE_ARM=y
-CT_ARCH_ARM_EABI=y
-
-#
-# Toolchain options
-#
-
-#
-# General toolchain options
-#
-CT_FORCE_SYSROOT=y
-CT_USE_SYSROOT=y
-CT_SYSROOT_NAME="sysroot"
-CT_SYSROOT_DIR_PREFIX=""
-CT_WANTS_STATIC_LINK=y
-CT_TOOLCHAIN_PKGVERSION=""
-CT_TOOLCHAIN_BUGURL=""
-
-#
-# Tuple completion and aliasing
-#
-CT_TARGET_VENDOR="unknown"
-CT_TARGET_ALIAS_SED_EXPR=""
-CT_TARGET_ALIAS=""
-
-#
-# Toolchain type
-#
-CT_CROSS=y
-CT_TOOLCHAIN_TYPE="cross"
-
-#
-# Build system
-#
-CT_BUILD=""
-CT_BUILD_PREFIX=""
-CT_BUILD_SUFFIX=""
-
-#
-# Misc options
-#
-# CT_TOOLCHAIN_ENABLE_NLS is not set
-
-#
-# Operating System
-#
-CT_KERNEL_SUPPORTS_SHARED_LIBS=y
-CT_KERNEL="linux"
-CT_KERNEL_VERSION="3.6.3"
-# CT_KERNEL_bare_metal is not set
-CT_KERNEL_linux=y
-CT_KERNEL_bare_metal_AVAILABLE=y
-CT_KERNEL_linux_AVAILABLE=y
-CT_KERNEL_V_3_6_3=y
-# CT_KERNEL_V_3_6_2 is not set
-# CT_KERNEL_V_3_6_1 is not set
-# CT_KERNEL_V_3_6 is not set
-# CT_KERNEL_V_3_5_7 is not set
-# CT_KERNEL_V_3_4_15 is not set
-# CT_KERNEL_V_3_3_8 is not set
-# CT_KERNEL_V_3_2_32 is not set
-# CT_KERNEL_V_3_1_10 is not set
-# CT_KERNEL_V_3_0_48 is not set
-# CT_KERNEL_V_2_6_39_4 is not set
-# CT_KERNEL_V_2_6_38_8 is not set
-# CT_KERNEL_V_2_6_37_6 is not set
-# CT_KERNEL_V_2_6_36_4 is not set
-# CT_KERNEL_V_2_6_33_20 is not set
-# CT_KERNEL_V_2_6_32_60 is not set
-# CT_KERNEL_V_2_6_31_14 is not set
-# CT_KERNEL_V_2_6_27_62 is not set
-# CT_KERNEL_LINUX_CUSTOM is not set
-CT_KERNEL_mingw32_AVAILABLE=y
-
-#
-# Common kernel options
-#
-CT_SHARED_LIBS=y
-
-#
-# linux other options
-#
-CT_KERNEL_LINUX_VERBOSITY_0=y
-# CT_KERNEL_LINUX_VERBOSITY_1 is not set
-# CT_KERNEL_LINUX_VERBOSITY_2 is not set
-CT_KERNEL_LINUX_VERBOSE_LEVEL=0
-CT_KERNEL_LINUX_INSTALL_CHECK=y
-
-#
-# Binary utilities
-#
-CT_ARCH_BINFMT_ELF=y
-
-#
-# GNU binutils
-#
-# CT_BINUTILS_V_2_21_1a is not set
-CT_BINUTILS_V_2_20_1a=y
-# CT_BINUTILS_V_2_19_1a is not set
-# CT_BINUTILS_V_2_18a is not set
-CT_BINUTILS_VERSION="2.20.1a"
-CT_BINUTILS_2_20_or_later=y
-CT_BINUTILS_2_19_or_later=y
-CT_BINUTILS_2_18_or_later=y
-CT_BINUTILS_HAS_HASH_STYLE=y
-CT_BINUTILS_GOLD_SUPPORTS_ARCH=y
-CT_BINUTILS_HAS_PKGVERSION_BUGURL=y
-CT_BINUTILS_FORCE_LD_BFD=y
-CT_BINUTILS_LINKER_LD=y
-CT_BINUTILS_LINKERS_LIST="ld"
-CT_BINUTILS_LINKER_DEFAULT="bfd"
-CT_BINUTILS_EXTRA_CONFIG_ARRAY=""
-# CT_BINUTILS_FOR_TARGET is not set
-
-#
-# C compiler
-#
-CT_CC="gcc"
-CT_CC_VERSION="4.6.3"
-CT_CC_gcc=y
-# CT_CC_V_4_7_2 is not set
-CT_CC_V_4_6_3=y
-# CT_CC_V_4_6_2 is not set
-# CT_CC_V_4_6_1 is not set
-# CT_CC_V_4_6_0 is not set
-# CT_CC_V_4_5_3 is not set
-# CT_CC_V_4_5_2 is not set
-# CT_CC_V_4_5_1 is not set
-# CT_CC_V_4_5_0 is not set
-# CT_CC_V_4_4_7 is not set
-# CT_CC_V_4_4_6 is not set
-# CT_CC_V_4_4_5 is not set
-# CT_CC_V_4_4_4 is not set
-# CT_CC_V_4_4_3 is not set
-# CT_CC_V_4_4_2 is not set
-# CT_CC_V_4_4_1 is not set
-# CT_CC_V_4_4_0 is not set
-# CT_CC_V_4_3_6 is not set
-# CT_CC_V_4_3_5 is not set
-# CT_CC_V_4_3_4 is not set
-# CT_CC_V_4_3_3 is not set
-# CT_CC_V_4_3_2 is not set
-# CT_CC_V_4_3_1 is not set
-# CT_CC_V_4_2_4 is not set
-# CT_CC_V_4_2_2 is not set
-CT_CC_GCC_4_2_or_later=y
-CT_CC_GCC_4_3_or_later=y
-CT_CC_GCC_4_4_or_later=y
-CT_CC_GCC_4_5_or_later=y
-CT_CC_GCC_4_6=y
-CT_CC_GCC_4_6_or_later=y
-CT_CC_GCC_HAS_GRAPHITE=y
-CT_CC_GCC_HAS_LTO=y
-CT_CC_GCC_HAS_PKGVERSION_BUGURL=y
-CT_CC_GCC_HAS_BUILD_ID=y
-CT_CC_GCC_USE_GMP_MPFR=y
-CT_CC_GCC_USE_PPL_CLOOG=y
-CT_CC_GCC_USE_MPC=y
-CT_CC_GCC_HAS_LIBQUADMATH=y
-# CT_CC_LANG_FORTRAN is not set
-CT_CC_SUPPORT_CXX=y
-CT_CC_SUPPORT_FORTRAN=y
-CT_CC_SUPPORT_JAVA=y
-CT_CC_SUPPORT_ADA=y
-CT_CC_SUPPORT_OBJC=y
-CT_CC_SUPPORT_OBJCXX=y
-
-#
-# Additional supported languages:
-#
-CT_CC_LANG_CXX=y
-# CT_CC_LANG_JAVA is not set
-
-#
-# gcc other options
-#
-CT_CC_ENABLE_CXX_FLAGS=""
-CT_CC_CORE_EXTRA_CONFIG_ARRAY="--disable-decimal-float"
-CT_CC_EXTRA_CONFIG_ARRAY="--disable-decimal-float"
-CT_CC_STATIC_LIBSTDCXX=y
-
-#
-# Optimisation features
-#
-CT_CC_GCC_USE_GRAPHITE=y
-CT_CC_GCC_USE_LTO=y
-
-#
-# Settings for libraries running on target
-#
-CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y
-# CT_CC_GCC_LIBMUDFLAP is not set
-# CT_CC_GCC_LIBGOMP is not set
-# CT_CC_GCC_LIBSSP is not set
-# CT_CC_GCC_LIBQUADMATH is not set
-
-#
-# Misc. obscure options.
-#
-CT_CC_CXA_ATEXIT=y
-# CT_CC_GCC_DISABLE_PCH is not set
-CT_CC_GCC_SJLJ_EXCEPTIONS=m
-CT_CC_GCC_LDBL_128=m
-# CT_CC_GCC_BUILD_ID is not set
-
-#
-# C-library
-#
-CT_LIBC="eglibc"
-CT_LIBC_VERSION="2_12"
-CT_LIBC_eglibc=y
-# CT_LIBC_glibc is not set
-# CT_LIBC_uClibc is not set
-CT_LIBC_eglibc_AVAILABLE=y
-# CT_LIBC_EGLIBC_V_2_16 is not set
-# CT_LIBC_EGLIBC_V_2_15 is not set
-# CT_LIBC_EGLIBC_V_2_14 is not set
-# CT_LIBC_EGLIBC_V_2_13 is not set
-CT_LIBC_EGLIBC_V_2_12=y
-# CT_LIBC_EGLIBC_V_2_11 is not set
-# CT_LIBC_EGLIBC_V_2_10 is not set
-# CT_LIBC_EGLIBC_V_2_9 is not set
-# CT_LIBC_EGLIBC_V_TRUNK is not set
-CT_LIBC_EGLIBC_2_12_or_later=y
-CT_LIBC_EGLIBC_2_11_or_later=y
-CT_LIBC_EGLIBC_2_10_or_later=y
-CT_LIBC_EGLIBC_2_9_or_later=y
-CT_LIBC_EGLIBC_HAS_PKGVERSION_BUGURL=y
-CT_EGLIBC_REVISION="HEAD"
-# CT_EGLIBC_HTTP is not set
-# CT_EGLIBC_CHECKOUT is not set
-CT_EGLIBC_OPT_SIZE=y
-# CT_EGLIBC_CUSTOM_CONFIG is not set
-CT_LIBC_glibc_AVAILABLE=y
-CT_LIBC_mingw_AVAILABLE=y
-CT_LIBC_newlib_AVAILABLE=y
-CT_LIBC_none_AVAILABLE=y
-CT_LIBC_uClibc_AVAILABLE=y
-CT_LIBC_SUPPORT_THREADS_ANY=y
-CT_LIBC_SUPPORT_NPTL=y
-CT_LIBC_SUPPORT_LINUXTHREADS=y
-CT_THREADS="nptl"
-
-#
-# Common C library options
-#
-CT_THREADS_NPTL=y
-# CT_THREADS_LINUXTHREADS is not set
-CT_LIBC_XLDD=y
-
-#
-# eglibc other options
-#
-CT_LIBC_GLIBC_MAY_FORCE_PORTS=y
-CT_LIBC_glibc_familly=y
-CT_LIBC_GLIBC_EXTRA_CONFIG_ARRAY=""
-CT_LIBC_GLIBC_CONFIGPARMS=""
-CT_LIBC_GLIBC_EXTRA_CFLAGS=""
-CT_LIBC_EXTRA_CC_ARGS=""
-# CT_LIBC_DISABLE_VERSIONING is not set
-CT_LIBC_OLDEST_ABI=""
-CT_LIBC_GLIBC_FORCE_UNWIND=y
-CT_LIBC_GLIBC_USE_PORTS=y
-CT_LIBC_ADDONS_LIST=""
-
-#
-# WARNING !!!                                            
-#
-
-#
-#   For glibc >= 2.8, it can happen that the tarballs    
-#
-
-#
-#   for the addons are not available for download.       
-#
-
-#
-#   If that happens, bad luck... Try a previous version  
-#
-
-#
-#   or try again later... :-(                            
-#
-# CT_LIBC_LOCALES is not set
-# CT_LIBC_GLIBC_KERNEL_VERSION_NONE is not set
-CT_LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS=y
-# CT_LIBC_GLIBC_KERNEL_VERSION_CHOSEN is not set
-CT_LIBC_GLIBC_MIN_KERNEL="3.6.3"
-
-#
-# Debug facilities
-#
-# CT_DEBUG_dmalloc is not set
-# CT_DEBUG_duma is not set
-# CT_DEBUG_gdb is not set
-# CT_DEBUG_ltrace is not set
-# CT_DEBUG_strace is not set
-
-#
-# Companion libraries
-#
-CT_COMPLIBS_NEEDED=y
-CT_GMP_NEEDED=y
-CT_MPFR_NEEDED=y
-CT_PPL_NEEDED=y
-CT_CLOOG_NEEDED=y
-CT_MPC_NEEDED=y
-CT_COMPLIBS=y
-CT_GMP=y
-CT_MPFR=y
-CT_PPL=y
-CT_CLOOG=y
-CT_MPC=y
-# CT_GMP_V_5_0_2 is not set
-# CT_GMP_V_5_0_1 is not set
-CT_GMP_V_4_3_2=y
-# CT_GMP_V_4_3_1 is not set
-# CT_GMP_V_4_3_0 is not set
-CT_GMP_VERSION="4.3.2"
-# CT_MPFR_V_3_1_0 is not set
-# CT_MPFR_V_3_0_1 is not set
-# CT_MPFR_V_3_0_0 is not set
-CT_MPFR_V_2_4_2=y
-# CT_MPFR_V_2_4_1 is not set
-# CT_MPFR_V_2_4_0 is not set
-CT_MPFR_VERSION="2.4.2"
-CT_PPL_V_0_11_2=y
-# CT_PPL_V_0_11_1 is not set
-# CT_PPL_V_0_11 is not set
-# CT_PPL_V_0_10_2 is not set
-CT_PPL_VERSION="0.11.2"
-CT_PPL_0_11=y
-CT_PPL_NEEDS_LIBPWL=y
-CT_CLOOG_V_0_15_11=y
-# CT_CLOOG_V_0_15_10 is not set
-# CT_CLOOG_V_0_15_9 is not set
-# CT_CLOOG_V_0_15_8 is not set
-# CT_CLOOG_V_0_15_7 is not set
-# CT_CLOOG_V_0_15_6 is not set
-CT_CLOOG_VERSION="0.15.11"
-CT_CLOOG_0_15_1x=y
-CT_CLOOG_NEEDS_AUTORECONF=y
-CT_MPC_V_0_9=y
-# CT_MPC_V_0_8_2 is not set
-# CT_MPC_V_0_8_1 is not set
-# CT_MPC_V_0_7 is not set
-CT_MPC_VERSION="0.9"
-
-#
-# Companion libraries common options
-#
-# CT_COMPLIBS_CHECK is not set
diff --git a/toolchain/toolchain-crosstool-ng/crosstool-ng.config-glibc b/toolchain/toolchain-crosstool-ng/crosstool-ng.config-glibc
deleted file mode 100644
index 5b4bbba..0000000
--- a/toolchain/toolchain-crosstool-ng/crosstool-ng.config-glibc
+++ /dev/null
@@ -1,491 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# crosstool-NG 1.17.0 Configuration
-# Sat Dec  8 12:56:02 2012
-#
-CT_CONFIGURE_has_xz=y
-CT_CONFIGURE_has_svn=y
-CT_MODULES=y
-
-#
-# Paths and misc options
-#
-
-#
-# crosstool-NG behavior
-#
-# CT_OBSOLETE is not set
-# CT_EXPERIMENTAL is not set
-# CT_DEBUG_CT is not set
-
-#
-# Paths
-#
-CT_LOCAL_TARBALLS_DIR=""
-CT_WORK_DIR="${CT_TOP_DIR}/.build"
-CT_PREFIX_DIR=""
-CT_INSTALL_DIR="${CT_PREFIX_DIR}"
-CT_RM_RF_PREFIX_DIR=y
-CT_REMOVE_DOCS=y
-# CT_INSTALL_DIR_RO is not set
-# CT_STRIP_ALL_TOOLCHAIN_EXECUTABLES is not set
-
-#
-# Downloading
-#
-# CT_FORBID_DOWNLOAD is not set
-# CT_FORCE_DOWNLOAD is not set
-CT_CONNECT_TIMEOUT=10
-# CT_ONLY_DOWNLOAD is not set
-# CT_USE_MIRROR is not set
-
-#
-# Extracting
-#
-# CT_FORCE_EXTRACT is not set
-CT_OVERIDE_CONFIG_GUESS_SUB=y
-# CT_ONLY_EXTRACT is not set
-CT_PATCH_BUNDLED=y
-# CT_PATCH_LOCAL is not set
-# CT_PATCH_BUNDLED_LOCAL is not set
-# CT_PATCH_LOCAL_BUNDLED is not set
-# CT_PATCH_BUNDLED_FALLBACK_LOCAL is not set
-# CT_PATCH_LOCAL_FALLBACK_BUNDLED is not set
-# CT_PATCH_NONE is not set
-CT_PATCH_ORDER="bundled"
-
-#
-# Build behavior
-#
-CT_PARALLEL_JOBS=0
-CT_LOAD=0
-CT_USE_PIPES=y
-CT_EXTRA_FLAGS_FOR_HOST=""
-# CT_CONFIG_SHELL_SH is not set
-# CT_CONFIG_SHELL_ASH is not set
-CT_CONFIG_SHELL_BASH=y
-# CT_CONFIG_SHELL_CUSTOM is not set
-CT_CONFIG_SHELL="${bash}"
-
-#
-# Logging
-#
-# CT_LOG_ERROR is not set
-# CT_LOG_WARN is not set
-# CT_LOG_INFO is not set
-# CT_LOG_EXTRA is not set
-CT_LOG_ALL=y
-# CT_LOG_DEBUG is not set
-CT_LOG_LEVEL_MAX="ALL"
-# CT_LOG_SEE_TOOLS_WARN is not set
-CT_LOG_TO_FILE=y
-CT_LOG_FILE_COMPRESS=y
-
-#
-# Target options
-#
-CT_ARCH="arm"
-CT_ARCH_SUPPORTS_BOTH_MMU=y
-CT_ARCH_SUPPORTS_BOTH_ENDIAN=y
-CT_ARCH_SUPPORTS_32=y
-CT_ARCH_SUPPORTS_WITH_ARCH=y
-CT_ARCH_SUPPORTS_WITH_CPU=y
-CT_ARCH_SUPPORTS_WITH_TUNE=y
-CT_ARCH_SUPPORTS_WITH_FLOAT=y
-CT_ARCH_SUPPORTS_WITH_FPU=y
-CT_ARCH_SUPPORTS_SOFTFP=y
-CT_ARCH_DEFAULT_HAS_MMU=y
-CT_ARCH_DEFAULT_LE=y
-CT_ARCH_DEFAULT_32=y
-CT_ARCH_ARCH=""
-CT_ARCH_CPU=""
-CT_ARCH_TUNE=""
-CT_ARCH_FPU=""
-# CT_ARCH_BE is not set
-CT_ARCH_LE=y
-CT_ARCH_32=y
-CT_ARCH_BITNESS=32
-# CT_ARCH_FLOAT_HW is not set
-CT_ARCH_FLOAT_SW=y
-CT_TARGET_CFLAGS=""
-CT_TARGET_LDFLAGS=""
-# CT_ARCH_alpha is not set
-CT_ARCH_arm=y
-# CT_ARCH_avr32 is not set
-# CT_ARCH_blackfin is not set
-# CT_ARCH_mips is not set
-# CT_ARCH_powerpc is not set
-# CT_ARCH_sh is not set
-# CT_ARCH_sparc is not set
-# CT_ARCH_x86 is not set
-CT_ARCH_alpha_AVAILABLE=y
-CT_ARCH_arm_AVAILABLE=y
-CT_ARCH_avr32_AVAILABLE=y
-CT_ARCH_blackfin_AVAILABLE=y
-CT_ARCH_m68k_AVAILABLE=y
-CT_ARCH_microblaze_AVAILABLE=y
-CT_ARCH_mips_AVAILABLE=y
-CT_ARCH_powerpc_AVAILABLE=y
-CT_ARCH_s390_AVAILABLE=y
-CT_ARCH_sh_AVAILABLE=y
-CT_ARCH_sparc_AVAILABLE=y
-CT_ARCH_x86_AVAILABLE=y
-
-#
-# Generic target options
-#
-CT_ARCH_USE_MMU=y
-CT_ARCH_ENDIAN="little"
-
-#
-# Target optimisations
-#
-# CT_ARCH_FLOAT_SOFTFP is not set
-CT_ARCH_FLOAT="soft"
-
-#
-# arm other options
-#
-CT_ARCH_ARM_MODE="arm"
-CT_ARCH_ARM_MODE_ARM=y
-CT_ARCH_ARM_EABI=y
-
-#
-# Toolchain options
-#
-
-#
-# General toolchain options
-#
-CT_FORCE_SYSROOT=y
-CT_USE_SYSROOT=y
-CT_SYSROOT_NAME="sysroot"
-CT_SYSROOT_DIR_PREFIX=""
-CT_WANTS_STATIC_LINK=y
-CT_TOOLCHAIN_PKGVERSION=""
-CT_TOOLCHAIN_BUGURL=""
-
-#
-# Tuple completion and aliasing
-#
-CT_TARGET_VENDOR="unknown"
-CT_TARGET_ALIAS_SED_EXPR=""
-CT_TARGET_ALIAS=""
-
-#
-# Toolchain type
-#
-CT_CROSS=y
-CT_TOOLCHAIN_TYPE="cross"
-
-#
-# Build system
-#
-CT_BUILD=""
-CT_BUILD_PREFIX=""
-CT_BUILD_SUFFIX=""
-
-#
-# Misc options
-#
-# CT_TOOLCHAIN_ENABLE_NLS is not set
-
-#
-# Operating System
-#
-CT_KERNEL_SUPPORTS_SHARED_LIBS=y
-CT_KERNEL="linux"
-CT_KERNEL_VERSION="3.6.3"
-# CT_KERNEL_bare_metal is not set
-CT_KERNEL_linux=y
-CT_KERNEL_bare_metal_AVAILABLE=y
-CT_KERNEL_linux_AVAILABLE=y
-CT_KERNEL_V_3_6_3=y
-# CT_KERNEL_V_3_6_2 is not set
-# CT_KERNEL_V_3_6_1 is not set
-# CT_KERNEL_V_3_6 is not set
-# CT_KERNEL_V_3_5_7 is not set
-# CT_KERNEL_V_3_4_15 is not set
-# CT_KERNEL_V_3_3_8 is not set
-# CT_KERNEL_V_3_2_32 is not set
-# CT_KERNEL_V_3_1_10 is not set
-# CT_KERNEL_V_3_0_48 is not set
-# CT_KERNEL_V_2_6_39_4 is not set
-# CT_KERNEL_V_2_6_38_8 is not set
-# CT_KERNEL_V_2_6_37_6 is not set
-# CT_KERNEL_V_2_6_36_4 is not set
-# CT_KERNEL_V_2_6_33_20 is not set
-# CT_KERNEL_V_2_6_32_60 is not set
-# CT_KERNEL_V_2_6_31_14 is not set
-# CT_KERNEL_V_2_6_27_62 is not set
-# CT_KERNEL_LINUX_CUSTOM is not set
-CT_KERNEL_mingw32_AVAILABLE=y
-
-#
-# Common kernel options
-#
-CT_SHARED_LIBS=y
-
-#
-# linux other options
-#
-CT_KERNEL_LINUX_VERBOSITY_0=y
-# CT_KERNEL_LINUX_VERBOSITY_1 is not set
-# CT_KERNEL_LINUX_VERBOSITY_2 is not set
-CT_KERNEL_LINUX_VERBOSE_LEVEL=0
-CT_KERNEL_LINUX_INSTALL_CHECK=y
-
-#
-# Binary utilities
-#
-CT_ARCH_BINFMT_ELF=y
-
-#
-# GNU binutils
-#
-# CT_BINUTILS_V_2_21_1a is not set
-CT_BINUTILS_V_2_20_1a=y
-# CT_BINUTILS_V_2_19_1a is not set
-# CT_BINUTILS_V_2_18a is not set
-CT_BINUTILS_VERSION="2.20.1a"
-CT_BINUTILS_2_20_or_later=y
-CT_BINUTILS_2_19_or_later=y
-CT_BINUTILS_2_18_or_later=y
-CT_BINUTILS_HAS_HASH_STYLE=y
-CT_BINUTILS_GOLD_SUPPORTS_ARCH=y
-CT_BINUTILS_HAS_PKGVERSION_BUGURL=y
-CT_BINUTILS_FORCE_LD_BFD=y
-CT_BINUTILS_LINKER_LD=y
-CT_BINUTILS_LINKERS_LIST="ld"
-CT_BINUTILS_LINKER_DEFAULT="bfd"
-CT_BINUTILS_EXTRA_CONFIG_ARRAY=""
-# CT_BINUTILS_FOR_TARGET is not set
-
-#
-# C compiler
-#
-CT_CC="gcc"
-CT_CC_VERSION="4.6.3"
-CT_CC_gcc=y
-# CT_CC_V_4_7_2 is not set
-CT_CC_V_4_6_3=y
-# CT_CC_V_4_6_2 is not set
-# CT_CC_V_4_6_1 is not set
-# CT_CC_V_4_6_0 is not set
-# CT_CC_V_4_5_3 is not set
-# CT_CC_V_4_5_2 is not set
-# CT_CC_V_4_5_1 is not set
-# CT_CC_V_4_5_0 is not set
-# CT_CC_V_4_4_7 is not set
-# CT_CC_V_4_4_6 is not set
-# CT_CC_V_4_4_5 is not set
-# CT_CC_V_4_4_4 is not set
-# CT_CC_V_4_4_3 is not set
-# CT_CC_V_4_4_2 is not set
-# CT_CC_V_4_4_1 is not set
-# CT_CC_V_4_4_0 is not set
-# CT_CC_V_4_3_6 is not set
-# CT_CC_V_4_3_5 is not set
-# CT_CC_V_4_3_4 is not set
-# CT_CC_V_4_3_3 is not set
-# CT_CC_V_4_3_2 is not set
-# CT_CC_V_4_3_1 is not set
-# CT_CC_V_4_2_4 is not set
-# CT_CC_V_4_2_2 is not set
-CT_CC_GCC_4_2_or_later=y
-CT_CC_GCC_4_3_or_later=y
-CT_CC_GCC_4_4_or_later=y
-CT_CC_GCC_4_5_or_later=y
-CT_CC_GCC_4_6=y
-CT_CC_GCC_4_6_or_later=y
-CT_CC_GCC_HAS_GRAPHITE=y
-CT_CC_GCC_HAS_LTO=y
-CT_CC_GCC_HAS_PKGVERSION_BUGURL=y
-CT_CC_GCC_HAS_BUILD_ID=y
-CT_CC_GCC_USE_GMP_MPFR=y
-CT_CC_GCC_USE_PPL_CLOOG=y
-CT_CC_GCC_USE_MPC=y
-CT_CC_GCC_HAS_LIBQUADMATH=y
-# CT_CC_LANG_FORTRAN is not set
-CT_CC_SUPPORT_CXX=y
-CT_CC_SUPPORT_FORTRAN=y
-CT_CC_SUPPORT_JAVA=y
-CT_CC_SUPPORT_ADA=y
-CT_CC_SUPPORT_OBJC=y
-CT_CC_SUPPORT_OBJCXX=y
-
-#
-# Additional supported languages:
-#
-CT_CC_LANG_CXX=y
-# CT_CC_LANG_JAVA is not set
-
-#
-# gcc other options
-#
-CT_CC_ENABLE_CXX_FLAGS=""
-CT_CC_CORE_EXTRA_CONFIG_ARRAY="--disable-decimal-float"
-CT_CC_EXTRA_CONFIG_ARRAY="--disable-decimal-float"
-CT_CC_STATIC_LIBSTDCXX=y
-
-#
-# Optimisation features
-#
-CT_CC_GCC_USE_GRAPHITE=y
-CT_CC_GCC_USE_LTO=y
-
-#
-# Settings for libraries running on target
-#
-CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y
-# CT_CC_GCC_LIBMUDFLAP is not set
-# CT_CC_GCC_LIBGOMP is not set
-# CT_CC_GCC_LIBSSP is not set
-# CT_CC_GCC_LIBQUADMATH is not set
-
-#
-# Misc. obscure options.
-#
-CT_CC_CXA_ATEXIT=y
-# CT_CC_GCC_DISABLE_PCH is not set
-CT_CC_GCC_SJLJ_EXCEPTIONS=m
-CT_CC_GCC_LDBL_128=m
-# CT_CC_GCC_BUILD_ID is not set
-
-#
-# C-library
-#
-CT_LIBC="glibc"
-CT_LIBC_VERSION="2.14.1"
-# CT_LIBC_eglibc is not set
-CT_LIBC_glibc=y
-# CT_LIBC_uClibc is not set
-CT_LIBC_eglibc_AVAILABLE=y
-CT_LIBC_glibc_AVAILABLE=y
-CT_LIBC_GLIBC_V_2_14_1
-# CT_LIBC_GLIBC_V_2_14 is not set
-# CT_LIBC_GLIBC_V_2_13 is not set
-# CT_LIBC_GLIBC_V_2_12_2 is not set
-# CT_LIBC_GLIBC_V_2_12_1 is not set
-# CT_LIBC_GLIBC_V_2_11_1 is not set
-# CT_LIBC_GLIBC_V_2_11 is not set
-# CT_LIBC_GLIBC_V_2_10_1 is not set
-# CT_LIBC_GLIBC_V_2_9 is not set
-# CT_LIBC_GLIBC_V_2_8 is not set
-CT_LIBC_mingw_AVAILABLE=y
-CT_LIBC_newlib_AVAILABLE=y
-CT_LIBC_none_AVAILABLE=y
-CT_LIBC_uClibc_AVAILABLE=y
-CT_LIBC_SUPPORT_THREADS_ANY=y
-CT_LIBC_SUPPORT_NPTL=y
-CT_THREADS="nptl"
-
-#
-# Common C library options
-#
-CT_THREADS_NPTL=y
-CT_LIBC_XLDD=y
-CT_LIBC_GLIBC_MAY_FORCE_PORTS=y
-CT_LIBC_glibc_familly=y
-CT_LIBC_GLIBC_EXTRA_CONFIG_ARRAY=""
-CT_LIBC_GLIBC_CONFIGPARMS=""
-CT_LIBC_GLIBC_EXTRA_CFLAGS=""
-CT_LIBC_EXTRA_CC_ARGS=""
-# CT_LIBC_DISABLE_VERSIONING is not set
-CT_LIBC_OLDEST_ABI=""
-CT_LIBC_GLIBC_FORCE_UNWIND=y
-CT_LIBC_GLIBC_USE_PORTS=y
-CT_LIBC_ADDONS_LIST=""
-# CT_LIBC_LOCALES is not set
-# CT_LIBC_GLIBC_KERNEL_VERSION_NONE is not set
-CT_LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS=y
-# CT_LIBC_GLIBC_KERNEL_VERSION_CHOSEN is not set
-CT_LIBC_GLIBC_MIN_KERNEL="3.6.3"
-
-#
-# glibc other options
-#
-
-#
-# WARNING !!!                                            
-#
-
-#
-#   For glibc >= 2.8, it can happen that the tarballs    
-#
-
-#
-#   for the addons are not available for download.       
-#
-
-#
-#   If that happens, bad luck... Try a previous version  
-#
-
-#
-#   or try again later... :-(                            
-#
-
-#
-# Debug facilities
-#
-# CT_DEBUG_dmalloc is not set
-# CT_DEBUG_duma is not set
-# CT_DEBUG_gdb is not set
-# CT_DEBUG_ltrace is not set
-# CT_DEBUG_strace is not set
-
-#
-# Companion libraries
-#
-CT_COMPLIBS_NEEDED=y
-CT_GMP_NEEDED=y
-CT_MPFR_NEEDED=y
-CT_PPL_NEEDED=y
-CT_CLOOG_NEEDED=y
-CT_MPC_NEEDED=y
-CT_COMPLIBS=y
-CT_GMP=y
-CT_MPFR=y
-CT_PPL=y
-CT_CLOOG=y
-CT_MPC=y
-# CT_GMP_V_5_0_2 is not set
-# CT_GMP_V_5_0_1 is not set
-CT_GMP_V_4_3_2=y
-# CT_GMP_V_4_3_1 is not set
-# CT_GMP_V_4_3_0 is not set
-CT_GMP_VERSION="4.3.2"
-# CT_MPFR_V_3_1_0 is not set
-# CT_MPFR_V_3_0_1 is not set
-# CT_MPFR_V_3_0_0 is not set
-CT_MPFR_V_2_4_2=y
-# CT_MPFR_V_2_4_1 is not set
-# CT_MPFR_V_2_4_0 is not set
-CT_MPFR_VERSION="2.4.2"
-CT_PPL_V_0_11_2=y
-# CT_PPL_V_0_11_1 is not set
-# CT_PPL_V_0_11 is not set
-# CT_PPL_V_0_10_2 is not set
-CT_PPL_VERSION="0.11.2"
-CT_PPL_0_11=y
-CT_PPL_NEEDS_LIBPWL=y
-CT_CLOOG_V_0_15_11=y
-# CT_CLOOG_V_0_15_10 is not set
-# CT_CLOOG_V_0_15_9 is not set
-# CT_CLOOG_V_0_15_8 is not set
-# CT_CLOOG_V_0_15_7 is not set
-# CT_CLOOG_V_0_15_6 is not set
-CT_CLOOG_VERSION="0.15.11"
-CT_CLOOG_0_15_1x=y
-CT_CLOOG_NEEDS_AUTORECONF=y
-CT_MPC_V_0_9=y
-# CT_MPC_V_0_8_2 is not set
-# CT_MPC_V_0_8_1 is not set
-# CT_MPC_V_0_7 is not set
-CT_MPC_VERSION="0.9"
-
-#
-# Companion libraries common options
-#
-# CT_COMPLIBS_CHECK is not set
diff --git a/toolchain/toolchain-crosstool-ng/crosstool-ng.config-uClibc b/toolchain/toolchain-crosstool-ng/crosstool-ng.config-uClibc
deleted file mode 100644
index 4f21263..0000000
--- a/toolchain/toolchain-crosstool-ng/crosstool-ng.config-uClibc
+++ /dev/null
@@ -1,473 +0,0 @@
-#
-# Automatically generated make config: don't edit
-# crosstool-NG 1.17.0 Configuration
-# Sat Dec  8 12:50:22 2012
-#
-CT_CONFIGURE_has_xz=y
-CT_CONFIGURE_has_svn=y
-CT_MODULES=y
-
-#
-# Paths and misc options
-#
-
-#
-# crosstool-NG behavior
-#
-# CT_OBSOLETE is not set
-# CT_EXPERIMENTAL is not set
-# CT_DEBUG_CT is not set
-
-#
-# Paths
-#
-CT_LOCAL_TARBALLS_DIR=""
-CT_WORK_DIR="${CT_TOP_DIR}/.build"
-CT_PREFIX_DIR=""
-CT_INSTALL_DIR="${CT_PREFIX_DIR}"
-CT_RM_RF_PREFIX_DIR=y
-CT_REMOVE_DOCS=y
-# CT_INSTALL_DIR_RO is not set
-# CT_STRIP_ALL_TOOLCHAIN_EXECUTABLES is not set
-
-#
-# Downloading
-#
-# CT_FORBID_DOWNLOAD is not set
-# CT_FORCE_DOWNLOAD is not set
-CT_CONNECT_TIMEOUT=10
-# CT_ONLY_DOWNLOAD is not set
-# CT_USE_MIRROR is not set
-
-#
-# Extracting
-#
-# CT_FORCE_EXTRACT is not set
-CT_OVERIDE_CONFIG_GUESS_SUB=y
-# CT_ONLY_EXTRACT is not set
-CT_PATCH_BUNDLED=y
-# CT_PATCH_LOCAL is not set
-# CT_PATCH_BUNDLED_LOCAL is not set
-# CT_PATCH_LOCAL_BUNDLED is not set
-# CT_PATCH_BUNDLED_FALLBACK_LOCAL is not set
-# CT_PATCH_LOCAL_FALLBACK_BUNDLED is not set
-# CT_PATCH_NONE is not set
-CT_PATCH_ORDER="bundled"
-
-#
-# Build behavior
-#
-CT_PARALLEL_JOBS=0
-CT_LOAD=0
-CT_USE_PIPES=y
-CT_EXTRA_FLAGS_FOR_HOST=""
-# CT_CONFIG_SHELL_SH is not set
-# CT_CONFIG_SHELL_ASH is not set
-CT_CONFIG_SHELL_BASH=y
-# CT_CONFIG_SHELL_CUSTOM is not set
-CT_CONFIG_SHELL="${bash}"
-
-#
-# Logging
-#
-# CT_LOG_ERROR is not set
-# CT_LOG_WARN is not set
-# CT_LOG_INFO is not set
-# CT_LOG_EXTRA is not set
-CT_LOG_ALL=y
-# CT_LOG_DEBUG is not set
-CT_LOG_LEVEL_MAX="ALL"
-# CT_LOG_SEE_TOOLS_WARN is not set
-CT_LOG_TO_FILE=y
-CT_LOG_FILE_COMPRESS=y
-
-#
-# Target options
-#
-CT_ARCH="arm"
-CT_ARCH_SUPPORTS_BOTH_MMU=y
-CT_ARCH_SUPPORTS_BOTH_ENDIAN=y
-CT_ARCH_SUPPORTS_32=y
-CT_ARCH_SUPPORTS_WITH_ARCH=y
-CT_ARCH_SUPPORTS_WITH_CPU=y
-CT_ARCH_SUPPORTS_WITH_TUNE=y
-CT_ARCH_SUPPORTS_WITH_FLOAT=y
-CT_ARCH_SUPPORTS_WITH_FPU=y
-CT_ARCH_SUPPORTS_SOFTFP=y
-CT_ARCH_DEFAULT_HAS_MMU=y
-CT_ARCH_DEFAULT_LE=y
-CT_ARCH_DEFAULT_32=y
-CT_ARCH_ARCH=""
-CT_ARCH_CPU=""
-CT_ARCH_TUNE=""
-CT_ARCH_FPU=""
-# CT_ARCH_BE is not set
-CT_ARCH_LE=y
-CT_ARCH_32=y
-CT_ARCH_BITNESS=32
-# CT_ARCH_FLOAT_HW is not set
-CT_ARCH_FLOAT_SW=y
-CT_TARGET_CFLAGS=""
-CT_TARGET_LDFLAGS=""
-# CT_ARCH_alpha is not set
-CT_ARCH_arm=y
-# CT_ARCH_avr32 is not set
-# CT_ARCH_blackfin is not set
-# CT_ARCH_mips is not set
-# CT_ARCH_powerpc is not set
-# CT_ARCH_sh is not set
-# CT_ARCH_sparc is not set
-# CT_ARCH_x86 is not set
-CT_ARCH_alpha_AVAILABLE=y
-CT_ARCH_arm_AVAILABLE=y
-CT_ARCH_avr32_AVAILABLE=y
-CT_ARCH_blackfin_AVAILABLE=y
-CT_ARCH_m68k_AVAILABLE=y
-CT_ARCH_microblaze_AVAILABLE=y
-CT_ARCH_mips_AVAILABLE=y
-CT_ARCH_powerpc_AVAILABLE=y
-CT_ARCH_s390_AVAILABLE=y
-CT_ARCH_sh_AVAILABLE=y
-CT_ARCH_sparc_AVAILABLE=y
-CT_ARCH_x86_AVAILABLE=y
-
-#
-# Generic target options
-#
-CT_ARCH_USE_MMU=y
-CT_ARCH_ENDIAN="little"
-
-#
-# Target optimisations
-#
-# CT_ARCH_FLOAT_SOFTFP is not set
-CT_ARCH_FLOAT="soft"
-
-#
-# arm other options
-#
-CT_ARCH_ARM_MODE="arm"
-CT_ARCH_ARM_MODE_ARM=y
-CT_ARCH_ARM_EABI=y
-
-#
-# Toolchain options
-#
-
-#
-# General toolchain options
-#
-CT_FORCE_SYSROOT=y
-CT_USE_SYSROOT=y
-CT_SYSROOT_NAME="sysroot"
-CT_SYSROOT_DIR_PREFIX=""
-CT_WANTS_STATIC_LINK=y
-CT_TOOLCHAIN_PKGVERSION=""
-CT_TOOLCHAIN_BUGURL=""
-
-#
-# Tuple completion and aliasing
-#
-CT_TARGET_VENDOR="unknown"
-CT_TARGET_ALIAS_SED_EXPR=""
-CT_TARGET_ALIAS=""
-
-#
-# Toolchain type
-#
-CT_CROSS=y
-CT_TOOLCHAIN_TYPE="cross"
-
-#
-# Build system
-#
-CT_BUILD=""
-CT_BUILD_PREFIX=""
-CT_BUILD_SUFFIX=""
-
-#
-# Misc options
-#
-# CT_TOOLCHAIN_ENABLE_NLS is not set
-
-#
-# Operating System
-#
-CT_KERNEL_SUPPORTS_SHARED_LIBS=y
-CT_KERNEL="linux"
-CT_KERNEL_VERSION="3.6.3"
-# CT_KERNEL_bare_metal is not set
-CT_KERNEL_linux=y
-CT_KERNEL_bare_metal_AVAILABLE=y
-CT_KERNEL_linux_AVAILABLE=y
-CT_KERNEL_V_3_6_3=y
-# CT_KERNEL_V_3_6_2 is not set
-# CT_KERNEL_V_3_6_1 is not set
-# CT_KERNEL_V_3_6 is not set
-# CT_KERNEL_V_3_5_7 is not set
-# CT_KERNEL_V_3_4_15 is not set
-# CT_KERNEL_V_3_3_8 is not set
-# CT_KERNEL_V_3_2_32 is not set
-# CT_KERNEL_V_3_1_10 is not set
-# CT_KERNEL_V_3_0_48 is not set
-# CT_KERNEL_V_2_6_39_4 is not set
-# CT_KERNEL_V_2_6_38_8 is not set
-# CT_KERNEL_V_2_6_37_6 is not set
-# CT_KERNEL_V_2_6_36_4 is not set
-# CT_KERNEL_V_2_6_33_20 is not set
-# CT_KERNEL_V_2_6_32_60 is not set
-# CT_KERNEL_V_2_6_31_14 is not set
-# CT_KERNEL_V_2_6_27_62 is not set
-# CT_KERNEL_LINUX_CUSTOM is not set
-CT_KERNEL_mingw32_AVAILABLE=y
-
-#
-# Common kernel options
-#
-CT_SHARED_LIBS=y
-
-#
-# linux other options
-#
-CT_KERNEL_LINUX_VERBOSITY_0=y
-# CT_KERNEL_LINUX_VERBOSITY_1 is not set
-# CT_KERNEL_LINUX_VERBOSITY_2 is not set
-CT_KERNEL_LINUX_VERBOSE_LEVEL=0
-CT_KERNEL_LINUX_INSTALL_CHECK=y
-
-#
-# Binary utilities
-#
-CT_ARCH_BINFMT_ELF=y
-
-#
-# GNU binutils
-#
-# CT_BINUTILS_V_2_21_1a is not set
-CT_BINUTILS_V_2_20_1a=y
-# CT_BINUTILS_V_2_19_1a is not set
-# CT_BINUTILS_V_2_18a is not set
-CT_BINUTILS_VERSION="2.20.1a"
-CT_BINUTILS_2_20_or_later=y
-CT_BINUTILS_2_19_or_later=y
-CT_BINUTILS_2_18_or_later=y
-CT_BINUTILS_HAS_HASH_STYLE=y
-CT_BINUTILS_GOLD_SUPPORTS_ARCH=y
-CT_BINUTILS_HAS_PKGVERSION_BUGURL=y
-CT_BINUTILS_LINKER_LD=y
-CT_BINUTILS_LINKERS_LIST="ld"
-CT_BINUTILS_LINKER_DEFAULT="bfd"
-CT_BINUTILS_EXTRA_CONFIG_ARRAY=""
-# CT_BINUTILS_FOR_TARGET is not set
-
-#
-# C compiler
-#
-CT_CC="gcc"
-CT_CC_VERSION="4.6.3"
-CT_CC_gcc=y
-# CT_CC_V_4_7_2 is not set
-CT_CC_V_4_6_3=y
-# CT_CC_V_4_6_2 is not set
-# CT_CC_V_4_6_1 is not set
-# CT_CC_V_4_6_0 is not set
-# CT_CC_V_4_5_3 is not set
-# CT_CC_V_4_5_2 is not set
-# CT_CC_V_4_5_1 is not set
-# CT_CC_V_4_5_0 is not set
-# CT_CC_V_4_4_7 is not set
-# CT_CC_V_4_4_6 is not set
-# CT_CC_V_4_4_5 is not set
-# CT_CC_V_4_4_4 is not set
-# CT_CC_V_4_4_3 is not set
-# CT_CC_V_4_4_2 is not set
-# CT_CC_V_4_4_1 is not set
-# CT_CC_V_4_4_0 is not set
-# CT_CC_V_4_3_6 is not set
-# CT_CC_V_4_3_5 is not set
-# CT_CC_V_4_3_4 is not set
-# CT_CC_V_4_3_3 is not set
-# CT_CC_V_4_3_2 is not set
-# CT_CC_V_4_3_1 is not set
-# CT_CC_V_4_2_4 is not set
-# CT_CC_V_4_2_2 is not set
-CT_CC_GCC_4_2_or_later=y
-CT_CC_GCC_4_3_or_later=y
-CT_CC_GCC_4_4_or_later=y
-CT_CC_GCC_4_5_or_later=y
-CT_CC_GCC_4_6=y
-CT_CC_GCC_4_6_or_later=y
-CT_CC_GCC_HAS_GRAPHITE=y
-CT_CC_GCC_HAS_LTO=y
-CT_CC_GCC_HAS_PKGVERSION_BUGURL=y
-CT_CC_GCC_HAS_BUILD_ID=y
-CT_CC_GCC_USE_GMP_MPFR=y
-CT_CC_GCC_USE_PPL_CLOOG=y
-CT_CC_GCC_USE_MPC=y
-CT_CC_GCC_HAS_LIBQUADMATH=y
-# CT_CC_LANG_FORTRAN is not set
-CT_CC_SUPPORT_CXX=y
-CT_CC_SUPPORT_FORTRAN=y
-CT_CC_SUPPORT_JAVA=y
-CT_CC_SUPPORT_ADA=y
-CT_CC_SUPPORT_OBJC=y
-CT_CC_SUPPORT_OBJCXX=y
-
-#
-# Additional supported languages:
-#
-CT_CC_LANG_CXX=y
-# CT_CC_LANG_JAVA is not set
-
-#
-# gcc other options
-#
-CT_CC_ENABLE_CXX_FLAGS=""
-CT_CC_CORE_EXTRA_CONFIG_ARRAY="--disable-decimal-float"
-CT_CC_EXTRA_CONFIG_ARRAY="--disable-decimal-float"
-CT_CC_STATIC_LIBSTDCXX=y
-
-#
-# Optimisation features
-#
-CT_CC_GCC_USE_GRAPHITE=y
-CT_CC_GCC_USE_LTO=y
-
-#
-# Settings for libraries running on target
-#
-CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y
-# CT_CC_GCC_LIBMUDFLAP is not set
-# CT_CC_GCC_LIBGOMP is not set
-# CT_CC_GCC_LIBSSP is not set
-# CT_CC_GCC_LIBQUADMATH is not set
-
-#
-# Misc. obscure options.
-#
-CT_CC_CXA_ATEXIT=y
-# CT_CC_GCC_DISABLE_PCH is not set
-CT_CC_GCC_SJLJ_EXCEPTIONS=m
-CT_CC_GCC_LDBL_128=m
-# CT_CC_GCC_BUILD_ID is not set
-
-#
-# C-library
-#
-CT_LIBC="uClibc"
-CT_LIBC_VERSION="0.9.33.2"
-# CT_LIBC_eglibc is not set
-# CT_LIBC_glibc is not set
-CT_LIBC_uClibc=y
-CT_LIBC_eglibc_AVAILABLE=y
-CT_LIBC_glibc_AVAILABLE=y
-CT_LIBC_mingw_AVAILABLE=y
-CT_LIBC_newlib_AVAILABLE=y
-CT_LIBC_none_AVAILABLE=y
-CT_LIBC_uClibc_AVAILABLE=y
-CT_LIBC_UCLIBC_V_0_9_33_2=y
-# CT_LIBC_UCLIBC_V_0_9_33_1 is not set
-# CT_LIBC_UCLIBC_V_0_9_33 is not set
-# CT_LIBC_UCLIBC_V_0_9_32_1 is not set
-# CT_LIBC_UCLIBC_V_0_9_32 is not set
-# CT_LIBC_UCLIBC_V_0_9_30_3 is not set
-# CT_LIBC_UCLIBC_V_0_9_30_2 is not set
-# CT_LIBC_UCLIBC_V_0_9_30_1 is not set
-# CT_LIBC_UCLIBC_V_0_9_30 is not set
-CT_LIBC_UCLIBC_0_9_32_or_later=y
-CT_LIBC_UCLIBC_0_9_30_or_later=y
-CT_LIBC_UCLIBC_PARALLEL=y
-CT_LIBC_UCLIBC_VERBOSITY_0=y
-# CT_LIBC_UCLIBC_VERBOSITY_1 is not set
-# CT_LIBC_UCLIBC_VERBOSITY_2 is not set
-CT_LIBC_UCLIBC_VERBOSITY=""
-CT_LIBC_UCLIBC_DEBUG_LEVEL_0=y
-# CT_LIBC_UCLIBC_DEBUG_LEVEL_1 is not set
-# CT_LIBC_UCLIBC_DEBUG_LEVEL_2 is not set
-# CT_LIBC_UCLIBC_DEBUG_LEVEL_3 is not set
-CT_LIBC_UCLIBC_DEBUG_LEVEL=0
-CT_LIBC_UCLIBC_CONFIG_FILE=""
-CT_LIBC_SUPPORT_THREADS_ANY=y
-CT_LIBC_SUPPORT_NPTL=y
-CT_LIBC_SUPPORT_LINUXTHREADS=y
-CT_LIBC_SUPPORT_THREADS_NONE=y
-CT_THREADS="nptl"
-
-#
-# Common C library options
-#
-CT_THREADS_NPTL=y
-# CT_THREADS_LINUXTHREADS is not set
-# CT_THREADS_NONE is not set
-CT_LIBC_XLDD=y
-
-#
-# uClibc other options
-#
-CT_LIBC_UCLIBC_LNXTHRD=""
-# CT_LIBC_UCLIBC_LOCALES is not set
-CT_LIBC_UCLIBC_WCHAR=y
-
-#
-# Debug facilities
-#
-# CT_DEBUG_dmalloc is not set
-# CT_DEBUG_duma is not set
-# CT_DEBUG_gdb is not set
-# CT_DEBUG_ltrace is not set
-# CT_DEBUG_strace is not set
-
-#
-# Companion libraries
-#
-CT_COMPLIBS_NEEDED=y
-CT_GMP_NEEDED=y
-CT_MPFR_NEEDED=y
-CT_PPL_NEEDED=y
-CT_CLOOG_NEEDED=y
-CT_MPC_NEEDED=y
-CT_COMPLIBS=y
-CT_GMP=y
-CT_MPFR=y
-CT_PPL=y
-CT_CLOOG=y
-CT_MPC=y
-# CT_GMP_V_5_0_2 is not set
-# CT_GMP_V_5_0_1 is not set
-CT_GMP_V_4_3_2=y
-# CT_GMP_V_4_3_1 is not set
-# CT_GMP_V_4_3_0 is not set
-CT_GMP_VERSION="4.3.2"
-# CT_MPFR_V_3_1_0 is not set
-# CT_MPFR_V_3_0_1 is not set
-# CT_MPFR_V_3_0_0 is not set
-CT_MPFR_V_2_4_2=y
-# CT_MPFR_V_2_4_1 is not set
-# CT_MPFR_V_2_4_0 is not set
-CT_MPFR_VERSION="2.4.2"
-CT_PPL_V_0_11_2=y
-# CT_PPL_V_0_11_1 is not set
-# CT_PPL_V_0_11 is not set
-# CT_PPL_V_0_10_2 is not set
-CT_PPL_VERSION="0.11.2"
-CT_PPL_0_11=y
-CT_PPL_NEEDS_LIBPWL=y
-CT_CLOOG_V_0_15_11=y
-# CT_CLOOG_V_0_15_10 is not set
-# CT_CLOOG_V_0_15_9 is not set
-# CT_CLOOG_V_0_15_8 is not set
-# CT_CLOOG_V_0_15_7 is not set
-# CT_CLOOG_V_0_15_6 is not set
-CT_CLOOG_VERSION="0.15.11"
-CT_CLOOG_0_15_1x=y
-CT_CLOOG_NEEDS_AUTORECONF=y
-CT_MPC_V_0_9=y
-# CT_MPC_V_0_8_2 is not set
-# CT_MPC_V_0_8_1 is not set
-# CT_MPC_V_0_7 is not set
-CT_MPC_VERSION="0.9"
-
-#
-# Companion libraries common options
-#
-# CT_COMPLIBS_CHECK is not set
diff --git a/toolchain/toolchain-crosstool-ng/crosstool-ng.mk b/toolchain/toolchain-crosstool-ng/crosstool-ng.mk
deleted file mode 100644
index 19e8761..0000000
--- a/toolchain/toolchain-crosstool-ng/crosstool-ng.mk
+++ /dev/null
@@ -1,396 +0,0 @@
-# Makefile fragment for building toolchain with crosstool-NG
-
-# As a reference, you can look at toolchain/toolchain-external/ext-tool.mk
-# for a generic approach to external toolchains.
-# crosstool-NG as a backend is but a kind of external toolchains,
-# except that it is not pre-built.
-
-#-----------------------------------------------------------------------------
-# Internal variables
-
-CTNG_DIR := $(BUILD_DIR)/build-toolchain
-
-CTNG_UCLIBC_CONFIG_FILE := $(TOPDIR)/package/uclibc/uClibc-0.9.33.config
-CTNG_CONFIG_FILE := $(call qstrip,$(BR2_TOOLCHAIN_CTNG_CONFIG))
-
-# Hack! ct-ng is in fact a Makefile script. As such, it accepts all
-# make options, such as -C, which makes it uneeded to chdir prior
-# to calling ct-ng.
-# $1: the set of arguments to pass to ct-ng
-define ctng
-PATH=$(HOST_PATH) ct-ng -C $(CTNG_DIR) --no-print-directory $(1)
-endef
-
-#-----------------------------------------------------------------------------
-toolchain-crosstool-ng: dependencies $(STAMP_DIR)/ct-ng-toolchain-installed
-
-# The target used by the infra structure to mean "we just want to
-# download the toolchain's sources, not build it" For crosstool-NG, we
-# need it to be configured before we can download; then we have to
-# override a config option to just do the download
-toolchain-crosstool-ng-source: $(CTNG_DIR)/.config
-	$(Q)$(call ctng,build CT_ONLY_DOWNLOAD=y)
-
-#-----------------------------------------------------------------------------
-# Installing the libs to target/ and staging/
-
-#--------------
-# The generic system libraries (in /lib)
-CTNG_LIBS_LIB := ld*.so libc.so libcrypt.so libdl.so libgcc_s.so libm.so    \
-                 libnsl.so libpthread.so libresolv.so librt.so libutil.so
-
-ifeq ($(BR2_PACKAGE_GDB_SERVER),y)
-CTNG_LIBS_LIB += libthread_db.so
-endif
-
-#--------------
-# The libc-specific system libraries (in /lib)
-# Note: it may be needed to tweak the NSS libs in the glibc and eglibc cases...
-CTNG_LIBS_uClibc :=
-CTNG_LIBS_glibc  := libnss_files.so libnss_dns.so
-CTNG_LIBS_eglibc := $(CTNG_LIBS_glibc)
-
-#--------------
-# All that we need in /lib
-CTNG_LIBS_LIB += $(CTNG_LIBS_$(call qstrip,$(BR2_TOOLCHAIN_CTNG_LIBC)))
-
-#--------------
-# All that we need in /usr/lib
-ifneq ($(BR2_INSTALL_LIBSTDCPP),)
-CTNG_LIBS_USR_LIB += libstdc++.so
-endif
-
-#--------------
-# Actual copy
-$(STAMP_DIR)/ct-ng-toolchain-installed: $(STAMP_DIR)/ct-ng-toolchain-built
-	$(Q)mkdir -p $(TARGET_DIR)/lib
-	$(Q)CTNG_TUPLE="$$( $(call ctng,show-tuple 2>&1) )";                \
-	    CTNG_SYSROOT="$(HOST_DIR)/usr/$${CTNG_TUPLE}/sysroot";          \
-	    $(call MESSAGE,"Copying toolchain libraries to target...");     \
-	    for libs in $(CTNG_LIBS_LIB); do                                \
-	        $(call copy_toolchain_lib_root,$${CTNG_SYSROOT},,lib,$$libs,/lib); \
-	    done;                                                           \
-	    for libs in $(CTNG_LIBS_USR_LIB); do                            \
-	        $(call copy_toolchain_lib_root,$${CTNG_SYSROOT},,lib,$$libs,/usr/lib); \
-	    done;
-	$(Q)touch $@
-
-#-----------------------------------------------------------------------------
-# Building the toolchain
-# Note: $(STAMP_DIR)/ct-ng-toolchain-built can have more dependencies,
-#       depending on the selected C library. Those deps are added later
-
-$(STAMP_DIR)/ct-ng-toolchain-built: $(CTNG_DIR)/.config
-	$(Q)$(call MESSAGE,"Building the crosstool-NG toolchain")
-	$(Q)$(call ctng,build.$(PARALLEL_JOBS))
-	$(Q)printf "\n"
-	$(Q)touch $@
-
-#-----------------------------------------------------------------------------
-# Configuring the toolchain
-
-#--------------
-# We push BR options down to CT-NG, munging the default configuration
-# with sed expressions.
-# - first one for non-path options
-# - second for path options (because they have no prompt, they
-#                            always get set to the default value)
-# - third for C library .config (if it has one, eg. uClibc)
-CTNG_FIX_BUILDROOT_CONFIG_SED       :=
-CTNG_FIX_BUILDROOT_CONFIG_PATHS_SED :=
-CTNG_FIX_BUILDROOT_CONFIG_LIBC_SED  :=
-
-#--------------
-# A few generic functions
-
-# Munge a config file, given a sed expression
-# $1: the .config file to munge
-# $2: the sed expression to apply
-define ctng-fix-dot-config
-	$(Q)sed -r -e '$(2)' $(1) >$(1).sed
-	$(Q)cmp $(1) $(1).sed >/dev/null 2>&1 && rm -f $(1).sed || mv -f $(1).sed $(1)
-endef
-
-# This function checks the .config did actually change
-# If not changed, then current .config will be touched with reference to the
-# stamp file. If the configuration did change, nothing is done.
-# $1: the current .config to check
-# $2: the time-stamped .config file
-define ctng-check-config-changed
-	$(Q)old_md5="$$( grep -v -E '^(#|$$)' $(2) 2>/dev/null  \
-	                 |md5sum                                \
-	                 |cut -d ' ' -f 1                       \
-	               )";                                      \
-	    new_md5="$$( grep -v -E '^(#|$$)' $(1) 2>/dev/null  \
-	                 |md5sum                                \
-	                 |cut -d ' ' -f 1                       \
-	               )";                                      \
-	    if [ $${old_md5} = $${new_md5} -a -f $(2) ]; then   \
-	        touch -r $(2) $(1);                             \
-	    fi
-endef
-
-#--------------
-# Massage BR2_ARCH so that it matches CT-NG's ARCH
-#
-# Note: a lot of the following tricks would become unneeded if one day
-# buildroot and crosstool-NG had matching options, especially for the
-# target description: arch name, bitness, endianness...
-#
-# Note-2: missing conformity check between BR's .config and libc features.
-# Use check_uclibc or check_glibc.
-
-# Defaults:
-CTNG_ARCH   := $(CTNG_BR2_ARCH)
-CTNG_ENDIAN :=
-CTNG_BIT    :=
-# Architecture overides, only overide pertinent vars:
-ifeq      ($(BR2_arm),y)
-CTNG_ARCH   := arm
-CTNG_ENDIAN := LE
-else ifeq ($(BR2_armeb),y)
-CTNG_ARCH   := arm
-CTNG_ENDIAN := BE
-else ifeq ($(BR2_i386),y)
-CTNG_ARCH   := x86
-CTNG_BIT    := 32
-else ifeq ($(BR2_mips),y)
-CTNG_ARCH   := mips
-CTNG_ENDIAN := BE
-else ifeq ($(BR2_mipsel),y)
-CTNG_ARCH   := mips
-CTNG_ENDIAN := LE
-else ifeq ($(BR2_powerpc),y)
-CTNG_ARCH   := powerpc
-CTNG_BIT    := 32
-else ifeq ($(BR2_x86_64),y)
-CTNG_ARCH   := x86
-CTNG_BIT    := 64
-# Add other architecture overides below:
-#  - keep alphabetic order
-#  - duplicate next 4 lines, and uncomment
-#       else ifeq ($(BR2_<arch_name_here>),y)
-#       CTNG_ARCH   :=
-#       CTNG_ENDIAN :=
-#       CTNG_BIT    :=
-#  - remove unneeded vars
-#  - add BR arch-name on ifeq line
-#  - fill-in required CTNG_* vars
-endif
-
-#--------------
-# Massage BR options into CTNG .config file
-# CT_ARCH                   : handled by the backend mechanism
-# CT_ARCH_[BL]E             : endianness
-# CT_ARCH_(32|64)           : bitness
-# CT_PREFIX_DIR             : install into BR's toolchain dir
-# CT_INSTALL_DIR_RO         : do *not* chmod a-w the toolchain dir
-# CT_LOCAL_TARBALLS_DIR     : share downloads with BR
-# CT_SYSROOT_DIR_PREFIX     : no prefix needed, really
-# CT_TARGET_VENDOR          : try to set a unique vendor string, to avoid clashing with BR's vendor string
-# CT_TARGET_ALIAS           : set the target tuple alias to GNU_TARGET_NAME so that packages' ./configure find the compiler
-# CT_DEBUG_gdb              : deselect gdb+gdbserver if buildroot builds its own
-# CT_CC_LANG_CXX            : required if we copy libstdc++.so, and build C++
-# CT_LIBC_UCLIBC_CONFIG_FILE: uClibc config file, if needed
-#
-# Lots of other awfull sed manipulations go here, to override CT-NG's .config
-# with BR2 config options.
-# Known missing: arch options, uClibc/eglibc config...
-#
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(CT_INSTALL_DIR_RO)=y:\# \1 is not set:;
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(|\# )(CT_ARCH_[BL]E).*:\# \2 is not set:;
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^\# (CT_ARCH_$(CTNG_ENDIAN)) is not set:\1=y:;
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(|\# )(CT_ARCH_(32|64)).*:\# \2 is not set:;
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^\# (CT_ARCH_$(CTNG_BIT)) is not set:\1=y:;
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(CT_TARGET_VENDOR)=.*:\1="buildroot":;
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(CT_TARGET_ALIAS)=.*:\1="$(ARCH)-linux":;
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(CT_TOOLCHAIN_PKGVERSION)="(.*)":\1="buildroot $(BR2_VERSION_FULL)":;
-ifneq ($(call qstrip,$(BR2_USE_MMU)),)
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^\# (CT_ARCH_USE_MMU) is not set:\1=y:;
-else
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(CT_ARCH_USE_MMU)=y:\# \1 is not set:;
-endif
-ifneq ($(call qstrip,$(BR2_PACKAGE_GDB_SERVER))$(call qstrip,$(BR2_PACKAGE_GDB_HOST)),)
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(CT_DEBUG_gdb)=.*:\# \1 is not set:;
-endif
-ifeq ($(call qstrip,$(BR2_TOOLCHAIN_CTNG_CXX)),y)
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^\# (CT_CC_LANG_CXX) is not set:\1=y:;
-else
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(CT_CC_LANG_CXX)=.*:\# \1 is not set:;
-endif
-
-# Shoe-horn CPU variant now
-ifneq ($(call qstrip,$(BR2_GCC_TARGET_ARCH)),)
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(CT_ARCH_ARCH)=.*:\1=$(BR2_GCC_TARGET_ARCH):;
-endif
-ifneq ($(call qstrip,$(BR2_GCC_TARGET_TUNE)),)
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(CT_ARCH_TUNE)=.*:\1=$(BR2_GCC_TARGET_TUNE):;
-endif
-
-# And floating point now
-ifeq ($(call qstrip,$(BR2_SOFT_FLOAT)),)
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^\# (CT_ARCH_FLOAT_HW) is not set:\1=y:;
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(CT_ARCH_FLOAT_SW)=y:\# \1 is not set:;
-else
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(CT_ARCH_FLOAT_HW)=y:\# \1 is not set:;
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^\# (CT_ARCH_FLOAT_SW) is not set:\1=y:;
-endif
-
-# Thread implementation selection
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(|\# )(CT_THREADS_NONE).*:\# \2 is not set:;
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(|\# )(CT_THREADS_LINUXTHREADS).*:\# \2 is not set:;
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(|\# )(CT_THREADS_NPTL).*:\# \2 is not set:;
-ifneq ($(call qstrip,$(BR2_TOOLCHAIN_CTNG_THREADS_PTHREADS))$(call qstrip,$(BR2_TOOLCHAIN_CTNG_THREADS_PTHREADS_OLD)),)
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(|\# )(CT_THREADS_LINUXTHREADS).*:\2=y:;
- ifneq ($(call qstrip,$(BR2_TOOLCHAIN_CTNG_uClibc)),)
-  ifneq ($(call qstrip,$(BR2_TOOLCHAIN_CTNG_THREADS_PTHREADS_OLD)),)
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(|\# )(CT_LIBC_UCLIBC_LNXTHRD_NEW).*:\# \2 is not set:;
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(|\# )(CT_LIBC_UCLIBC_LNXTHRD_OLD).*:\2=y:;
-  else
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(|\# )(CT_LIBC_UCLIBC_LNXTHRD_OLD).*:\# \2 is not set:;
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(|\# )(CT_LIBC_UCLIBC_LNXTHRD_NEW).*:\2=y:;
-  endif
- endif
-else ifneq ($(call qstrip,$(BR2_TOOLCHAIN_CTNG_THREADS_NPTL)),)
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(|\# )(CT_THREADS_NPTL).*:\2=y:;
-else ifneq ($(call qstrip,$(BR2_TOOLCHAIN_CTNG_THREADS_NONE)),)
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(|\# )(CT_THREADS_NONE).*:\2=y:;
-endif
-
-#--------------
-# And the specials for paths
-CTNG_FIX_BUILDROOT_CONFIG_PATHS_SED += s:^(CT_PREFIX_DIR)=.*:\1="$(HOST_DIR)/usr":;
-CTNG_FIX_BUILDROOT_CONFIG_PATHS_SED += s:^(CT_LOCAL_TARBALLS_DIR)=.*:\1="$(DL_DIR)":;
-CTNG_FIX_BUILDROOT_CONFIG_PATHS_SED += s:^(CT_SYSROOT_NAME)=.*:\1="sysroot":;
-CTNG_FIX_BUILDROOT_CONFIG_PATHS_SED += s:^(CT_SYSROOT_DIR_PREFIX)=.*:\1="":;
-
-#--------------
-# uClibc specific options
-ifeq ($(BR2_TOOLCHAIN_CTNG_uClibc),y)
-
-# Handle the locales option
-ifneq ($(call qstrip,$(BR2_TOOLCHAIN_CTNG_uClibc_LOCALE)),)
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^\# (CT_LIBC_UCLIBC_LOCALES) is not set:\1=y\n\# CT_LIBC_UCLIBC_LOCALES_PREGEN_DATA is not set:;
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(CT_LIBC_UCLIBC_LOCALES_PREGEN_DATA)=.*:\# \1 is not set:;
-else
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(CT_LIBC_UCLIBC_LOCALES)=.*:\# \1 is not set:;
-endif
-
-# Handle the wide-char option
-ifneq ($(call qstrip,$(BR2_TOOLCHAIN_CTNG_uClibc_WCHAR)),)
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^\# (CT_LIBC_UCLIBC_WCHAR) is not set:\1=y:;
-else
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(CT_LIBC_UCLIBC_WCHAR)=.*:\# \1 is not set:;
-endif
-
-# Handle the LFS option
-ifneq ($(call qstrip,$(BR2_TOOLCHAIN_CTNG_uClibc_LARGEFILE)),)
-CTNG_FIX_BUILDROOT_CONFIG_LIBC_SED += s:^\# (UCLIBC_HAS_LFS) is not set:\1=y:;
-else
-CTNG_FIX_BUILDROOT_CONFIG_LIBC_SED += s:^(UCLIBC_HAS_LFS)=.*:\# \1 is not set:;
-endif
-
-# Handle the IPv6 option
-ifneq ($(call qstrip,$(BR2_TOOLCHAIN_CTNG_uClibc_INET_IPV6)),)
-CTNG_FIX_BUILDROOT_CONFIG_LIBC_SED += s:^\# (UCLIBC_HAS_IPV6) is not set:\1=y:;
-else
-CTNG_FIX_BUILDROOT_CONFIG_LIBC_SED += s:^(UCLIBC_HAS_IPV6)=.*:\# \1 is not set:;
-endif
-
-# Handle the RPC option
-ifneq ($(call qstrip,$(BR2_TOOLCHAIN_CTNG_uClibc_INET_RPC)),)
-CTNG_FIX_BUILDROOT_CONFIG_LIBC_SED += s:^\# (UCLIBC_HAS_RPC) is not set:\1=y\nUCLIBC_HAS_FULL_RPC=y\nUCLIBC_HAS_REENTRANT_RPC=y:;
-CTNG_FIX_BUILDROOT_CONFIG_LIBC_SED += s:^\# (UCLIBC_HAS_FULL_RPC) is not set:\1=y:;
-CTNG_FIX_BUILDROOT_CONFIG_LIBC_SED += s:^\# (UCLIBC_HAS_REENTRANT_RPC) is not set:\1=y:;
-else
-CTNG_FIX_BUILDROOT_CONFIG_LIBC_SED += s:^(UCLIBC_HAS_RPC)=.*:\# \1 is not set:;
-endif
-
-# Instruct CT-NG's .config where to find the uClibc's .config
-CTNG_FIX_BUILDROOT_CONFIG_PATHS_SED += s:^(CT_LIBC_UCLIBC_CONFIG_FILE)=.*:\1="$(CTNG_DIR)/libc.config":;
-
-# And add this to the toolchain build dependency
-$(STAMP_DIR)/ct-ng-toolchain-built: $(CTNG_DIR)/libc.config
-
-# And here is how we get this uClibc's .config
-$(CTNG_DIR)/libc.config: $(CTNG_UCLIBC_CONFIG_FILE) $(BUILDROOT_CONFIG)
-	-$(Q)cp -a $@ $@.timestamp
-	$(Q)cp -f $< $@
-	$(call ctng-fix-dot-config,$@,$(CTNG_FIX_BUILDROOT_CONFIG_LIBC_SED))
-	$(call ctng-check-config-changed,$@,$@.timestamp)
-	$(Q)rm -f $@.timestamp
-
-endif # LIBC is uClibc
-
-#--------------
-# glibc/eglibc specific options
-ifeq ($(BR2_TOOLCHAIN_CTNG_glibc)$(BR2_TOOLCHAIN_CTNG_eglibc),y)
-
-# Force unwind support
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^\# (CT_LIBC_GLIBC_FORCE_UNWIND) is not set:\1=y:;
-
-# Force non-fortified build
-CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(CT_LIBC_ENABLE_FORTIFIED_BUILD)=y:\# \1 is not set:;
-
-endif # LIBC is glibc or eglibc
-
-#--------------
-# Small functions to shoe-horn the above into crosstool-NG's .config
-
-# Function to update the .config
-# We first munge the .config to shoe-horn defaults, then we push that unto
-# crosstool-NG's oldconfig process, to sort out wizy-wazy deps, and then we
-# shoe-horn paths again, as they get ripped-out by oldconfig (is that a bug
-# or a feature of kconfig?)
-# $1: the .config file to munge
-define ctng-oldconfig
-	$(call ctng-fix-dot-config,$(1),$(CTNG_FIX_BUILDROOT_CONFIG_SED))
-	$(Q)yes ''                                             |\
-	$(call ctng,CT_IS_A_BACKEND=y                           \
-	            CT_BACKEND_ARCH=$(CTNG_ARCH)                \
-	            CT_BACKEND_KERNEL=linux                     \
-	            CT_BACKEND_LIBC=$(BR2_TOOLCHAIN_CTNG_LIBC)  \
-	            oldconfig                                   )
-	$(call ctng-fix-dot-config,$(1),$(CTNG_FIX_BUILDROOT_CONFIG_PATHS_SED))
-endef
-
-# We need the host crosstool-NG before we can even begin working
-# on the toolchain. Using order-only dependency, as we do not want
-# to rebuild the toolchain for every run...
-$(CTNG_DIR)/.config: | host-crosstool-ng
-
-# Default configuration
-# Only copy the original .config file if we don't have one already.
-# Check that given config file matches selected C library.
-# We need to call oldconfig twice in a row to ensure the options
-# are correctly set ( eg. if an option is new, then the initial sed
-# can't do anything about it ) Ideally, this should go in oldconfig
-# itself, but it's much easier to handle here.
-$(CTNG_DIR)/.config:
-	$(Q)if [ ! -f $@ ]; then                                                        \
-	        mkdir -p "$(CTNG_DIR)";                                                 \
-	        libc="$$(awk -F '"' '$$1=="CT_LIBC=" { print $$2; }'                    \
-	                        "$(CTNG_CONFIG_FILE)"                                   \
-	                )";                                                             \
-	        if [ "$${libc}" != "$(BR2_TOOLCHAIN_CTNG_LIBC)" ]; then                 \
-	            echo "* Inconsistency in crosstool-NG config file '$(CTNG_CONFIG_FILE)'"; \
-	            echo "* - buildroot configured for '$(BR2_TOOLCHAIN_CTNG_LIBC)'";   \
-	            echo "* - given config file for '$${libc}'";                        \
-	            exit 1;                                                             \
-	        fi;                                                                     \
-	        cp -f $(CTNG_CONFIG_FILE) $@;                                                            \
-	    fi
-	$(call ctng-oldconfig,$@)
-	$(call ctng-oldconfig,$@)
-
-# Manual configuration
-ctng-menuconfig: $(CTNG_DIR)/.config
-	$(Q)cp -a $< $<.timestamp
-	$(Q)$(call ctng,CT_IS_A_BACKEND=y                           \
-	                CT_BACKEND_ARCH=$(CTNG_ARCH)                \
-	                CT_BACKEND_KERNEL=linux                     \
-	                CT_BACKEND_LIBC=$(BR2_TOOLCHAIN_CTNG_LIBC)  \
-	                menuconfig                                  )
-	$(call ctng-oldconfig,$<)
-	$(call ctng-check-config-changed,$<,$<.timestamp)
-	$(Q)rm -f $<.timestamp
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 03/11] toolchain-external: make ext-tool.mk includable in all cases
  2013-09-05 21:27 [Buildroot] [RFCv1 00/11] Convert toolchain backends to packages to fix source/external-deps/legal-info Thomas Petazzoni
  2013-09-05 21:27 ` [Buildroot] [RFCv1 01/11] Makefile: make $(BUILD_DIR)/.root rule idempotent Thomas Petazzoni
  2013-09-05 21:27 ` [Buildroot] [RFCv1 02/11] toolchain-crosstool-ng: remove support Thomas Petazzoni
@ 2013-09-05 21:27 ` Thomas Petazzoni
  2013-09-08 15:31   ` Thomas De Schampheleire
  2013-09-05 21:27 ` [Buildroot] [RFCv1 04/11] toolchain: move helpers.mk into toolchain-external/ Thomas Petazzoni
                   ` (9 subsequent siblings)
  12 siblings, 1 reply; 49+ messages in thread
From: Thomas Petazzoni @ 2013-09-05 21:27 UTC (permalink / raw)
  To: buildroot

The ext-tool.mk logic uses the TOOLCHAIN_EXTERNAL_PREFIX variable
unconditionally, even if the external toolchain is not used. Until now
this wasn't a problem since ext-tool.mk was only included when the
external toolchain backend was selected, but the next patches are
going to include this file unconditionally.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 toolchain/toolchain-external/ext-tool.mk | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/toolchain/toolchain-external/ext-tool.mk b/toolchain/toolchain-external/ext-tool.mk
index e92afbd..fbcbe6c 100644
--- a/toolchain/toolchain-external/ext-tool.mk
+++ b/toolchain/toolchain-external/ext-tool.mk
@@ -1,4 +1,3 @@
-
 #
 # This file implements the support for external toolchains, i.e
 # toolchains that have not been produced by Buildroot itself and that
@@ -112,8 +111,10 @@ TOOLCHAIN_EXTERNAL_DIR=$(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PATH))
 endif
 
 ifeq ($(TOOLCHAIN_EXTERNAL_DIR),)
+ifneq ($(TOOLCHAIN_EXTERNAL_PREFIX),)
 # if no path set, figure it out from path
 TOOLCHAIN_EXTERNAL_BIN := $(shell dirname $(shell which $(TOOLCHAIN_EXTERNAL_PREFIX)-gcc))
+endif
 else
 ifeq ($(BR2_bfin),y)
 TOOLCHAIN_EXTERNAL_BIN := $(TOOLCHAIN_EXTERNAL_DIR)/$(TOOLCHAIN_EXTERNAL_PREFIX)/bin
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 04/11] toolchain: move helpers.mk into toolchain-external/
  2013-09-05 21:27 [Buildroot] [RFCv1 00/11] Convert toolchain backends to packages to fix source/external-deps/legal-info Thomas Petazzoni
                   ` (2 preceding siblings ...)
  2013-09-05 21:27 ` [Buildroot] [RFCv1 03/11] toolchain-external: make ext-tool.mk includable in all cases Thomas Petazzoni
@ 2013-09-05 21:27 ` Thomas Petazzoni
  2013-09-08 17:50   ` Thomas De Schampheleire
  2013-09-13 16:07   ` Luca Ceresoli
  2013-09-05 21:27 ` [Buildroot] [RFCv1 05/11] toolchain: introduce a virtual package Thomas Petazzoni
                   ` (8 subsequent siblings)
  12 siblings, 2 replies; 49+ messages in thread
From: Thomas Petazzoni @ 2013-09-05 21:27 UTC (permalink / raw)
  To: buildroot

The helpers.mk file is no longer used by the Crosstool-NG backend, so
it is moved into the toolchain/toolchain-external/ directory.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 toolchain/{ => toolchain-external}/helpers.mk | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 rename toolchain/{ => toolchain-external}/helpers.mk (100%)

diff --git a/toolchain/helpers.mk b/toolchain/toolchain-external/helpers.mk
similarity index 100%
rename from toolchain/helpers.mk
rename to toolchain/toolchain-external/helpers.mk
-- 
1.8.1.2

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 05/11] toolchain: introduce a virtual package
  2013-09-05 21:27 [Buildroot] [RFCv1 00/11] Convert toolchain backends to packages to fix source/external-deps/legal-info Thomas Petazzoni
                   ` (3 preceding siblings ...)
  2013-09-05 21:27 ` [Buildroot] [RFCv1 04/11] toolchain: move helpers.mk into toolchain-external/ Thomas Petazzoni
@ 2013-09-05 21:27 ` Thomas Petazzoni
  2013-09-13 16:24   ` Luca Ceresoli
  2013-09-15 14:27   ` Thomas De Schampheleire
  2013-09-05 21:27 ` [Buildroot] [RFCv1 06/11] toolchain-buildroot: convert to the package infrastructure Thomas Petazzoni
                   ` (7 subsequent siblings)
  12 siblings, 2 replies; 49+ messages in thread
From: Thomas Petazzoni @ 2013-09-05 21:27 UTC (permalink / raw)
  To: buildroot

This commit introduces a virtual package called 'toolchain', located
in 'toolchain/toolchain', which simply depends on
'toolchain-buildroot' or 'toolchain-external' depending on the
selected toolchain backend.

For now, toolchain-buildroot and toolchain-external are still manual
make targets, but the following patches convert those backends to use
the package infrastructure as well.

In addition to this:

 * The main Makefile is modified to always make BASE_TARGETS point to
   this new toolchain virtual package.

 * The main Makefile is changed to include all the toolchain/*/*.mk
   files: the toolchain virtual package, and the toolchain-buildroot
   and toolchain-external directories.

 * The dependency of the toolchain on prepare dirs and dependencies is
   moved to the toolchain virtual package. It is moved as a
   prerequisite of the "toolchain-source" rule to ensure that all
   directories are prepared before we even start extracting the
   toolchain.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 Makefile                         | 18 +++---------------
 toolchain/toolchain/toolchain.mk | 18 ++++++++++++++++++
 2 files changed, 21 insertions(+), 15 deletions(-)
 create mode 100644 toolchain/toolchain/toolchain.mk

diff --git a/Makefile b/Makefile
index f64a101..f2430eb 100644
--- a/Makefile
+++ b/Makefile
@@ -222,11 +222,7 @@ GNU_HOST_NAME:=$(shell support/gnuconfig/config.guess)
 #
 ################################################################################
 
-ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
-BASE_TARGETS += toolchain-buildroot
-else ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
-BASE_TARGETS += toolchain-external
-endif
+BASE_TARGETS = toolchain
 
 TARGETS:=
 
@@ -316,11 +312,7 @@ include support/dependencies/dependencies.mk
 # We also need the various per-package makefiles, which also add
 # each selected package to TARGETS if that package was selected
 # in the .config file.
-ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
-include toolchain/toolchain-buildroot.mk
-else ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
-include toolchain/toolchain-external.mk
-endif
+include toolchain/*/*.mk
 
 # Include the package override file if one has been provided in the
 # configuration.
@@ -387,16 +379,12 @@ $(TARGETS_ALL): __real_tgt_%: $(BASE_TARGETS) %
 dirs: $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
 	$(HOST_DIR) $(BINARIES_DIR) $(STAMP_DIR)
 
-$(BASE_TARGETS): dirs $(HOST_DIR)/usr/share/buildroot/toolchainfile.cmake
-
 $(BUILD_DIR)/buildroot-config/auto.conf: $(BUILDROOT_CONFIG)
 	$(MAKE) $(EXTRAMAKEARGS) HOSTCC="$(HOSTCC_NOCCACHE)" HOSTCXX="$(HOSTCXX_NOCCACHE)" silentoldconfig
 
 prepare: $(BUILD_DIR)/buildroot-config/auto.conf
 
-toolchain: prepare dirs dependencies $(BASE_TARGETS)
-
-world: toolchain $(TARGETS_ALL)
+world: $(BASE_TARGETS) $(TARGETS_ALL)
 
 .PHONY: all world toolchain dirs clean distclean source outputmakefile \
 	legal-info legal-info-prepare legal-info-clean printvars \
diff --git a/toolchain/toolchain/toolchain.mk b/toolchain/toolchain/toolchain.mk
new file mode 100644
index 0000000..44ed629
--- /dev/null
+++ b/toolchain/toolchain/toolchain.mk
@@ -0,0 +1,18 @@
+################################################################################
+#
+# toolchain
+#
+################################################################################
+
+TOOLCHAIN_SOURCE =
+
+ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
+TOOLCHAIN_DEPENDENCIES += toolchain-buildroot
+else ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
+TOOLCHAIN_DEPENDENCIES += toolchain-external
+endif
+
+$(eval $(generic-package))
+
+toolchain-source: prepare dirs dependencies $(HOST_DIR)/usr/share/buildroot/toolchainfile.cmake
+
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 06/11] toolchain-buildroot: convert to the package infrastructure
  2013-09-05 21:27 [Buildroot] [RFCv1 00/11] Convert toolchain backends to packages to fix source/external-deps/legal-info Thomas Petazzoni
                   ` (4 preceding siblings ...)
  2013-09-05 21:27 ` [Buildroot] [RFCv1 05/11] toolchain: introduce a virtual package Thomas Petazzoni
@ 2013-09-05 21:27 ` Thomas Petazzoni
  2013-09-15 14:30   ` Thomas De Schampheleire
  2013-09-05 21:27 ` [Buildroot] [RFCv1 07/11] toolchain: intermediate .mk files no longer needed Thomas Petazzoni
                   ` (6 subsequent siblings)
  12 siblings, 1 reply; 49+ messages in thread
From: Thomas Petazzoni @ 2013-09-05 21:27 UTC (permalink / raw)
  To: buildroot

This commit converts the toolchain-buildroot logic to the package
infrastructure. The package is fairly simple as it only defines
BUILDROOT_LIBC, and depends on host-gcc-final to get the overall
internal toolchain build logic started.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 toolchain/toolchain-buildroot.mk                     |  9 ---------
 toolchain/toolchain-buildroot/toolchain-buildroot.mk | 17 +++++++++++++++++
 2 files changed, 17 insertions(+), 9 deletions(-)
 delete mode 100644 toolchain/toolchain-buildroot.mk
 create mode 100644 toolchain/toolchain-buildroot/toolchain-buildroot.mk

diff --git a/toolchain/toolchain-buildroot.mk b/toolchain/toolchain-buildroot.mk
deleted file mode 100644
index 3a05800..0000000
--- a/toolchain/toolchain-buildroot.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-# Triggerring the build of the host-gcc-final will automaticaly do the
-# build of binutils, uClibc, kernel headers and all the intermediate
-# gcc steps.
-
-include toolchain/helpers.mk
-
-BUILDROOT_LIBC = $(call qstrip,$(BR2_TOOLCHAIN_BUILDROOT_LIBC))
-
-toolchain-buildroot: host-gcc-final
diff --git a/toolchain/toolchain-buildroot/toolchain-buildroot.mk b/toolchain/toolchain-buildroot/toolchain-buildroot.mk
new file mode 100644
index 0000000..096a196
--- /dev/null
+++ b/toolchain/toolchain-buildroot/toolchain-buildroot.mk
@@ -0,0 +1,17 @@
+################################################################################
+#
+# toolchain-buildroot
+#
+################################################################################
+
+TOOLCHAIN_BUILDROOT_SOURCE =
+
+BUILDROOT_LIBC = $(call qstrip,$(BR2_TOOLCHAIN_BUILDROOT_LIBC))
+
+# Triggerring the build of the host-gcc-final will automaticaly do the
+# build of binutils, uClibc, kernel headers and all the intermediate
+# gcc steps.
+
+TOOLCHAIN_BUILDROOT_DEPENDENCIES = host-gcc-final
+
+$(eval $(generic-package))
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 07/11] toolchain: intermediate .mk files no longer needed
  2013-09-05 21:27 [Buildroot] [RFCv1 00/11] Convert toolchain backends to packages to fix source/external-deps/legal-info Thomas Petazzoni
                   ` (5 preceding siblings ...)
  2013-09-05 21:27 ` [Buildroot] [RFCv1 06/11] toolchain-buildroot: convert to the package infrastructure Thomas Petazzoni
@ 2013-09-05 21:27 ` Thomas Petazzoni
  2013-09-15 14:33   ` Thomas De Schampheleire
  2013-09-05 21:27 ` [Buildroot] [RFCv1 08/11] package: package-based implementation of source, external-deps and legal-info Thomas Petazzoni
                   ` (5 subsequent siblings)
  12 siblings, 1 reply; 49+ messages in thread
From: Thomas Petazzoni @ 2013-09-05 21:27 UTC (permalink / raw)
  To: buildroot

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 toolchain/toolchain-external.mk | 4 ----
 1 file changed, 4 deletions(-)
 delete mode 100644 toolchain/toolchain-external.mk

diff --git a/toolchain/toolchain-external.mk b/toolchain/toolchain-external.mk
deleted file mode 100644
index 2f43db7..0000000
--- a/toolchain/toolchain-external.mk
+++ /dev/null
@@ -1,4 +0,0 @@
-# Required includes for the external toolchain backend
-
-include toolchain/helpers.mk
-include toolchain/toolchain-external/ext-tool.mk
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 08/11] package: package-based implementation of source, external-deps and legal-info
  2013-09-05 21:27 [Buildroot] [RFCv1 00/11] Convert toolchain backends to packages to fix source/external-deps/legal-info Thomas Petazzoni
                   ` (6 preceding siblings ...)
  2013-09-05 21:27 ` [Buildroot] [RFCv1 07/11] toolchain: intermediate .mk files no longer needed Thomas Petazzoni
@ 2013-09-05 21:27 ` Thomas Petazzoni
  2013-09-15 19:29   ` Thomas De Schampheleire
  2013-09-05 21:27 ` [Buildroot] [RFCv1 09/11] package: add a <pkg>_SOURCE_ADDONS variable Thomas Petazzoni
                   ` (4 subsequent siblings)
  12 siblings, 1 reply; 49+ messages in thread
From: Thomas Petazzoni @ 2013-09-05 21:27 UTC (permalink / raw)
  To: buildroot

Until now, the make source, make external-deps and make legal-info
where relying on enumerating the packages by looking at $(TARGETS)
which contains only the target packages and not the host
packages. Thanks to the TARGET_HOST_DEPS and HOST_DEPS variables, it
was doing a two-level resolution of host package dependencies, but it
was not entirely correct since the dependency chain might be deeper
than that: some packages could be missed.

From an idea of Arnout, this patch introduces in each package
additional targets <pkg>-all-source and <pkg>-all-legal-info that
executes the 'source' and 'legal-info' targets for this package and
all its dependencies, be they target or host dependencies.

This provides a much cleaner implementation of this mechanism, which
is also more robust.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 Makefile               | 26 +++-----------------------
 package/pkg-generic.mk |  4 ++++
 2 files changed, 7 insertions(+), 23 deletions(-)

diff --git a/Makefile b/Makefile
index f2430eb..8fe0209 100644
--- a/Makefile
+++ b/Makefile
@@ -348,30 +348,10 @@ include fs/common.mk
 TARGETS+=target-post-image
 
 TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS))
-TARGETS_SOURCE:=$(patsubst %,%-source,$(TARGETS) $(BASE_TARGETS))
+TARGETS_SOURCE:=$(patsubst %,%-all-source,$(TARGETS) $(BASE_TARGETS))
 TARGETS_DIRCLEAN:=$(patsubst %,%-dirclean,$(TARGETS))
 TARGETS_ALL:=$(patsubst %,__real_tgt_%,$(TARGETS))
-
-# host-* dependencies have to be handled specially, as those aren't
-# visible in Kconfig and hence not added to a variable like TARGETS.
-# instead, find all the host-* targets listed in each <PKG>_DEPENDENCIES
-# variable for each enabled target.
-# Notice: this only works for newstyle gentargets/autotargets packages
-TARGETS_HOST_DEPS = $(sort $(filter host-%,$(foreach dep,\
-		$(addsuffix _DEPENDENCIES,$(call UPPERCASE,$(TARGETS))),\
-		$($(dep)))))
-# Host packages can in turn have their own dependencies. Likewise find
-# all the package names listed in the HOST_<PKG>_DEPENDENCIES for each
-# host package found above. Ideally this should be done recursively until
-# no more packages are found, but that's hard to do in make, so limit to
-# 1 level for now.
-HOST_DEPS = $(sort $(foreach dep,\
-		$(addsuffix _DEPENDENCIES,$(call UPPERCASE,$(TARGETS_HOST_DEPS))),\
-		$($(dep))))
-HOST_SOURCE += $(addsuffix -source,$(sort $(TARGETS_HOST_DEPS) $(HOST_DEPS)))
-
-TARGETS_LEGAL_INFO:=$(patsubst %,%-legal-info,\
-		$(TARGETS) $(BASE_TARGETS) $(TARGETS_HOST_DEPS) $(HOST_DEPS))))
+TARGETS_LEGAL_INFO:=$(patsubst %,%-all-legal-info,$(TARGETS) $(BASE_TARGETS))
 
 # all targets depend on the crosscompiler and it's prerequisites
 $(TARGETS_ALL): __real_tgt_%: $(BASE_TARGETS) %
@@ -564,7 +544,7 @@ target-post-image:
 toolchain-eclipse-register:
 	./support/scripts/eclipse-register-toolchain `readlink -f $(O)` $(notdir $(TARGET_CROSS)) $(BR2_ARCH)
 
-source: dirs $(TARGETS_SOURCE) $(HOST_SOURCE)
+source: dirs $(TARGETS_SOURCE)
 
 external-deps:
 	@$(MAKE) -Bs DL_MODE=SHOW_EXTERNAL_DEPS $(EXTRAMAKEARGS) source | sort -u
diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
index 2e2e66f..b6f0bdd 100644
--- a/package/pkg-generic.mk
+++ b/package/pkg-generic.mk
@@ -418,6 +418,10 @@ endif
 $(1)-show-depends:
 			@echo $$($(2)_DEPENDENCIES)
 
+$(1)-all-source: 	$(foreach p,$($(2)_DEPENDENCIES),$(p)-all-source) $(1)-source
+
+$(1)-all-legal-info:	$(foreach p,$($(2)_DEPENDENCIES),$(p)-all-legal-info) $(1)-legal-info
+
 $(1)-uninstall:		$(1)-configure $$($(2)_TARGET_UNINSTALL)
 
 $(1)-clean:		$(1)-uninstall \
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 09/11] package: add a <pkg>_SOURCE_ADDONS variable
  2013-09-05 21:27 [Buildroot] [RFCv1 00/11] Convert toolchain backends to packages to fix source/external-deps/legal-info Thomas Petazzoni
                   ` (7 preceding siblings ...)
  2013-09-05 21:27 ` [Buildroot] [RFCv1 08/11] package: package-based implementation of source, external-deps and legal-info Thomas Petazzoni
@ 2013-09-05 21:27 ` Thomas Petazzoni
  2013-09-16 13:39   ` Thomas De Schampheleire
  2013-09-05 21:27 ` [Buildroot] [RFCv1 10/11] toolchain-external: convert to the package infrastructure Thomas Petazzoni
                   ` (3 subsequent siblings)
  12 siblings, 1 reply; 49+ messages in thread
From: Thomas Petazzoni @ 2013-09-05 21:27 UTC (permalink / raw)
  To: buildroot

Converting the external toolchain logic into a package raises a very
special use case that wasn't handled by the package infrastructure:
the Blackfin toolchain is delivered as two tarballs instead of
one. Unfortunately <pkg>_SOURCE only allows to pass one tarball name.

However, we really want both tarballs to be known by the package
infrastructure, so that the normal 'source' and 'external-deps'
mechanism work fine.

In order to achieve this, we add a <pkg>_SOURCE_ADDONS variable, which
allows a package to list other stuff it would like to see downloaded,
but that are otherwise not used by the package infrastructure itself:
it is up to the package to do it by itself.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 package/pkg-generic.mk | 1 +
 1 file changed, 1 insertion(+)

diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
index b6f0bdd..2ce615f 100644
--- a/package/pkg-generic.mk
+++ b/package/pkg-generic.mk
@@ -40,6 +40,7 @@ ifeq ($(DL_MODE),DOWNLOAD)
 	fi
 endif
 	$(if $($(PKG)_SOURCE),$(call DOWNLOAD,$($(PKG)_SITE:/=)/$($(PKG)_SOURCE)))
+	$(foreach p,$($(PKG)_SOURCE_ADDONS),$(call DOWNLOAD,$($(PKG)_SITE:/=)/$(p))$(sep))
 	$(foreach p,$($(PKG)_PATCH),$(call DOWNLOAD,$($(PKG)_SITE:/=)/$(p))$(sep))
 	$(foreach hook,$($(PKG)_POST_DOWNLOAD_HOOKS),$(call $(hook))$(sep))
 ifeq ($(DL_MODE),DOWNLOAD)
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 10/11] toolchain-external: convert to the package infrastructure
  2013-09-05 21:27 [Buildroot] [RFCv1 00/11] Convert toolchain backends to packages to fix source/external-deps/legal-info Thomas Petazzoni
                   ` (8 preceding siblings ...)
  2013-09-05 21:27 ` [Buildroot] [RFCv1 09/11] package: add a <pkg>_SOURCE_ADDONS variable Thomas Petazzoni
@ 2013-09-05 21:27 ` Thomas Petazzoni
  2013-09-16 13:29   ` Thomas De Schampheleire
  2013-09-27 14:24   ` Luca Ceresoli
  2013-09-05 21:27 ` [Buildroot] [RFCv1 11/11] dependencies: remove useless targets Thomas Petazzoni
                   ` (2 subsequent siblings)
  12 siblings, 2 replies; 49+ messages in thread
From: Thomas Petazzoni @ 2013-09-05 21:27 UTC (permalink / raw)
  To: buildroot

This commit converts the 'toolchain-external' logic to the package
infrastructure.

The TOOLCHAIN_EXTERNAL_DIR variable (which points to where the
toolchain is located) is renamed to TOOLCHAIN_EXTERNAL_INSTALL_DIR,
because the former conflicts with the package infrastructure (which
defines the <pkg>_DIR variable for each package as pointing to its
build directory).

The new _SOURCE_ADDONS mechanism is used for Blackfin toolchains.

The extract, configuration and installation steps are converted inside
the <pkg>_EXTRACT_CMDS, <pkg>_CONFIGURE_CMDS and
<pkg>_INSTALL_STAGING_CMDS.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 .../{ext-tool.mk => toolchain-external.mk}         | 154 +++++++++------------
 1 file changed, 69 insertions(+), 85 deletions(-)
 rename toolchain/toolchain-external/{ext-tool.mk => toolchain-external.mk} (86%)

diff --git a/toolchain/toolchain-external/ext-tool.mk b/toolchain/toolchain-external/toolchain-external.mk
similarity index 86%
rename from toolchain/toolchain-external/ext-tool.mk
rename to toolchain/toolchain-external/toolchain-external.mk
index fbcbe6c..4817cb6 100644
--- a/toolchain/toolchain-external/ext-tool.mk
+++ b/toolchain/toolchain-external/toolchain-external.mk
@@ -1,5 +1,11 @@
+################################################################################
 #
-# This file implements the support for external toolchains, i.e
+# toolchain-external
+#
+################################################################################
+
+#
+# This package implements the support for external toolchains, i.e
 # toolchains that have not been produced by Buildroot itself and that
 # Buildroot can download from the Web or that are already available on
 # the system on which Buildroot runs. So far, we have tested this
@@ -14,7 +20,7 @@
 # The basic principle is the following
 #
 #  1. If the toolchain is not pre-installed, download and extract it
-#  in $(TOOLCHAIN_EXTERNAL_DIR).
+#  in $(TOOLCHAIN_EXTERNAL_INSTALL_DIR).
 #
 #  2. For all external toolchains, perform some checks on the
 #  conformity between the toolchain configuration described in the
@@ -105,21 +111,21 @@ endif # ! no threads
 
 TOOLCHAIN_EXTERNAL_PREFIX=$(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PREFIX))
 ifeq ($(BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD),y)
-TOOLCHAIN_EXTERNAL_DIR=$(HOST_DIR)/opt/ext-toolchain
+TOOLCHAIN_EXTERNAL_INSTALL_DIR=$(HOST_DIR)/opt/ext-toolchain
 else
-TOOLCHAIN_EXTERNAL_DIR=$(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PATH))
+TOOLCHAIN_EXTERNAL_INSTALL_DIR=$(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PATH))
 endif
 
-ifeq ($(TOOLCHAIN_EXTERNAL_DIR),)
+ifeq ($(TOOLCHAIN_EXTERNAL_INSTALL_DIR),)
 ifneq ($(TOOLCHAIN_EXTERNAL_PREFIX),)
 # if no path set, figure it out from path
 TOOLCHAIN_EXTERNAL_BIN := $(shell dirname $(shell which $(TOOLCHAIN_EXTERNAL_PREFIX)-gcc))
 endif
 else
 ifeq ($(BR2_bfin),y)
-TOOLCHAIN_EXTERNAL_BIN := $(TOOLCHAIN_EXTERNAL_DIR)/$(TOOLCHAIN_EXTERNAL_PREFIX)/bin
+TOOLCHAIN_EXTERNAL_BIN := $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/$(TOOLCHAIN_EXTERNAL_PREFIX)/bin
 else
-TOOLCHAIN_EXTERNAL_BIN := $(TOOLCHAIN_EXTERNAL_DIR)/bin
+TOOLCHAIN_EXTERNAL_BIN := $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/bin
 endif
 endif
 
@@ -203,10 +209,6 @@ TOOLCHAIN_EXTERNAL_CFLAGS += -msoft-float
 TOOLCHAIN_EXTERNAL_WRAPPER_ARGS += -DBR_SOFTFLOAT=1
 endif
 
-ifeq ($(BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD),y)
-TOOLCHAIN_EXTERNAL_DEPENDENCIES = $(TOOLCHAIN_EXTERNAL_DIR)/.extracted
-endif
-
 ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_ARM201109),y)
 TOOLCHAIN_EXTERNAL_SITE = http://sourcery.mentor.com/public/gnu_toolchain/arm-none-linux-gnueabi/
 TOOLCHAIN_EXTERNAL_SOURCE = arm-2011.09-70-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
@@ -220,15 +222,15 @@ else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV7A_201109),y)
 TOOLCHAIN_EXTERNAL_SITE = http://software-dl.ti.com/sdoemb/sdoemb_public_sw/arago_toolchain/2011_09/exports/
 TOOLCHAIN_EXTERNAL_SOURCE = arago-2011.09-armv7a-linux-gnueabi-sdk.tar.bz2
 define TOOLCHAIN_EXTERNAL_FIXUP_CMDS
-	mv $(@D)/arago-2011.09/armv7a/* $(@D)/
-	rm -rf $(@D)/arago-2011.09/
+	mv $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/arago-2011.09/armv7a/* $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/
+	rm -rf $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/arago-2011.09/
 endef
 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_ARAGO_ARMV5TE_201109),y)
 TOOLCHAIN_EXTERNAL_SITE = http://software-dl.ti.com/sdoemb/sdoemb_public_sw/arago_toolchain/2011_09/exports/
 TOOLCHAIN_EXTERNAL_SOURCE = arago-2011.09-armv5te-linux-gnueabi-sdk.tar.bz2
 define TOOLCHAIN_EXTERNAL_FIXUP_CMDS
-	mv $(@D)/arago-2011.09/armv5te/* $(@D)/
-	rm -rf $(@D)/arago-2011.09/
+	mv $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/arago-2011.09/armv5te/* $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/
+	rm -rf $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)/arago-2011.09/
 endef
 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_LINARO_2013_04),y)
 TOOLCHAIN_EXTERNAL_SITE = https://releases.linaro.org/13.04/components/toolchain/binaries/
@@ -282,17 +284,13 @@ else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_X86_201209),y)
 TOOLCHAIN_EXTERNAL_SITE = https://sourcery.mentor.com/public/gnu_toolchain/i686-pc-linux-gnu/
 TOOLCHAIN_EXTERNAL_SOURCE = ia32-2012.09-62-i686-pc-linux-gnu-i386-linux.tar.bz2
 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2012R1),y)
-TOOLCHAIN_EXTERNAL_SITE_1   = http://blackfin.uclinux.org/gf/download/frsrelease/559/9858/
-TOOLCHAIN_EXTERNAL_SOURCE_1 = blackfin-toolchain-2012R1-RC2.i386.tar.bz2
-TOOLCHAIN_EXTERNAL_SITE_2   = http://blackfin.uclinux.org/gf/download/frsrelease/559/9866/
-TOOLCHAIN_EXTERNAL_SOURCE_2 = blackfin-toolchain-uclibc-full-2012R1-RC2.i386.tar.bz2
-TOOLCHAIN_EXTERNAL_SOURCE   = $(TOOLCHAIN_EXTERNAL_SOURCE_1) $(TOOLCHAIN_EXTERNAL_SOURCE_2)
+TOOLCHAIN_EXTERNAL_SITE = http://downloads.sourceforge.net/projects/adi-toolchain/files/2012R1-BF60X/2012R1-RC2-BF60X/i386/
+TOOLCHAIN_EXTERNAL_SOURCE = blackfin-toolchain-2012R1-RC2.i386.tar.bz2
+TOOLCHAIN_EXTERNAL_SOURCE_ADDONS = blackfin-toolchain-uclibc-full-2012R1-RC2.i386.tar.bz2
 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2012R2),y)
-TOOLCHAIN_EXTERNAL_SITE_1   = http://blackfin.uclinux.org/gf/download/frsrelease/588/10139/
-TOOLCHAIN_EXTERNAL_SOURCE_1 = blackfin-toolchain-2012R2-RC2.i386.tar.bz2
-TOOLCHAIN_EXTERNAL_SITE_2   = http://blackfin.uclinux.org/gf/download/frsrelease/588/10147/
-TOOLCHAIN_EXTERNAL_SOURCE_2 = blackfin-toolchain-uclibc-full-2012R2-RC2.i386.tar.bz2
-TOOLCHAIN_EXTERNAL_SOURCE   = $(TOOLCHAIN_EXTERNAL_SOURCE_1) $(TOOLCHAIN_EXTERNAL_SOURCE_2)
+TOOLCHAIN_EXTERNAL_SITE   = http://downloads.sourceforge.net/project/adi-toolchain/2012R2/2012R2-RC2/i386/
+TOOLCHAIN_EXTERNAL_SOURCE = blackfin-toolchain-2012R2-RC2.i386.tar.bz2
+TOOLCHAIN_EXTERNAL_SOURCE_ADDONS = blackfin-toolchain-uclibc-full-2012R2-RC2.i386.tar.bz2
 else ifeq ($(BR2_TOOLCHAIN_EXTERNAL_XILINX_MICROBLAZEEL_14_3),y)
 TOOLCHAIN_EXTERNAL_SITE = http://sources.buildroot.net/
 TOOLCHAIN_EXTERNAL_SOURCE = lin32-microblazeel-unknown-linux-gnu_14.3_early.tar.xz
@@ -318,53 +316,38 @@ else
 # Custom toolchain
 TOOLCHAIN_EXTERNAL_SITE = $(dir $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_URL)))
 TOOLCHAIN_EXTERNAL_SOURCE = $(notdir $(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_URL)))
-
-# A value must be set (even if unused), otherwise the
-# $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE) rule would override the main
-# $(DL_DIR) rule
-ifeq (,$(TOOLCHAIN_EXTERNAL_SOURCE))
-TOOLCHAIN_EXTERNAL_SOURCE = none
-endif
 endif
 
+TOOLCHAIN_EXTERNAL_INSTALL_STAGING = YES
+
+ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2012R1)$(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2012R2),y)
 # 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.
-ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2012R1)$(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2012R2),y)
-$(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE_1):
-	$(call DOWNLOAD,$(TOOLCHAIN_EXTERNAL_SITE_1:/=)/$(TOOLCHAIN_EXTERNAL_SOURCE_1))
-
-$(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE_2):
-	$(call DOWNLOAD,$(TOOLCHAIN_EXTERNAL_SITE_2:/=)/$(TOOLCHAIN_EXTERNAL_SOURCE_2))
-
-$(TOOLCHAIN_EXTERNAL_DIR)/.extracted: $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE_1) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE_2)
-	mkdir -p $(@D)
-	$(INFLATE$(suffix $(TOOLCHAIN_EXTERNAL_SOURCE_1))) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE_1) | \
-		$(TAR) $(TAR_STRIP_COMPONENTS)=3 --hard-dereference -C $(@D) $(TAR_OPTIONS) -
-	$(INFLATE$(suffix $(TOOLCHAIN_EXTERNAL_SOURCE_2))) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE_2) | \
-		$(TAR) $(TAR_STRIP_COMPONENTS)=3 --hard-dereference -C $(@D) $(TAR_OPTIONS) -
-	$(Q)touch $@
-else
-# Download and extraction of a toolchain
-$(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE):
-	$(call DOWNLOAD,$(TOOLCHAIN_EXTERNAL_SITE)$(TOOLCHAIN_EXTERNAL_SOURCE),$(TOOLCHAIN_EXTERNAL_SOURCE))
-
-$(TOOLCHAIN_EXTERNAL_DIR)/.extracted: $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE)
-	mkdir -p $(@D)
-	$(INFLATE$(suffix $(TOOLCHAIN_EXTERNAL_SOURCE))) $^ | \
-		$(TAR) $(TAR_STRIP_COMPONENTS)=1 --exclude='usr/lib/locale/*' -C $(@D) $(TAR_OPTIONS) -
+define TOOLCHAIN_EXTERNAL_EXTRACT_CMDS
+	mkdir -p $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)
+	$(INFLATE$(suffix $(TOOLCHAIN_EXTERNAL_SOURCE))) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE) | \
+		$(TAR) $(TAR_STRIP_COMPONENTS)=3 --hard-dereference -C $(TOOLCHAIN_EXTERNAL_INSTALL_DIR) $(TAR_OPTIONS) -
+	$(INFLATE$(suffix $(TOOLCHAIN_EXTERNAL_SOURCE_ADDONS))) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE_ADDONS) | \
+		$(TAR) $(TAR_STRIP_COMPONENTS)=3 --hard-dereference -C $(TOOLCHAIN_EXTERNAL_INSTALL_DIR) $(TAR_OPTIONS) -
+endef
+else ifneq ($(TOOLCHAIN_EXTERNAL_SOURCE),)
+# Normal handling of toolchain tarball extraction.
+define TOOLCHAIN_EXTERNAL_EXTRACT_CMDS
+	mkdir -p $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)
+	$(INFLATE$(suffix $(TOOLCHAIN_EXTERNAL_SOURCE))) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE) | \
+		$(TAR) $(TAR_STRIP_COMPONENTS)=1 --exclude='usr/lib/locale/*' -C $(TOOLCHAIN_EXTERNAL_INSTALL_DIR) $(TAR_OPTIONS) -
 	$(TOOLCHAIN_EXTERNAL_FIXUP_CMDS)
-	$(Q)touch $@
+endef
 endif
 
 # Checks for an already installed toolchain: check the toolchain
 # location, check that it supports sysroot, and then verify that it
 # matches the configuration provided in Buildroot: ABI, C++ support,
 # type of C library and all C library features.
-$(STAMP_DIR)/ext-toolchain-checked: $(TOOLCHAIN_EXTERNAL_DEPENDENCIES)
-	@$(call MESSAGE,"Checking external toolchain settings")
+define TOOLCHAIN_EXTERNAL_CONFIGURE_CMDS
 	$(Q)$(call check_cross_compiler_exists,$(TOOLCHAIN_EXTERNAL_CC))
 	$(Q)LIBC_A_LOCATION=`readlink -f $$(LANG=C $(TOOLCHAIN_EXTERNAL_CC) -print-file-name=libc.a)` ; \
 	SYSROOT_DIR=`echo $${LIBC_A_LOCATION} | sed -r -e 's:usr/lib(32|64)?/(.*/)?libc\.a::'` ; \
@@ -385,7 +368,7 @@ $(STAMP_DIR)/ext-toolchain-checked: $(TOOLCHAIN_EXTERNAL_DEPENDENCIES)
 	else \
 		$(call check_glibc,$${SYSROOT_DIR}) ; \
 	fi
-	$(Q)touch $@
+endef
 
 # Integration of the toolchain into Buildroot: find the main sysroot
 # and the variant-specific sysroot, then copy the needed libraries to
@@ -435,7 +418,7 @@ $(STAMP_DIR)/ext-toolchain-checked: $(TOOLCHAIN_EXTERNAL_DEPENDENCIES)
 #                       considered when searching libraries for copy
 #                       to the target filesystem.
 
-$(STAMP_DIR)/ext-toolchain-installed: $(STAMP_DIR)/ext-toolchain-checked
+define TOOLCHAIN_EXTERNAL_INSTALL_CORE
 	$(Q)LIBC_A_LOCATION=`readlink -f $$(LANG=C $(TOOLCHAIN_EXTERNAL_CC) -print-file-name=libc.a)` ; \
 	SYSROOT_DIR=`echo $${LIBC_A_LOCATION} | sed -r -e 's:usr/lib(32|64)?/(.*/)?libc\.a::'` ; \
 	if test -z "$${SYSROOT_DIR}" ; then \
@@ -478,14 +461,15 @@ $(STAMP_DIR)/ext-toolchain-installed: $(STAMP_DIR)/ext-toolchain-checked
 			echo "Could not find gdbserver in external toolchain" ; \
 			exit 1 ; \
 		fi ; \
-	fi ; \
-	touch $@
+	fi
+endef
 
 # 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.
-$(STAMP_DIR)/ext-toolchain-bfin-fdpic-shared-installed: $(STAMP_DIR)/ext-toolchain-checked
+ifeq ($(BR2_BFIN_INSTALL_FDPIC_SHARED),y)
+define TOOLCHAIN_EXTERNAL_INSTALL_BFIN_FDPIC
 	$(Q)$(call MESSAGE,"Install external toolchain FDPIC libraries to target...") ; \
 	FDPIC_EXTERNAL_CC=$(dir $(TOOLCHAIN_EXTERNAL_CC))/../../bfin-linux-uclibc/bin/bfin-linux-uclibc-gcc ; \
 	FDPIC_LIBC_A_LOCATION=`readlink -f $$(LANG=C $${FDPIC_EXTERNAL_CC} $(TOOLCHAIN_EXTERNAL_CFLAGS) -print-file-name=libc.a)` ; \
@@ -503,8 +487,9 @@ $(STAMP_DIR)/ext-toolchain-bfin-fdpic-shared-installed: $(STAMP_DIR)/ext-toolcha
 	done ; \
 	for libs in $(USR_LIB_EXTERNAL_LIBS); do \
 	        $(call copy_toolchain_lib_root,$${FDPIC_SYSROOT_DIR},$${FDPIC_SUPPORT_LIB_DIR},$${FDPIC_LIB_DIR},$$libs,/usr/lib); \
-	done ; \
-	touch $@
+	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
@@ -512,36 +497,28 @@ $(STAMP_DIR)/ext-toolchain-bfin-fdpic-shared-installed: $(STAMP_DIR)/ext-toolcha
 # 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.
-$(STAMP_DIR)/ext-toolchain-bfin-shared-flat-installed: $(STAMP_DIR)/ext-toolchain-checked
+ifeq ($(BR2_BFIN_INSTALL_FLAT_SHARED),y)
+define TOOLCHAIN_EXTERNAL_INSTALL_BFIN_FLAT
 	$(Q)$(call MESSAGE,"Install external toolchain FLAT libraries to target...") ; \
 	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 ; \
-	touch $@
-
-TOOLCHAIN_EXTERNAL_INSTALL = $(STAMP_DIR)/ext-toolchain-installed
-
-ifeq ($(BR2_BFIN_INSTALL_FDPIC_SHARED),y)
-TOOLCHAIN_EXTERNAL_INSTALL += $(STAMP_DIR)/ext-toolchain-bfin-fdpic-shared-installed
-endif
-
-ifeq ($(BR2_BFIN_INSTALL_FLAT_SHARED),y)
-TOOLCHAIN_EXTERNAL_INSTALL += $(STAMP_DIR)/ext-toolchain-bfin-shared-flat-installed
+	fi
+endef
 endif
 
 # Build toolchain wrapper for preprocessor, C and C++ compiler and setup
 # symlinks for everything else. Skip gdb symlink when we are building our
 # own gdb to prevent two gdb's in output/host/usr/bin.
-$(HOST_DIR)/usr/bin/ext-toolchain-wrapper: $(TOOLCHAIN_EXTERNAL_INSTALL)
+define TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER
 	$(Q)$(call MESSAGE,"Building ext-toolchain wrapper")
 	mkdir -p $(HOST_DIR)/usr/bin; cd $(HOST_DIR)/usr/bin; \
 	for i in $(TOOLCHAIN_EXTERNAL_CROSS)*; do \
 		base=$${i##*/}; \
 		case "$$base" in \
 		*cc|*cc-*|*++|*++-*|*cpp) \
-			ln -sf $(@F) $$base; \
+			ln -sf ext-toolchain-wrapper $$base; \
 			;; \
 		*gdb|*gdbtui) \
 			if test "$(BR2_PACKAGE_HOST_GDB)" != "y"; then \
@@ -556,11 +533,18 @@ $(HOST_DIR)/usr/bin/ext-toolchain-wrapper: $(TOOLCHAIN_EXTERNAL_INSTALL)
 	# We use --hash-style=both to increase the compatibility of
 	# the generated binary with older platforms
 	$(HOSTCC) $(HOST_CFLAGS) $(TOOLCHAIN_EXTERNAL_WRAPPER_ARGS) -s -Wl,--hash-style=both \
-		toolchain/toolchain-external/ext-toolchain-wrapper.c -o $@
+		toolchain/toolchain-external/ext-toolchain-wrapper.c \
+		-o $(HOST_DIR)/usr/bin/ext-toolchain-wrapper
+endef
 
-toolchain-external: dependencies $(HOST_DIR)/usr/bin/ext-toolchain-wrapper
+# Even though we're installing things in both the staging, the host
+# and the target directory, we do everything within the
+# install-staging step, arbitrarily.
+define TOOLCHAIN_EXTERNAL_INSTALL_STAGING_CMDS
+	$(TOOLCHAIN_EXTERNAL_INSTALL_CORE)
+	$(TOOLCHAIN_EXTERNAL_INSTALL_BFIN_FDPIC)
+	$(TOOLCHAIN_EXTERNAL_INSTALL_BFIN_FLAT)
+	$(TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER)
+endef
 
-ifeq ($(BR2_TOOLCHAIN_EXTERNAL_DOWNLOAD),y)
-# download ext toolchain if so configured
-toolchain-external-source: $(addprefix $(DL_DIR)/,$(TOOLCHAIN_EXTERNAL_SOURCE))
-endif
+$(eval $(generic-package))
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 11/11] dependencies: remove useless targets
  2013-09-05 21:27 [Buildroot] [RFCv1 00/11] Convert toolchain backends to packages to fix source/external-deps/legal-info Thomas Petazzoni
                   ` (9 preceding siblings ...)
  2013-09-05 21:27 ` [Buildroot] [RFCv1 10/11] toolchain-external: convert to the package infrastructure Thomas Petazzoni
@ 2013-09-05 21:27 ` Thomas Petazzoni
  2013-09-06  8:28 ` [Buildroot] [RFCv1 00/11] Convert toolchain backends to packages to fix source/external-deps/legal-info Fabio Porcedda
  2013-09-06  8:57 ` Jérôme Pouiller
  12 siblings, 0 replies; 49+ messages in thread
From: Thomas Petazzoni @ 2013-09-05 21:27 UTC (permalink / raw)
  To: buildroot

The dependencies-source, dependencies-clean and dependencies-dirclean
targets are not needed, as long as 'dependencies' is not used in the
<pkg>_DEPENDENCIES of a package.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
 support/dependencies/dependencies.mk | 8 --------
 1 file changed, 8 deletions(-)

diff --git a/support/dependencies/dependencies.mk b/support/dependencies/dependencies.mk
index 4a220e0..cf0c189 100644
--- a/support/dependencies/dependencies.mk
+++ b/support/dependencies/dependencies.mk
@@ -33,14 +33,6 @@ dependencies: HOSTCC=$(HOSTCC_NOCCACHE)
 dependencies: HOSTCXX=$(HOSTCXX_NOCCACHE)
 dependencies: core-dependencies $(DEPENDENCIES_HOST_PREREQ)
 
-dependencies-source:
-
-dependencies-clean:
-	rm -f $(SSTRIP_TARGET)
-
-dependencies-dirclean:
-	true
-
 ################################################################################
 #
 # Toplevel Makefile options
-- 
1.8.1.2

^ permalink raw reply related	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 00/11] Convert toolchain backends to packages to fix source/external-deps/legal-info
  2013-09-05 21:27 [Buildroot] [RFCv1 00/11] Convert toolchain backends to packages to fix source/external-deps/legal-info Thomas Petazzoni
                   ` (10 preceding siblings ...)
  2013-09-05 21:27 ` [Buildroot] [RFCv1 11/11] dependencies: remove useless targets Thomas Petazzoni
@ 2013-09-06  8:28 ` Fabio Porcedda
  2013-09-06  8:38   ` Thomas Petazzoni
  2013-09-06 12:37   ` Ryan Barnett
  2013-09-06  8:57 ` Jérôme Pouiller
  12 siblings, 2 replies; 49+ messages in thread
From: Fabio Porcedda @ 2013-09-06  8:28 UTC (permalink / raw)
  To: buildroot

On Thu, Sep 5, 2013 at 11:27 PM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> Hello,

Hi Thomas,

> <snip>
>
> In the long term, I'm thinking of:
>
>  (1) Making 'toolchain' a dependency of all target packages, because
>      it's really what it is.

About that i've already sent a patch "package: add toolchain
dependency to inner-generic-package:
http://patchwork.ozlabs.org/patch/237887/

I will rebase and send the patch after i sent the v3 for the top-level
parallel make.

> <snip>

Best regards
-- 
Fabio Porcedda

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 00/11] Convert toolchain backends to packages to fix source/external-deps/legal-info
  2013-09-06  8:28 ` [Buildroot] [RFCv1 00/11] Convert toolchain backends to packages to fix source/external-deps/legal-info Fabio Porcedda
@ 2013-09-06  8:38   ` Thomas Petazzoni
  2013-09-06  8:50     ` Fabio Porcedda
  2013-09-06 12:37   ` Ryan Barnett
  1 sibling, 1 reply; 49+ messages in thread
From: Thomas Petazzoni @ 2013-09-06  8:38 UTC (permalink / raw)
  To: buildroot

Dear Fabio Porcedda,

On Fri, 6 Sep 2013 10:28:32 +0200, Fabio Porcedda wrote:

> > In the long term, I'm thinking of:
> >
> >  (1) Making 'toolchain' a dependency of all target packages, because
> >      it's really what it is.
> 
> About that i've already sent a patch "package: add toolchain
> dependency to inner-generic-package:
> http://patchwork.ozlabs.org/patch/237887/
> 
> I will rebase and send the patch after i sent the v3 for the top-level
> parallel make.

Seems right, but it should remove "toolchain" from being pulled in the
main Makefile. If all target packages already depend on it, there's no
longer a reason to have "toolchain" be a special case target handled by
the main Makefile (unless I'm missing something).

Best regards,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 00/11] Convert toolchain backends to packages to fix source/external-deps/legal-info
  2013-09-06  8:38   ` Thomas Petazzoni
@ 2013-09-06  8:50     ` Fabio Porcedda
  0 siblings, 0 replies; 49+ messages in thread
From: Fabio Porcedda @ 2013-09-06  8:50 UTC (permalink / raw)
  To: buildroot

On Fri, Sep 6, 2013 at 10:38 AM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> Dear Fabio Porcedda,
>
> On Fri, 6 Sep 2013 10:28:32 +0200, Fabio Porcedda wrote:
>
>> > In the long term, I'm thinking of:
>> >
>> >  (1) Making 'toolchain' a dependency of all target packages, because
>> >      it's really what it is.
>>
>> About that i've already sent a patch "package: add toolchain
>> dependency to inner-generic-package:
>> http://patchwork.ozlabs.org/patch/237887/
>>
>> I will rebase and send the patch after i sent the v3 for the top-level
>> parallel make.
>
> Seems right, but it should remove "toolchain" from being pulled in the
> main Makefile. If all target packages already depend on it, there's no
> longer a reason to have "toolchain" be a special case target handled by
> the main Makefile (unless I'm missing something).

You are right i will try to do that, if i remember correctly removing
the toolchain depency in the main makefile give some building issue,
maybe some non-package stuff still depends on it or at least on a part
of it like "prepare dirs dependencies".

Maybe the correct solution is to have as dependency a "base" target
without pulling the whole toolchain.

Best regards
-- 
Fabio Porcedda

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 00/11] Convert toolchain backends to packages to fix source/external-deps/legal-info
  2013-09-05 21:27 [Buildroot] [RFCv1 00/11] Convert toolchain backends to packages to fix source/external-deps/legal-info Thomas Petazzoni
                   ` (11 preceding siblings ...)
  2013-09-06  8:28 ` [Buildroot] [RFCv1 00/11] Convert toolchain backends to packages to fix source/external-deps/legal-info Fabio Porcedda
@ 2013-09-06  8:57 ` Jérôme Pouiller
  2013-09-06  9:05   ` Thomas Petazzoni
  12 siblings, 1 reply; 49+ messages in thread
From: Jérôme Pouiller @ 2013-09-06  8:57 UTC (permalink / raw)
  To: buildroot

On 2013-09-05 23:27, Thomas Petazzoni wrote:
> Hello,
>
> The final goal of this patch set is to get 'make source' and 'make
> external-deps' to behave properly after the conversion of the 
> internal
> toolchain backend to the package infrastructure.

Great!

> To do so, the idea of this patch is to:
>
>  (1) Create a 'toolchain' virtual package, which will depend on the
>      particular toolchain backend depending on the configuration.
Is it too early to move toolchain/ to package/? Or there is a reason
to keep toolchain/ out of package/?


-- 
J?r?me Pouiller, Sysmic
Embedded Linux specialist
http://www.sysmic.fr

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 00/11] Convert toolchain backends to packages to fix source/external-deps/legal-info
  2013-09-06  8:57 ` Jérôme Pouiller
@ 2013-09-06  9:05   ` Thomas Petazzoni
  0 siblings, 0 replies; 49+ messages in thread
From: Thomas Petazzoni @ 2013-09-06  9:05 UTC (permalink / raw)
  To: buildroot

Dear J?r?me Pouiller,

On Fri, 06 Sep 2013 10:57:43 +0200, J?r?me Pouiller wrote:

> > To do so, the idea of this patch is to:
> >
> >  (1) Create a 'toolchain' virtual package, which will depend on the
> >      particular toolchain backend depending on the configuration.
> Is it too early to move toolchain/ to package/? Or there is a reason
> to keep toolchain/ out of package/?

Well, we do have packages outside of package/, such as the kernel and
bootloaders. I believe it makes sense to keep the toolchain backends in
toolchain/. Besides, the toolchain-buildroot/ package is really just an
indirection for host-gcc-final. Only the toolchain-external/ package
really contains some real stuff.

Best regards,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 02/11] toolchain-crosstool-ng: remove support
  2013-09-05 21:27 ` [Buildroot] [RFCv1 02/11] toolchain-crosstool-ng: remove support Thomas Petazzoni
@ 2013-09-06  9:35   ` Yann E. MORIN
  2013-09-06 15:53   ` Yann E. MORIN
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 49+ messages in thread
From: Yann E. MORIN @ 2013-09-06  9:35 UTC (permalink / raw)
  To: buildroot

Thomas, All,

On 2013-09-05 23:27 +0200, Thomas Petazzoni spake thusly:
> In order to avoid the work of converting the toolchain-crosstool-ng
> logic to the package infrastructure, we remove it from Buildroot,
> since it has been deprecated since quite some time.
> 
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ---
> If we consider it too early to get rid of the Crosstool-NG backend
> entirely, then it can of course be converted to the package
> infrastructure, with quite a bit of effort (which we wanted to avoid
> for now).

I don't care we remove it.

One of the blocking points that users were concerned about was to be
able to generate glibc/eglibc-based toolchains directly from within
Buildroot, hence some chimed in to keep the crosstool-NG backend.

Now that Buildroot can buid glibc/eglibc-based toolchain with its
internal backend, I see no reason to keep the crosstool-Ng backend at
all. So:

Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr>

As I said in a recently-posted patch (changes the manual to state the
crosstool-NG backend was deprecated), people that really want to use
crosstool-Ng can still do so outside of Buildroot, and use that
toolchain as an external toolchain.

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 00/11] Convert toolchain backends to packages to fix source/external-deps/legal-info
  2013-09-06  8:28 ` [Buildroot] [RFCv1 00/11] Convert toolchain backends to packages to fix source/external-deps/legal-info Fabio Porcedda
  2013-09-06  8:38   ` Thomas Petazzoni
@ 2013-09-06 12:37   ` Ryan Barnett
  1 sibling, 0 replies; 49+ messages in thread
From: Ryan Barnett @ 2013-09-06 12:37 UTC (permalink / raw)
  To: buildroot

> From: Fabio Porcedda <fabio.porcedda@gmail.com>
> 
> On Thu, Sep 5, 2013 at 11:27 PM, Thomas Petazzoni
> <thomas.petazzoni@free-electrons.com> wrote:
> > Hello,
> 
> Hi Thomas,
> 
> > <snip>
> >
> > In the long term, I'm thinking of:
> >
> >  (1) Making 'toolchain' a dependency of all target packages, because
> >      it's really what it is.
> 
> About that i've already sent a patch "package: add toolchain
> dependency to inner-generic-package:
> http://patchwork.ozlabs.org/patch/237887/
> 
> I will rebase and send the patch after i sent the v3 for the top-level
> parallel make.
> 

I would really like to see this because one of my biggest 'annoyances' 
with buildroot is that if do a "make clean" and then "make <package>",
the toolchain doesn't copy over automatically. I use this sequence of 
commands to test that I have my dependancies correct when adding new
packages or just testing a specific package that it builds correctly.

Again this is just annoyance with a simple workaround but it is good 
to see that I'm not the only person with this annoyance. Thanks Fabio
for attempting to fix this.





Ryan J Barnett / Software Engineer / Platform SW 
MS 137-157, 855 35th St NE, Cedar Rapids, IA, 52498-3161, US
Phone: 319-263-3880 / VPN: 263-3880 
rjbarnet at rockwellcollins.com
www.rockwellcollins.com 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20130906/06e170d0/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/gif
Size: 2004 bytes
Desc: not available
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20130906/06e170d0/attachment.gif>

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 02/11] toolchain-crosstool-ng: remove support
  2013-09-05 21:27 ` [Buildroot] [RFCv1 02/11] toolchain-crosstool-ng: remove support Thomas Petazzoni
  2013-09-06  9:35   ` Yann E. MORIN
@ 2013-09-06 15:53   ` Yann E. MORIN
  2013-09-06 15:56     ` Thomas Petazzoni
  2013-09-08 12:52   ` Thomas De Schampheleire
  2013-09-13 16:10   ` Luca Ceresoli
  3 siblings, 1 reply; 49+ messages in thread
From: Yann E. MORIN @ 2013-09-06 15:53 UTC (permalink / raw)
  To: buildroot

Thomas, All,

On 2013-09-05 23:27 +0200, Thomas Petazzoni spake thusly:
> In order to avoid the work of converting the toolchain-crosstool-ng
> logic to the package infrastructure, we remove it from Buildroot,
> since it has been deprecated since quite some time.

BTW, you forgot to remove references to the crosstool-NG backend from
the manual while at it. ;-)

Regards,
Yann E. MORIN.

-- 
.-----------------.--------------------.------------------.--------------------.
|  Yann E. MORIN  | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: |
| +33 662 376 056 | Software  Designer | \ / CAMPAIGN     |  ___               |
| +33 223 225 172 `------------.-------:  X  AGAINST      |  \e/  There is no  |
| http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL    |   v   conspiracy.  |
'------------------------------^-------^------------------^--------------------'

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 02/11] toolchain-crosstool-ng: remove support
  2013-09-06 15:53   ` Yann E. MORIN
@ 2013-09-06 15:56     ` Thomas Petazzoni
  0 siblings, 0 replies; 49+ messages in thread
From: Thomas Petazzoni @ 2013-09-06 15:56 UTC (permalink / raw)
  To: buildroot

Dear Yann E. MORIN,

On Fri, 6 Sep 2013 17:53:47 +0200, Yann E. MORIN wrote:

> On 2013-09-05 23:27 +0200, Thomas Petazzoni spake thusly:
> > In order to avoid the work of converting the toolchain-crosstool-ng
> > logic to the package infrastructure, we remove it from Buildroot,
> > since it has been deprecated since quite some time.
> 
> BTW, you forgot to remove references to the crosstool-NG backend from
> the manual while at it. ;-)

Yes, that's intentional for now. I've sent this patch set as an RFC to
get some feedback and testing. If the feedback is positive, I'll post
an updated version that includes the changes to the manual.

Thanks,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 01/11] Makefile: make $(BUILD_DIR)/.root rule idempotent
  2013-09-05 21:27 ` [Buildroot] [RFCv1 01/11] Makefile: make $(BUILD_DIR)/.root rule idempotent Thomas Petazzoni
@ 2013-09-08 12:06   ` Thomas De Schampheleire
  2013-09-08 13:13   ` Danomi Manchego
                     ` (2 subsequent siblings)
  3 siblings, 0 replies; 49+ messages in thread
From: Thomas De Schampheleire @ 2013-09-08 12:06 UTC (permalink / raw)
  To: buildroot

Hi Thomas,

On Thu, Sep 5, 2013 at 11:27 PM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> The $(BUILD_DIR)/.root rule is executed as part of the 'dirs'
> target. The 'dirs' target is re-executed at every execution of 'make
> external-deps', and make external-deps explicitly tells make to ignore
> targets that have already been made (through the -B option). This
> means that the $(BUILD_DIR)/.root rule has to be idempotant, which was
> not the case this the introduction of the lib32/lib64 symbolic
> link.
>
> Running 'make external-deps' three times in a row was sufficient to
> trigger an error due to symbolic links being incorrectly created. This
> patch fixes that.
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ---
> This should probably be taken for 2013.08.1 as a fix of 'make
> external-deps'.
> ---
>  Makefile | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 09faeba..93fc6ea 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -447,9 +447,13 @@ $(BUILD_DIR)/.root:
>                 --exclude .hg --exclude=CVS --exclude '*~' \
>                 $(TARGET_SKELETON)/ $(TARGET_DIR)/
>         cp support/misc/target-dir-warning.txt $(TARGET_DIR_WARNING_FILE)
> -       @ln -s lib $(TARGET_DIR)/$(LIB_SYMLINK)
> -       @mkdir -p $(TARGET_DIR)/usr
> -       @ln -s lib $(TARGET_DIR)/usr/$(LIB_SYMLINK)
> +       $(Q)if [ ! -L $(TARGET_DIR)/$(LIB_SYMLINK) ]; then \
> +               ln -s lib $(TARGET_DIR)/$(LIB_SYMLINK) ; \
> +       fi
> +       $(Q)mkdir -p $(TARGET_DIR)/usr
> +       $(Q)if [ ! -L $(TARGET_DIR)/usr/$(LIB_SYMLINK) ]; then \
> +               ln -s lib $(TARGET_DIR)/usr/$(LIB_SYMLINK) ; \
> +       fi
>         touch $@
>
>  $(TARGET_DIR): $(BUILD_DIR)/.root
> --


Acked-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>


Thomas, there is a patch in patchwork that renames the
$(BUILD_DIR)/.root stamp file, by J?r?me.
Although it is not directly related to the above, could you have a look at it?
http://patchwork.ozlabs.org/patch/265680/

Thanks,
Thomas

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 02/11] toolchain-crosstool-ng: remove support
  2013-09-05 21:27 ` [Buildroot] [RFCv1 02/11] toolchain-crosstool-ng: remove support Thomas Petazzoni
  2013-09-06  9:35   ` Yann E. MORIN
  2013-09-06 15:53   ` Yann E. MORIN
@ 2013-09-08 12:52   ` Thomas De Schampheleire
  2013-09-13 16:10   ` Luca Ceresoli
  3 siblings, 0 replies; 49+ messages in thread
From: Thomas De Schampheleire @ 2013-09-08 12:52 UTC (permalink / raw)
  To: buildroot

Hi Thomas,

On Thu, Sep 5, 2013 at 11:27 PM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> In order to avoid the work of converting the toolchain-crosstool-ng
> logic to the package infrastructure, we remove it from Buildroot,
> since it has been deprecated since quite some time.
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ---
> If we consider it too early to get rid of the Crosstool-NG backend
> entirely, then it can of course be converted to the package
> infrastructure, with quite a bit of effort (which we wanted to avoid
> for now).
> ---
>  Makefile                                           |   7 -
>  toolchain/Config.in                                |  13 -
>  toolchain/helpers.mk                               |   4 +-
>  toolchain/toolchain-common.in                      |   4 -
>  toolchain/toolchain-crosstool-ng.mk                |   5 -
>  toolchain/toolchain-crosstool-ng/Config.in         | 133 ------
>  .../crosstool-ng.config-eglibc                     | 502 ---------------------
>  .../crosstool-ng.config-glibc                      | 491 --------------------
>  .../crosstool-ng.config-uClibc                     | 473 -------------------
>  toolchain/toolchain-crosstool-ng/crosstool-ng.mk   | 396 ----------------
>  10 files changed, 1 insertion(+), 2027 deletions(-)
>  delete mode 100644 toolchain/toolchain-crosstool-ng.mk
>  delete mode 100644 toolchain/toolchain-crosstool-ng/Config.in
>  delete mode 100644 toolchain/toolchain-crosstool-ng/crosstool-ng.config-eglibc
>  delete mode 100644 toolchain/toolchain-crosstool-ng/crosstool-ng.config-glibc
>  delete mode 100644 toolchain/toolchain-crosstool-ng/crosstool-ng.config-uClibc
>  delete mode 100644 toolchain/toolchain-crosstool-ng/crosstool-ng.mk
>
> diff --git a/Makefile b/Makefile
> index 93fc6ea..f64a101 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -226,8 +226,6 @@ ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
>  BASE_TARGETS += toolchain-buildroot
>  else ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
>  BASE_TARGETS += toolchain-external
> -else ifeq ($(BR2_TOOLCHAIN_CTNG),y)
> -BASE_TARGETS += toolchain-crosstool-ng
>  endif
>
>  TARGETS:=
> @@ -322,8 +320,6 @@ ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
>  include toolchain/toolchain-buildroot.mk
>  else ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
>  include toolchain/toolchain-external.mk
> -else ifeq ($(BR2_TOOLCHAIN_CTNG),y)
> -include toolchain/toolchain-crosstool-ng.mk
>  endif
>
>  # Include the package override file if one has been provided in the
> @@ -805,9 +801,6 @@ endif
>  ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
>         @echo '  uclibc-menuconfig      - Run uClibc menuconfig'
>  endif
> -ifeq ($(BR2_TOOLCHAIN_CTNG),y)
> -       @echo '  ctng-menuconfig        - Run crosstool-NG menuconfig'
> -endif
>  ifeq ($(BR2_TARGET_BAREBOX),y)
>         @echo '  barebox-menuconfig     - Run barebox menuconfig'
>         @echo '  barebox-savedefconfig  - Run barebox savedefconfig'
> diff --git a/toolchain/Config.in b/toolchain/Config.in
> index 9d1e68f..4bb147f 100644
> --- a/toolchain/Config.in
> +++ b/toolchain/Config.in
> @@ -35,23 +35,10 @@ config BR2_TOOLCHAIN_EXTERNAL
>           toolchain. Buildroot can either download automatically a
>           toolchain, or use an already installed toolchain.
>
> -config BR2_TOOLCHAIN_CTNG
> -       bool "Crosstool-NG toolchain"
> -       depends on BR2_DEPRECATED
> -       depends on !BR2_microblaze && !BR2_aarch64 && !BR2_xtensa && \
> -                  !BR2_arc && !BR2_nios2
> -       select BR2_TOOLCHAIN_HAS_SHADOW_PASSWORDS
> -       help
> -         Say 'y' if you want to generate the toolchain with crosstool-NG
> -         (http://crosstool-ng.org).
> -
> -         This is considered experimental, and you can expect some breakage.
> -
>  endchoice
>
>  source "toolchain/toolchain-buildroot/Config.in"
>  source "toolchain/toolchain-external/Config.in"
> -source "toolchain/toolchain-crosstool-ng/Config.in"
>  source "toolchain/toolchain-common.in"
>  source "toolchain/toolchain-buildroot/Config.in.2"
>
> diff --git a/toolchain/helpers.mk b/toolchain/helpers.mk
> index 44b6018..e6ecc02 100644
> --- a/toolchain/helpers.mk
> +++ b/toolchain/helpers.mk
> @@ -1,7 +1,5 @@
>  # This Makefile fragment declares helper functions, usefull to handle
> -# non- buildroot-built toolchains, eg. purely external toolchains or
> -# toolchains (internally) built using crosstool-NG.
> -
> +# non- buildroot-built toolchains, eg. purely external toolchains.
>  #
>  # Copy a toolchain library and its symbolic links from the sysroot
>  # directory to the target directory. Also optionaly strips the
> diff --git a/toolchain/toolchain-common.in b/toolchain/toolchain-common.in
> index dc3bd2a..bff11f5 100644
> --- a/toolchain/toolchain-common.in
> +++ b/toolchain/toolchain-common.in
> @@ -56,10 +56,6 @@ config BR2_ENABLE_LOCALE_WHITELIST
>  config BR2_GENERATE_LOCALE
>         string "Generate locale data"
>         default ""
> -       # Pre-built uClibc external toolchains and uClibc toolchains
> -       # built by the Crosstool-NG backend cannot be supported,
> -       # because the list of locales to support must be defined at
> -       # build time.
>         depends on \
>                 BR2_TOOLCHAIN_BUILDROOT      || \
>                 BR2_TOOLCHAIN_USES_GLIBC
> diff --git a/toolchain/toolchain-crosstool-ng.mk b/toolchain/toolchain-crosstool-ng.mk
> deleted file mode 100644
> index 9e666a0..0000000
> --- a/toolchain/toolchain-crosstool-ng.mk
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -# Required includes for the external toolchain backend
> -
> -# Explicit ordering:
> -include toolchain/helpers.mk
> -include toolchain/toolchain-crosstool-ng/crosstool-ng.mk
> diff --git a/toolchain/toolchain-crosstool-ng/Config.in b/toolchain/toolchain-crosstool-ng/Config.in
> deleted file mode 100644
> index 7cfd8c2..0000000
> --- a/toolchain/toolchain-crosstool-ng/Config.in
> +++ /dev/null
> @@ -1,133 +0,0 @@
> -# Selection options for crosstool-NG
> -
> -if BR2_TOOLCHAIN_CTNG
> -
> -choice
> -       prompt "Crosstool-NG C library"
> -
> -config BR2_TOOLCHAIN_CTNG_uClibc
> -       bool "uClibc"
> -       select BR2_TOOLCHAIN_USES_UCLIBC
> -
> -# Although eglibc can be configured to opt-out some features,
> -# let's not deal with that for the time being, it's complex...
> -config BR2_TOOLCHAIN_CTNG_eglibc
> -       bool "eglibc"
> -       # Our default ct-ng configuration uses eglibc 2.12, which has
> -       # native RPC support
> -       select BR2_TOOLCHAIN_HAS_NATIVE_RPC
> -       select BR2_TOOLCHAIN_USES_GLIBC
> -
> -config BR2_TOOLCHAIN_CTNG_glibc
> -       bool "glibc"
> -       # Our default ct-ng configuration uses glibc 2.14.1, which
> -       # does not have native RPC support
> -       select BR2_TOOLCHAIN_USES_GLIBC
> -
> -endchoice # C library
> -
> -config BR2_TOOLCHAIN_CTNG_LIBC
> -       string
> -       default "uClibc"        if BR2_TOOLCHAIN_CTNG_uClibc
> -       default "eglibc"        if BR2_TOOLCHAIN_CTNG_eglibc
> -       default "glibc"         if BR2_TOOLCHAIN_CTNG_glibc
> -
> -config BR2_TOOLCHAIN_CTNG_CONFIG
> -       string "crosstool-NG configuration file to use"
> -       default "toolchain/toolchain-crosstool-ng/crosstool-ng.config-uClibc" if BR2_TOOLCHAIN_CTNG_uClibc
> -       default "toolchain/toolchain-crosstool-ng/crosstool-ng.config-eglibc" if BR2_TOOLCHAIN_CTNG_eglibc
> -       default "toolchain/toolchain-crosstool-ng/crosstool-ng.config-glibc"  if BR2_TOOLCHAIN_CTNG_glibc
> -       help
> -         Enter here the path to the crosstool-NG .config file to use.
> -
> -         Generally, the default crosstool-NG configuration files bundled with
> -         Buildroot work fine in most situations. Use 'make ctng-menuconfig'
> -         from the command line, for expert customization of your toolchain.
> -
> -         If unsure, keep the default value.
> -
> -if BR2_TOOLCHAIN_CTNG_uClibc
> -
> -comment "Toolchain Options"
> -
> -config BR2_TOOLCHAIN_CTNG_uClibc_LARGEFILE
> -       bool "Enable large file (files > 2 GB) support"
> -       select BR2_LARGEFILE
> -       help
> -         Enable this option if you want your toolchain to support
> -         files bigger than 2 GB.
> -
> -config BR2_TOOLCHAIN_CTNG_uClibc_INET_IPV6
> -       bool "Enable IPv6 support"
> -       select BR2_INET_IPV6
> -       help
> -         Enable this option if you want your toolchain to support
> -         IPv6.
> -
> -config BR2_TOOLCHAIN_CTNG_uClibc_INET_RPC
> -       bool "Enable RPC support"
> -       select BR2_TOOLCHAIN_HAS_NATIVE_RPC
> -       help
> -         Enable this option if you want your toolchain to support
> -         RPC (needed for NFS, for example).
> -
> -config BR2_TOOLCHAIN_CTNG_uClibc_WCHAR
> -       bool "Enable WCHAR support"
> -       select BR2_USE_WCHAR
> -       help
> -         Enable this option if you want your toolchain to support
> -         wide characters (i.e characters longer than 8 bits, needed
> -         for locale support).
> -
> -config BR2_TOOLCHAIN_CTNG_uClibc_LOCALE
> -       bool "Enable toolchain locale/i18n support"
> -       select BR2_TOOLCHAIN_CTNG_uClibc_WCHAR
> -       select BR2_ENABLE_LOCALE
> -       help
> -         Enable this option if you want your toolchain to support
> -         localization and internationalization.
> -
> -endif # BR2_TOOLCHAIN_CTNG_uClibc
> -
> -config BR2_TOOLCHAIN_CTNG_CXX
> -       bool "Enable C++ support"
> -       select BR2_INSTALL_LIBSTDCPP
> -       help
> -         Enable this option if you want your toolchain to support the
> -         C++ language and you want C++ libraries to be installed on
> -         your target system.
> -
> -choice
> -       prompt "Thread library implementation"
> -       default BR2_TOOLCHAIN_CTNG_THREADS_NPTL
> -       help
> -         Enable thread support and select thread implementation. With
> -         glibc, thread support is mandatory but several
> -         implementations are available. With uClibc, thread support
> -         is optional, and when enabled, several implementations are
> -         available. However, not all thread variants work with all
> -         versions of uClibc for all architectures, the "linuxthreads
> -         (stable/old)" may be a working fallback.
> -
> -       config BR2_TOOLCHAIN_CTNG_THREADS_NONE
> -               bool "none"
> -               depends on BR2_TOOLCHAIN_CTNG_uClibc
> -
> -       config BR2_TOOLCHAIN_CTNG_THREADS_PTHREADS
> -               bool "linuxthreads"
> -               select BR2_TOOLCHAIN_HAS_THREADS
> -               select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
> -
> -       config BR2_TOOLCHAIN_CTNG_THREADS_PTHREADS_OLD
> -               bool "linuxthreads (stable/old)"
> -               select BR2_TOOLCHAIN_HAS_THREADS
> -               select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
> -               depends on BR2_TOOLCHAIN_CTNG_uClibc
> -
> -       config BR2_TOOLCHAIN_CTNG_THREADS_NPTL
> -               bool "Native POSIX Threading (NPTL)"
> -               select BR2_TOOLCHAIN_HAS_THREADS
> -               select BR2_TOOLCHAIN_HAS_THREADS_DEBUG
> -endchoice
> -
> -endif # BR2_TOOLCHAIN_CTNG
> diff --git a/toolchain/toolchain-crosstool-ng/crosstool-ng.config-eglibc b/toolchain/toolchain-crosstool-ng/crosstool-ng.config-eglibc
> deleted file mode 100644
> index 08f036c..0000000
> --- a/toolchain/toolchain-crosstool-ng/crosstool-ng.config-eglibc
> +++ /dev/null
> @@ -1,502 +0,0 @@
> -#
> -# Automatically generated make config: don't edit
> -# crosstool-NG 1.17.0 Configuration
> -# Sat Dec  8 12:57:07 2012
> -#
> -CT_CONFIGURE_has_xz=y
> -CT_CONFIGURE_has_svn=y
> -CT_MODULES=y
> -
> -#
> -# Paths and misc options
> -#
> -
> -#
> -# crosstool-NG behavior
> -#
> -# CT_OBSOLETE is not set
> -# CT_EXPERIMENTAL is not set
> -# CT_DEBUG_CT is not set
> -
> -#
> -# Paths
> -#
> -CT_LOCAL_TARBALLS_DIR=""
> -CT_WORK_DIR="${CT_TOP_DIR}/.build"
> -CT_PREFIX_DIR=""
> -CT_INSTALL_DIR="${CT_PREFIX_DIR}"
> -CT_RM_RF_PREFIX_DIR=y
> -CT_REMOVE_DOCS=y
> -# CT_INSTALL_DIR_RO is not set
> -# CT_STRIP_ALL_TOOLCHAIN_EXECUTABLES is not set
> -
> -#
> -# Downloading
> -#
> -# CT_FORBID_DOWNLOAD is not set
> -# CT_FORCE_DOWNLOAD is not set
> -CT_CONNECT_TIMEOUT=10
> -# CT_ONLY_DOWNLOAD is not set
> -# CT_USE_MIRROR is not set
> -
> -#
> -# Extracting
> -#
> -# CT_FORCE_EXTRACT is not set
> -CT_OVERIDE_CONFIG_GUESS_SUB=y
> -# CT_ONLY_EXTRACT is not set
> -CT_PATCH_BUNDLED=y
> -# CT_PATCH_LOCAL is not set
> -# CT_PATCH_BUNDLED_LOCAL is not set
> -# CT_PATCH_LOCAL_BUNDLED is not set
> -# CT_PATCH_BUNDLED_FALLBACK_LOCAL is not set
> -# CT_PATCH_LOCAL_FALLBACK_BUNDLED is not set
> -# CT_PATCH_NONE is not set
> -CT_PATCH_ORDER="bundled"
> -
> -#
> -# Build behavior
> -#
> -CT_PARALLEL_JOBS=0
> -CT_LOAD=0
> -CT_USE_PIPES=y
> -CT_EXTRA_FLAGS_FOR_HOST=""
> -# CT_CONFIG_SHELL_SH is not set
> -# CT_CONFIG_SHELL_ASH is not set
> -CT_CONFIG_SHELL_BASH=y
> -# CT_CONFIG_SHELL_CUSTOM is not set
> -CT_CONFIG_SHELL="${bash}"
> -
> -#
> -# Logging
> -#
> -# CT_LOG_ERROR is not set
> -# CT_LOG_WARN is not set
> -# CT_LOG_INFO is not set
> -# CT_LOG_EXTRA is not set
> -CT_LOG_ALL=y
> -# CT_LOG_DEBUG is not set
> -CT_LOG_LEVEL_MAX="ALL"
> -# CT_LOG_SEE_TOOLS_WARN is not set
> -CT_LOG_TO_FILE=y
> -CT_LOG_FILE_COMPRESS=y
> -
> -#
> -# Target options
> -#
> -CT_ARCH="arm"
> -CT_ARCH_SUPPORTS_BOTH_MMU=y
> -CT_ARCH_SUPPORTS_BOTH_ENDIAN=y
> -CT_ARCH_SUPPORTS_32=y
> -CT_ARCH_SUPPORTS_WITH_ARCH=y
> -CT_ARCH_SUPPORTS_WITH_CPU=y
> -CT_ARCH_SUPPORTS_WITH_TUNE=y
> -CT_ARCH_SUPPORTS_WITH_FLOAT=y
> -CT_ARCH_SUPPORTS_WITH_FPU=y
> -CT_ARCH_SUPPORTS_SOFTFP=y
> -CT_ARCH_DEFAULT_HAS_MMU=y
> -CT_ARCH_DEFAULT_LE=y
> -CT_ARCH_DEFAULT_32=y
> -CT_ARCH_ARCH=""
> -CT_ARCH_CPU=""
> -CT_ARCH_TUNE=""
> -CT_ARCH_FPU=""
> -# CT_ARCH_BE is not set
> -CT_ARCH_LE=y
> -CT_ARCH_32=y
> -CT_ARCH_BITNESS=32
> -# CT_ARCH_FLOAT_HW is not set
> -CT_ARCH_FLOAT_SW=y
> -CT_TARGET_CFLAGS=""
> -CT_TARGET_LDFLAGS=""
> -# CT_ARCH_alpha is not set
> -CT_ARCH_arm=y
> -# CT_ARCH_avr32 is not set
> -# CT_ARCH_blackfin is not set
> -# CT_ARCH_mips is not set
> -# CT_ARCH_powerpc is not set
> -# CT_ARCH_sh is not set
> -# CT_ARCH_sparc is not set
> -# CT_ARCH_x86 is not set
> -CT_ARCH_alpha_AVAILABLE=y
> -CT_ARCH_arm_AVAILABLE=y
> -CT_ARCH_avr32_AVAILABLE=y
> -CT_ARCH_blackfin_AVAILABLE=y
> -CT_ARCH_m68k_AVAILABLE=y
> -CT_ARCH_microblaze_AVAILABLE=y
> -CT_ARCH_mips_AVAILABLE=y
> -CT_ARCH_powerpc_AVAILABLE=y
> -CT_ARCH_s390_AVAILABLE=y
> -CT_ARCH_sh_AVAILABLE=y
> -CT_ARCH_sparc_AVAILABLE=y
> -CT_ARCH_x86_AVAILABLE=y
> -
> -#
> -# Generic target options
> -#
> -CT_ARCH_USE_MMU=y
> -CT_ARCH_ENDIAN="little"
> -
> -#
> -# Target optimisations
> -#
> -# CT_ARCH_FLOAT_SOFTFP is not set
> -CT_ARCH_FLOAT="soft"
> -
> -#
> -# arm other options
> -#
> -CT_ARCH_ARM_MODE="arm"
> -CT_ARCH_ARM_MODE_ARM=y
> -CT_ARCH_ARM_EABI=y
> -
> -#
> -# Toolchain options
> -#
> -
> -#
> -# General toolchain options
> -#
> -CT_FORCE_SYSROOT=y
> -CT_USE_SYSROOT=y
> -CT_SYSROOT_NAME="sysroot"
> -CT_SYSROOT_DIR_PREFIX=""
> -CT_WANTS_STATIC_LINK=y
> -CT_TOOLCHAIN_PKGVERSION=""
> -CT_TOOLCHAIN_BUGURL=""
> -
> -#
> -# Tuple completion and aliasing
> -#
> -CT_TARGET_VENDOR="unknown"
> -CT_TARGET_ALIAS_SED_EXPR=""
> -CT_TARGET_ALIAS=""
> -
> -#
> -# Toolchain type
> -#
> -CT_CROSS=y
> -CT_TOOLCHAIN_TYPE="cross"
> -
> -#
> -# Build system
> -#
> -CT_BUILD=""
> -CT_BUILD_PREFIX=""
> -CT_BUILD_SUFFIX=""
> -
> -#
> -# Misc options
> -#
> -# CT_TOOLCHAIN_ENABLE_NLS is not set
> -
> -#
> -# Operating System
> -#
> -CT_KERNEL_SUPPORTS_SHARED_LIBS=y
> -CT_KERNEL="linux"
> -CT_KERNEL_VERSION="3.6.3"
> -# CT_KERNEL_bare_metal is not set
> -CT_KERNEL_linux=y
> -CT_KERNEL_bare_metal_AVAILABLE=y
> -CT_KERNEL_linux_AVAILABLE=y
> -CT_KERNEL_V_3_6_3=y
> -# CT_KERNEL_V_3_6_2 is not set
> -# CT_KERNEL_V_3_6_1 is not set
> -# CT_KERNEL_V_3_6 is not set
> -# CT_KERNEL_V_3_5_7 is not set
> -# CT_KERNEL_V_3_4_15 is not set
> -# CT_KERNEL_V_3_3_8 is not set
> -# CT_KERNEL_V_3_2_32 is not set
> -# CT_KERNEL_V_3_1_10 is not set
> -# CT_KERNEL_V_3_0_48 is not set
> -# CT_KERNEL_V_2_6_39_4 is not set
> -# CT_KERNEL_V_2_6_38_8 is not set
> -# CT_KERNEL_V_2_6_37_6 is not set
> -# CT_KERNEL_V_2_6_36_4 is not set
> -# CT_KERNEL_V_2_6_33_20 is not set
> -# CT_KERNEL_V_2_6_32_60 is not set
> -# CT_KERNEL_V_2_6_31_14 is not set
> -# CT_KERNEL_V_2_6_27_62 is not set
> -# CT_KERNEL_LINUX_CUSTOM is not set
> -CT_KERNEL_mingw32_AVAILABLE=y
> -
> -#
> -# Common kernel options
> -#
> -CT_SHARED_LIBS=y
> -
> -#
> -# linux other options
> -#
> -CT_KERNEL_LINUX_VERBOSITY_0=y
> -# CT_KERNEL_LINUX_VERBOSITY_1 is not set
> -# CT_KERNEL_LINUX_VERBOSITY_2 is not set
> -CT_KERNEL_LINUX_VERBOSE_LEVEL=0
> -CT_KERNEL_LINUX_INSTALL_CHECK=y
> -
> -#
> -# Binary utilities
> -#
> -CT_ARCH_BINFMT_ELF=y
> -
> -#
> -# GNU binutils
> -#
> -# CT_BINUTILS_V_2_21_1a is not set
> -CT_BINUTILS_V_2_20_1a=y
> -# CT_BINUTILS_V_2_19_1a is not set
> -# CT_BINUTILS_V_2_18a is not set
> -CT_BINUTILS_VERSION="2.20.1a"
> -CT_BINUTILS_2_20_or_later=y
> -CT_BINUTILS_2_19_or_later=y
> -CT_BINUTILS_2_18_or_later=y
> -CT_BINUTILS_HAS_HASH_STYLE=y
> -CT_BINUTILS_GOLD_SUPPORTS_ARCH=y
> -CT_BINUTILS_HAS_PKGVERSION_BUGURL=y
> -CT_BINUTILS_FORCE_LD_BFD=y
> -CT_BINUTILS_LINKER_LD=y
> -CT_BINUTILS_LINKERS_LIST="ld"
> -CT_BINUTILS_LINKER_DEFAULT="bfd"
> -CT_BINUTILS_EXTRA_CONFIG_ARRAY=""
> -# CT_BINUTILS_FOR_TARGET is not set
> -
> -#
> -# C compiler
> -#
> -CT_CC="gcc"
> -CT_CC_VERSION="4.6.3"
> -CT_CC_gcc=y
> -# CT_CC_V_4_7_2 is not set
> -CT_CC_V_4_6_3=y
> -# CT_CC_V_4_6_2 is not set
> -# CT_CC_V_4_6_1 is not set
> -# CT_CC_V_4_6_0 is not set
> -# CT_CC_V_4_5_3 is not set
> -# CT_CC_V_4_5_2 is not set
> -# CT_CC_V_4_5_1 is not set
> -# CT_CC_V_4_5_0 is not set
> -# CT_CC_V_4_4_7 is not set
> -# CT_CC_V_4_4_6 is not set
> -# CT_CC_V_4_4_5 is not set
> -# CT_CC_V_4_4_4 is not set
> -# CT_CC_V_4_4_3 is not set
> -# CT_CC_V_4_4_2 is not set
> -# CT_CC_V_4_4_1 is not set
> -# CT_CC_V_4_4_0 is not set
> -# CT_CC_V_4_3_6 is not set
> -# CT_CC_V_4_3_5 is not set
> -# CT_CC_V_4_3_4 is not set
> -# CT_CC_V_4_3_3 is not set
> -# CT_CC_V_4_3_2 is not set
> -# CT_CC_V_4_3_1 is not set
> -# CT_CC_V_4_2_4 is not set
> -# CT_CC_V_4_2_2 is not set
> -CT_CC_GCC_4_2_or_later=y
> -CT_CC_GCC_4_3_or_later=y
> -CT_CC_GCC_4_4_or_later=y
> -CT_CC_GCC_4_5_or_later=y
> -CT_CC_GCC_4_6=y
> -CT_CC_GCC_4_6_or_later=y
> -CT_CC_GCC_HAS_GRAPHITE=y
> -CT_CC_GCC_HAS_LTO=y
> -CT_CC_GCC_HAS_PKGVERSION_BUGURL=y
> -CT_CC_GCC_HAS_BUILD_ID=y
> -CT_CC_GCC_USE_GMP_MPFR=y
> -CT_CC_GCC_USE_PPL_CLOOG=y
> -CT_CC_GCC_USE_MPC=y
> -CT_CC_GCC_HAS_LIBQUADMATH=y
> -# CT_CC_LANG_FORTRAN is not set
> -CT_CC_SUPPORT_CXX=y
> -CT_CC_SUPPORT_FORTRAN=y
> -CT_CC_SUPPORT_JAVA=y
> -CT_CC_SUPPORT_ADA=y
> -CT_CC_SUPPORT_OBJC=y
> -CT_CC_SUPPORT_OBJCXX=y
> -
> -#
> -# Additional supported languages:
> -#
> -CT_CC_LANG_CXX=y
> -# CT_CC_LANG_JAVA is not set
> -
> -#
> -# gcc other options
> -#
> -CT_CC_ENABLE_CXX_FLAGS=""
> -CT_CC_CORE_EXTRA_CONFIG_ARRAY="--disable-decimal-float"
> -CT_CC_EXTRA_CONFIG_ARRAY="--disable-decimal-float"
> -CT_CC_STATIC_LIBSTDCXX=y
> -
> -#
> -# Optimisation features
> -#
> -CT_CC_GCC_USE_GRAPHITE=y
> -CT_CC_GCC_USE_LTO=y
> -
> -#
> -# Settings for libraries running on target
> -#
> -CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y
> -# CT_CC_GCC_LIBMUDFLAP is not set
> -# CT_CC_GCC_LIBGOMP is not set
> -# CT_CC_GCC_LIBSSP is not set
> -# CT_CC_GCC_LIBQUADMATH is not set
> -
> -#
> -# Misc. obscure options.
> -#
> -CT_CC_CXA_ATEXIT=y
> -# CT_CC_GCC_DISABLE_PCH is not set
> -CT_CC_GCC_SJLJ_EXCEPTIONS=m
> -CT_CC_GCC_LDBL_128=m
> -# CT_CC_GCC_BUILD_ID is not set
> -
> -#
> -# C-library
> -#
> -CT_LIBC="eglibc"
> -CT_LIBC_VERSION="2_12"
> -CT_LIBC_eglibc=y
> -# CT_LIBC_glibc is not set
> -# CT_LIBC_uClibc is not set
> -CT_LIBC_eglibc_AVAILABLE=y
> -# CT_LIBC_EGLIBC_V_2_16 is not set
> -# CT_LIBC_EGLIBC_V_2_15 is not set
> -# CT_LIBC_EGLIBC_V_2_14 is not set
> -# CT_LIBC_EGLIBC_V_2_13 is not set
> -CT_LIBC_EGLIBC_V_2_12=y
> -# CT_LIBC_EGLIBC_V_2_11 is not set
> -# CT_LIBC_EGLIBC_V_2_10 is not set
> -# CT_LIBC_EGLIBC_V_2_9 is not set
> -# CT_LIBC_EGLIBC_V_TRUNK is not set
> -CT_LIBC_EGLIBC_2_12_or_later=y
> -CT_LIBC_EGLIBC_2_11_or_later=y
> -CT_LIBC_EGLIBC_2_10_or_later=y
> -CT_LIBC_EGLIBC_2_9_or_later=y
> -CT_LIBC_EGLIBC_HAS_PKGVERSION_BUGURL=y
> -CT_EGLIBC_REVISION="HEAD"
> -# CT_EGLIBC_HTTP is not set
> -# CT_EGLIBC_CHECKOUT is not set
> -CT_EGLIBC_OPT_SIZE=y
> -# CT_EGLIBC_CUSTOM_CONFIG is not set
> -CT_LIBC_glibc_AVAILABLE=y
> -CT_LIBC_mingw_AVAILABLE=y
> -CT_LIBC_newlib_AVAILABLE=y
> -CT_LIBC_none_AVAILABLE=y
> -CT_LIBC_uClibc_AVAILABLE=y
> -CT_LIBC_SUPPORT_THREADS_ANY=y
> -CT_LIBC_SUPPORT_NPTL=y
> -CT_LIBC_SUPPORT_LINUXTHREADS=y
> -CT_THREADS="nptl"
> -
> -#
> -# Common C library options
> -#
> -CT_THREADS_NPTL=y
> -# CT_THREADS_LINUXTHREADS is not set
> -CT_LIBC_XLDD=y
> -
> -#
> -# eglibc other options
> -#
> -CT_LIBC_GLIBC_MAY_FORCE_PORTS=y
> -CT_LIBC_glibc_familly=y
> -CT_LIBC_GLIBC_EXTRA_CONFIG_ARRAY=""
> -CT_LIBC_GLIBC_CONFIGPARMS=""
> -CT_LIBC_GLIBC_EXTRA_CFLAGS=""
> -CT_LIBC_EXTRA_CC_ARGS=""
> -# CT_LIBC_DISABLE_VERSIONING is not set
> -CT_LIBC_OLDEST_ABI=""
> -CT_LIBC_GLIBC_FORCE_UNWIND=y
> -CT_LIBC_GLIBC_USE_PORTS=y
> -CT_LIBC_ADDONS_LIST=""
> -
> -#
> -# WARNING !!!
> -#
> -
> -#
> -#   For glibc >= 2.8, it can happen that the tarballs
> -#
> -
> -#
> -#   for the addons are not available for download.
> -#
> -
> -#
> -#   If that happens, bad luck... Try a previous version
> -#
> -
> -#
> -#   or try again later... :-(
> -#
> -# CT_LIBC_LOCALES is not set
> -# CT_LIBC_GLIBC_KERNEL_VERSION_NONE is not set
> -CT_LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS=y
> -# CT_LIBC_GLIBC_KERNEL_VERSION_CHOSEN is not set
> -CT_LIBC_GLIBC_MIN_KERNEL="3.6.3"
> -
> -#
> -# Debug facilities
> -#
> -# CT_DEBUG_dmalloc is not set
> -# CT_DEBUG_duma is not set
> -# CT_DEBUG_gdb is not set
> -# CT_DEBUG_ltrace is not set
> -# CT_DEBUG_strace is not set
> -
> -#
> -# Companion libraries
> -#
> -CT_COMPLIBS_NEEDED=y
> -CT_GMP_NEEDED=y
> -CT_MPFR_NEEDED=y
> -CT_PPL_NEEDED=y
> -CT_CLOOG_NEEDED=y
> -CT_MPC_NEEDED=y
> -CT_COMPLIBS=y
> -CT_GMP=y
> -CT_MPFR=y
> -CT_PPL=y
> -CT_CLOOG=y
> -CT_MPC=y
> -# CT_GMP_V_5_0_2 is not set
> -# CT_GMP_V_5_0_1 is not set
> -CT_GMP_V_4_3_2=y
> -# CT_GMP_V_4_3_1 is not set
> -# CT_GMP_V_4_3_0 is not set
> -CT_GMP_VERSION="4.3.2"
> -# CT_MPFR_V_3_1_0 is not set
> -# CT_MPFR_V_3_0_1 is not set
> -# CT_MPFR_V_3_0_0 is not set
> -CT_MPFR_V_2_4_2=y
> -# CT_MPFR_V_2_4_1 is not set
> -# CT_MPFR_V_2_4_0 is not set
> -CT_MPFR_VERSION="2.4.2"
> -CT_PPL_V_0_11_2=y
> -# CT_PPL_V_0_11_1 is not set
> -# CT_PPL_V_0_11 is not set
> -# CT_PPL_V_0_10_2 is not set
> -CT_PPL_VERSION="0.11.2"
> -CT_PPL_0_11=y
> -CT_PPL_NEEDS_LIBPWL=y
> -CT_CLOOG_V_0_15_11=y
> -# CT_CLOOG_V_0_15_10 is not set
> -# CT_CLOOG_V_0_15_9 is not set
> -# CT_CLOOG_V_0_15_8 is not set
> -# CT_CLOOG_V_0_15_7 is not set
> -# CT_CLOOG_V_0_15_6 is not set
> -CT_CLOOG_VERSION="0.15.11"
> -CT_CLOOG_0_15_1x=y
> -CT_CLOOG_NEEDS_AUTORECONF=y
> -CT_MPC_V_0_9=y
> -# CT_MPC_V_0_8_2 is not set
> -# CT_MPC_V_0_8_1 is not set
> -# CT_MPC_V_0_7 is not set
> -CT_MPC_VERSION="0.9"
> -
> -#
> -# Companion libraries common options
> -#
> -# CT_COMPLIBS_CHECK is not set
> diff --git a/toolchain/toolchain-crosstool-ng/crosstool-ng.config-glibc b/toolchain/toolchain-crosstool-ng/crosstool-ng.config-glibc
> deleted file mode 100644
> index 5b4bbba..0000000
> --- a/toolchain/toolchain-crosstool-ng/crosstool-ng.config-glibc
> +++ /dev/null
> @@ -1,491 +0,0 @@
> -#
> -# Automatically generated make config: don't edit
> -# crosstool-NG 1.17.0 Configuration
> -# Sat Dec  8 12:56:02 2012
> -#
> -CT_CONFIGURE_has_xz=y
> -CT_CONFIGURE_has_svn=y
> -CT_MODULES=y
> -
> -#
> -# Paths and misc options
> -#
> -
> -#
> -# crosstool-NG behavior
> -#
> -# CT_OBSOLETE is not set
> -# CT_EXPERIMENTAL is not set
> -# CT_DEBUG_CT is not set
> -
> -#
> -# Paths
> -#
> -CT_LOCAL_TARBALLS_DIR=""
> -CT_WORK_DIR="${CT_TOP_DIR}/.build"
> -CT_PREFIX_DIR=""
> -CT_INSTALL_DIR="${CT_PREFIX_DIR}"
> -CT_RM_RF_PREFIX_DIR=y
> -CT_REMOVE_DOCS=y
> -# CT_INSTALL_DIR_RO is not set
> -# CT_STRIP_ALL_TOOLCHAIN_EXECUTABLES is not set
> -
> -#
> -# Downloading
> -#
> -# CT_FORBID_DOWNLOAD is not set
> -# CT_FORCE_DOWNLOAD is not set
> -CT_CONNECT_TIMEOUT=10
> -# CT_ONLY_DOWNLOAD is not set
> -# CT_USE_MIRROR is not set
> -
> -#
> -# Extracting
> -#
> -# CT_FORCE_EXTRACT is not set
> -CT_OVERIDE_CONFIG_GUESS_SUB=y
> -# CT_ONLY_EXTRACT is not set
> -CT_PATCH_BUNDLED=y
> -# CT_PATCH_LOCAL is not set
> -# CT_PATCH_BUNDLED_LOCAL is not set
> -# CT_PATCH_LOCAL_BUNDLED is not set
> -# CT_PATCH_BUNDLED_FALLBACK_LOCAL is not set
> -# CT_PATCH_LOCAL_FALLBACK_BUNDLED is not set
> -# CT_PATCH_NONE is not set
> -CT_PATCH_ORDER="bundled"
> -
> -#
> -# Build behavior
> -#
> -CT_PARALLEL_JOBS=0
> -CT_LOAD=0
> -CT_USE_PIPES=y
> -CT_EXTRA_FLAGS_FOR_HOST=""
> -# CT_CONFIG_SHELL_SH is not set
> -# CT_CONFIG_SHELL_ASH is not set
> -CT_CONFIG_SHELL_BASH=y
> -# CT_CONFIG_SHELL_CUSTOM is not set
> -CT_CONFIG_SHELL="${bash}"
> -
> -#
> -# Logging
> -#
> -# CT_LOG_ERROR is not set
> -# CT_LOG_WARN is not set
> -# CT_LOG_INFO is not set
> -# CT_LOG_EXTRA is not set
> -CT_LOG_ALL=y
> -# CT_LOG_DEBUG is not set
> -CT_LOG_LEVEL_MAX="ALL"
> -# CT_LOG_SEE_TOOLS_WARN is not set
> -CT_LOG_TO_FILE=y
> -CT_LOG_FILE_COMPRESS=y
> -
> -#
> -# Target options
> -#
> -CT_ARCH="arm"
> -CT_ARCH_SUPPORTS_BOTH_MMU=y
> -CT_ARCH_SUPPORTS_BOTH_ENDIAN=y
> -CT_ARCH_SUPPORTS_32=y
> -CT_ARCH_SUPPORTS_WITH_ARCH=y
> -CT_ARCH_SUPPORTS_WITH_CPU=y
> -CT_ARCH_SUPPORTS_WITH_TUNE=y
> -CT_ARCH_SUPPORTS_WITH_FLOAT=y
> -CT_ARCH_SUPPORTS_WITH_FPU=y
> -CT_ARCH_SUPPORTS_SOFTFP=y
> -CT_ARCH_DEFAULT_HAS_MMU=y
> -CT_ARCH_DEFAULT_LE=y
> -CT_ARCH_DEFAULT_32=y
> -CT_ARCH_ARCH=""
> -CT_ARCH_CPU=""
> -CT_ARCH_TUNE=""
> -CT_ARCH_FPU=""
> -# CT_ARCH_BE is not set
> -CT_ARCH_LE=y
> -CT_ARCH_32=y
> -CT_ARCH_BITNESS=32
> -# CT_ARCH_FLOAT_HW is not set
> -CT_ARCH_FLOAT_SW=y
> -CT_TARGET_CFLAGS=""
> -CT_TARGET_LDFLAGS=""
> -# CT_ARCH_alpha is not set
> -CT_ARCH_arm=y
> -# CT_ARCH_avr32 is not set
> -# CT_ARCH_blackfin is not set
> -# CT_ARCH_mips is not set
> -# CT_ARCH_powerpc is not set
> -# CT_ARCH_sh is not set
> -# CT_ARCH_sparc is not set
> -# CT_ARCH_x86 is not set
> -CT_ARCH_alpha_AVAILABLE=y
> -CT_ARCH_arm_AVAILABLE=y
> -CT_ARCH_avr32_AVAILABLE=y
> -CT_ARCH_blackfin_AVAILABLE=y
> -CT_ARCH_m68k_AVAILABLE=y
> -CT_ARCH_microblaze_AVAILABLE=y
> -CT_ARCH_mips_AVAILABLE=y
> -CT_ARCH_powerpc_AVAILABLE=y
> -CT_ARCH_s390_AVAILABLE=y
> -CT_ARCH_sh_AVAILABLE=y
> -CT_ARCH_sparc_AVAILABLE=y
> -CT_ARCH_x86_AVAILABLE=y
> -
> -#
> -# Generic target options
> -#
> -CT_ARCH_USE_MMU=y
> -CT_ARCH_ENDIAN="little"
> -
> -#
> -# Target optimisations
> -#
> -# CT_ARCH_FLOAT_SOFTFP is not set
> -CT_ARCH_FLOAT="soft"
> -
> -#
> -# arm other options
> -#
> -CT_ARCH_ARM_MODE="arm"
> -CT_ARCH_ARM_MODE_ARM=y
> -CT_ARCH_ARM_EABI=y
> -
> -#
> -# Toolchain options
> -#
> -
> -#
> -# General toolchain options
> -#
> -CT_FORCE_SYSROOT=y
> -CT_USE_SYSROOT=y
> -CT_SYSROOT_NAME="sysroot"
> -CT_SYSROOT_DIR_PREFIX=""
> -CT_WANTS_STATIC_LINK=y
> -CT_TOOLCHAIN_PKGVERSION=""
> -CT_TOOLCHAIN_BUGURL=""
> -
> -#
> -# Tuple completion and aliasing
> -#
> -CT_TARGET_VENDOR="unknown"
> -CT_TARGET_ALIAS_SED_EXPR=""
> -CT_TARGET_ALIAS=""
> -
> -#
> -# Toolchain type
> -#
> -CT_CROSS=y
> -CT_TOOLCHAIN_TYPE="cross"
> -
> -#
> -# Build system
> -#
> -CT_BUILD=""
> -CT_BUILD_PREFIX=""
> -CT_BUILD_SUFFIX=""
> -
> -#
> -# Misc options
> -#
> -# CT_TOOLCHAIN_ENABLE_NLS is not set
> -
> -#
> -# Operating System
> -#
> -CT_KERNEL_SUPPORTS_SHARED_LIBS=y
> -CT_KERNEL="linux"
> -CT_KERNEL_VERSION="3.6.3"
> -# CT_KERNEL_bare_metal is not set
> -CT_KERNEL_linux=y
> -CT_KERNEL_bare_metal_AVAILABLE=y
> -CT_KERNEL_linux_AVAILABLE=y
> -CT_KERNEL_V_3_6_3=y
> -# CT_KERNEL_V_3_6_2 is not set
> -# CT_KERNEL_V_3_6_1 is not set
> -# CT_KERNEL_V_3_6 is not set
> -# CT_KERNEL_V_3_5_7 is not set
> -# CT_KERNEL_V_3_4_15 is not set
> -# CT_KERNEL_V_3_3_8 is not set
> -# CT_KERNEL_V_3_2_32 is not set
> -# CT_KERNEL_V_3_1_10 is not set
> -# CT_KERNEL_V_3_0_48 is not set
> -# CT_KERNEL_V_2_6_39_4 is not set
> -# CT_KERNEL_V_2_6_38_8 is not set
> -# CT_KERNEL_V_2_6_37_6 is not set
> -# CT_KERNEL_V_2_6_36_4 is not set
> -# CT_KERNEL_V_2_6_33_20 is not set
> -# CT_KERNEL_V_2_6_32_60 is not set
> -# CT_KERNEL_V_2_6_31_14 is not set
> -# CT_KERNEL_V_2_6_27_62 is not set
> -# CT_KERNEL_LINUX_CUSTOM is not set
> -CT_KERNEL_mingw32_AVAILABLE=y
> -
> -#
> -# Common kernel options
> -#
> -CT_SHARED_LIBS=y
> -
> -#
> -# linux other options
> -#
> -CT_KERNEL_LINUX_VERBOSITY_0=y
> -# CT_KERNEL_LINUX_VERBOSITY_1 is not set
> -# CT_KERNEL_LINUX_VERBOSITY_2 is not set
> -CT_KERNEL_LINUX_VERBOSE_LEVEL=0
> -CT_KERNEL_LINUX_INSTALL_CHECK=y
> -
> -#
> -# Binary utilities
> -#
> -CT_ARCH_BINFMT_ELF=y
> -
> -#
> -# GNU binutils
> -#
> -# CT_BINUTILS_V_2_21_1a is not set
> -CT_BINUTILS_V_2_20_1a=y
> -# CT_BINUTILS_V_2_19_1a is not set
> -# CT_BINUTILS_V_2_18a is not set
> -CT_BINUTILS_VERSION="2.20.1a"
> -CT_BINUTILS_2_20_or_later=y
> -CT_BINUTILS_2_19_or_later=y
> -CT_BINUTILS_2_18_or_later=y
> -CT_BINUTILS_HAS_HASH_STYLE=y
> -CT_BINUTILS_GOLD_SUPPORTS_ARCH=y
> -CT_BINUTILS_HAS_PKGVERSION_BUGURL=y
> -CT_BINUTILS_FORCE_LD_BFD=y
> -CT_BINUTILS_LINKER_LD=y
> -CT_BINUTILS_LINKERS_LIST="ld"
> -CT_BINUTILS_LINKER_DEFAULT="bfd"
> -CT_BINUTILS_EXTRA_CONFIG_ARRAY=""
> -# CT_BINUTILS_FOR_TARGET is not set
> -
> -#
> -# C compiler
> -#
> -CT_CC="gcc"
> -CT_CC_VERSION="4.6.3"
> -CT_CC_gcc=y
> -# CT_CC_V_4_7_2 is not set
> -CT_CC_V_4_6_3=y
> -# CT_CC_V_4_6_2 is not set
> -# CT_CC_V_4_6_1 is not set
> -# CT_CC_V_4_6_0 is not set
> -# CT_CC_V_4_5_3 is not set
> -# CT_CC_V_4_5_2 is not set
> -# CT_CC_V_4_5_1 is not set
> -# CT_CC_V_4_5_0 is not set
> -# CT_CC_V_4_4_7 is not set
> -# CT_CC_V_4_4_6 is not set
> -# CT_CC_V_4_4_5 is not set
> -# CT_CC_V_4_4_4 is not set
> -# CT_CC_V_4_4_3 is not set
> -# CT_CC_V_4_4_2 is not set
> -# CT_CC_V_4_4_1 is not set
> -# CT_CC_V_4_4_0 is not set
> -# CT_CC_V_4_3_6 is not set
> -# CT_CC_V_4_3_5 is not set
> -# CT_CC_V_4_3_4 is not set
> -# CT_CC_V_4_3_3 is not set
> -# CT_CC_V_4_3_2 is not set
> -# CT_CC_V_4_3_1 is not set
> -# CT_CC_V_4_2_4 is not set
> -# CT_CC_V_4_2_2 is not set
> -CT_CC_GCC_4_2_or_later=y
> -CT_CC_GCC_4_3_or_later=y
> -CT_CC_GCC_4_4_or_later=y
> -CT_CC_GCC_4_5_or_later=y
> -CT_CC_GCC_4_6=y
> -CT_CC_GCC_4_6_or_later=y
> -CT_CC_GCC_HAS_GRAPHITE=y
> -CT_CC_GCC_HAS_LTO=y
> -CT_CC_GCC_HAS_PKGVERSION_BUGURL=y
> -CT_CC_GCC_HAS_BUILD_ID=y
> -CT_CC_GCC_USE_GMP_MPFR=y
> -CT_CC_GCC_USE_PPL_CLOOG=y
> -CT_CC_GCC_USE_MPC=y
> -CT_CC_GCC_HAS_LIBQUADMATH=y
> -# CT_CC_LANG_FORTRAN is not set
> -CT_CC_SUPPORT_CXX=y
> -CT_CC_SUPPORT_FORTRAN=y
> -CT_CC_SUPPORT_JAVA=y
> -CT_CC_SUPPORT_ADA=y
> -CT_CC_SUPPORT_OBJC=y
> -CT_CC_SUPPORT_OBJCXX=y
> -
> -#
> -# Additional supported languages:
> -#
> -CT_CC_LANG_CXX=y
> -# CT_CC_LANG_JAVA is not set
> -
> -#
> -# gcc other options
> -#
> -CT_CC_ENABLE_CXX_FLAGS=""
> -CT_CC_CORE_EXTRA_CONFIG_ARRAY="--disable-decimal-float"
> -CT_CC_EXTRA_CONFIG_ARRAY="--disable-decimal-float"
> -CT_CC_STATIC_LIBSTDCXX=y
> -
> -#
> -# Optimisation features
> -#
> -CT_CC_GCC_USE_GRAPHITE=y
> -CT_CC_GCC_USE_LTO=y
> -
> -#
> -# Settings for libraries running on target
> -#
> -CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y
> -# CT_CC_GCC_LIBMUDFLAP is not set
> -# CT_CC_GCC_LIBGOMP is not set
> -# CT_CC_GCC_LIBSSP is not set
> -# CT_CC_GCC_LIBQUADMATH is not set
> -
> -#
> -# Misc. obscure options.
> -#
> -CT_CC_CXA_ATEXIT=y
> -# CT_CC_GCC_DISABLE_PCH is not set
> -CT_CC_GCC_SJLJ_EXCEPTIONS=m
> -CT_CC_GCC_LDBL_128=m
> -# CT_CC_GCC_BUILD_ID is not set
> -
> -#
> -# C-library
> -#
> -CT_LIBC="glibc"
> -CT_LIBC_VERSION="2.14.1"
> -# CT_LIBC_eglibc is not set
> -CT_LIBC_glibc=y
> -# CT_LIBC_uClibc is not set
> -CT_LIBC_eglibc_AVAILABLE=y
> -CT_LIBC_glibc_AVAILABLE=y
> -CT_LIBC_GLIBC_V_2_14_1
> -# CT_LIBC_GLIBC_V_2_14 is not set
> -# CT_LIBC_GLIBC_V_2_13 is not set
> -# CT_LIBC_GLIBC_V_2_12_2 is not set
> -# CT_LIBC_GLIBC_V_2_12_1 is not set
> -# CT_LIBC_GLIBC_V_2_11_1 is not set
> -# CT_LIBC_GLIBC_V_2_11 is not set
> -# CT_LIBC_GLIBC_V_2_10_1 is not set
> -# CT_LIBC_GLIBC_V_2_9 is not set
> -# CT_LIBC_GLIBC_V_2_8 is not set
> -CT_LIBC_mingw_AVAILABLE=y
> -CT_LIBC_newlib_AVAILABLE=y
> -CT_LIBC_none_AVAILABLE=y
> -CT_LIBC_uClibc_AVAILABLE=y
> -CT_LIBC_SUPPORT_THREADS_ANY=y
> -CT_LIBC_SUPPORT_NPTL=y
> -CT_THREADS="nptl"
> -
> -#
> -# Common C library options
> -#
> -CT_THREADS_NPTL=y
> -CT_LIBC_XLDD=y
> -CT_LIBC_GLIBC_MAY_FORCE_PORTS=y
> -CT_LIBC_glibc_familly=y
> -CT_LIBC_GLIBC_EXTRA_CONFIG_ARRAY=""
> -CT_LIBC_GLIBC_CONFIGPARMS=""
> -CT_LIBC_GLIBC_EXTRA_CFLAGS=""
> -CT_LIBC_EXTRA_CC_ARGS=""
> -# CT_LIBC_DISABLE_VERSIONING is not set
> -CT_LIBC_OLDEST_ABI=""
> -CT_LIBC_GLIBC_FORCE_UNWIND=y
> -CT_LIBC_GLIBC_USE_PORTS=y
> -CT_LIBC_ADDONS_LIST=""
> -# CT_LIBC_LOCALES is not set
> -# CT_LIBC_GLIBC_KERNEL_VERSION_NONE is not set
> -CT_LIBC_GLIBC_KERNEL_VERSION_AS_HEADERS=y
> -# CT_LIBC_GLIBC_KERNEL_VERSION_CHOSEN is not set
> -CT_LIBC_GLIBC_MIN_KERNEL="3.6.3"
> -
> -#
> -# glibc other options
> -#
> -
> -#
> -# WARNING !!!
> -#
> -
> -#
> -#   For glibc >= 2.8, it can happen that the tarballs
> -#
> -
> -#
> -#   for the addons are not available for download.
> -#
> -
> -#
> -#   If that happens, bad luck... Try a previous version
> -#
> -
> -#
> -#   or try again later... :-(
> -#
> -
> -#
> -# Debug facilities
> -#
> -# CT_DEBUG_dmalloc is not set
> -# CT_DEBUG_duma is not set
> -# CT_DEBUG_gdb is not set
> -# CT_DEBUG_ltrace is not set
> -# CT_DEBUG_strace is not set
> -
> -#
> -# Companion libraries
> -#
> -CT_COMPLIBS_NEEDED=y
> -CT_GMP_NEEDED=y
> -CT_MPFR_NEEDED=y
> -CT_PPL_NEEDED=y
> -CT_CLOOG_NEEDED=y
> -CT_MPC_NEEDED=y
> -CT_COMPLIBS=y
> -CT_GMP=y
> -CT_MPFR=y
> -CT_PPL=y
> -CT_CLOOG=y
> -CT_MPC=y
> -# CT_GMP_V_5_0_2 is not set
> -# CT_GMP_V_5_0_1 is not set
> -CT_GMP_V_4_3_2=y
> -# CT_GMP_V_4_3_1 is not set
> -# CT_GMP_V_4_3_0 is not set
> -CT_GMP_VERSION="4.3.2"
> -# CT_MPFR_V_3_1_0 is not set
> -# CT_MPFR_V_3_0_1 is not set
> -# CT_MPFR_V_3_0_0 is not set
> -CT_MPFR_V_2_4_2=y
> -# CT_MPFR_V_2_4_1 is not set
> -# CT_MPFR_V_2_4_0 is not set
> -CT_MPFR_VERSION="2.4.2"
> -CT_PPL_V_0_11_2=y
> -# CT_PPL_V_0_11_1 is not set
> -# CT_PPL_V_0_11 is not set
> -# CT_PPL_V_0_10_2 is not set
> -CT_PPL_VERSION="0.11.2"
> -CT_PPL_0_11=y
> -CT_PPL_NEEDS_LIBPWL=y
> -CT_CLOOG_V_0_15_11=y
> -# CT_CLOOG_V_0_15_10 is not set
> -# CT_CLOOG_V_0_15_9 is not set
> -# CT_CLOOG_V_0_15_8 is not set
> -# CT_CLOOG_V_0_15_7 is not set
> -# CT_CLOOG_V_0_15_6 is not set
> -CT_CLOOG_VERSION="0.15.11"
> -CT_CLOOG_0_15_1x=y
> -CT_CLOOG_NEEDS_AUTORECONF=y
> -CT_MPC_V_0_9=y
> -# CT_MPC_V_0_8_2 is not set
> -# CT_MPC_V_0_8_1 is not set
> -# CT_MPC_V_0_7 is not set
> -CT_MPC_VERSION="0.9"
> -
> -#
> -# Companion libraries common options
> -#
> -# CT_COMPLIBS_CHECK is not set
> diff --git a/toolchain/toolchain-crosstool-ng/crosstool-ng.config-uClibc b/toolchain/toolchain-crosstool-ng/crosstool-ng.config-uClibc
> deleted file mode 100644
> index 4f21263..0000000
> --- a/toolchain/toolchain-crosstool-ng/crosstool-ng.config-uClibc
> +++ /dev/null
> @@ -1,473 +0,0 @@
> -#
> -# Automatically generated make config: don't edit
> -# crosstool-NG 1.17.0 Configuration
> -# Sat Dec  8 12:50:22 2012
> -#
> -CT_CONFIGURE_has_xz=y
> -CT_CONFIGURE_has_svn=y
> -CT_MODULES=y
> -
> -#
> -# Paths and misc options
> -#
> -
> -#
> -# crosstool-NG behavior
> -#
> -# CT_OBSOLETE is not set
> -# CT_EXPERIMENTAL is not set
> -# CT_DEBUG_CT is not set
> -
> -#
> -# Paths
> -#
> -CT_LOCAL_TARBALLS_DIR=""
> -CT_WORK_DIR="${CT_TOP_DIR}/.build"
> -CT_PREFIX_DIR=""
> -CT_INSTALL_DIR="${CT_PREFIX_DIR}"
> -CT_RM_RF_PREFIX_DIR=y
> -CT_REMOVE_DOCS=y
> -# CT_INSTALL_DIR_RO is not set
> -# CT_STRIP_ALL_TOOLCHAIN_EXECUTABLES is not set
> -
> -#
> -# Downloading
> -#
> -# CT_FORBID_DOWNLOAD is not set
> -# CT_FORCE_DOWNLOAD is not set
> -CT_CONNECT_TIMEOUT=10
> -# CT_ONLY_DOWNLOAD is not set
> -# CT_USE_MIRROR is not set
> -
> -#
> -# Extracting
> -#
> -# CT_FORCE_EXTRACT is not set
> -CT_OVERIDE_CONFIG_GUESS_SUB=y
> -# CT_ONLY_EXTRACT is not set
> -CT_PATCH_BUNDLED=y
> -# CT_PATCH_LOCAL is not set
> -# CT_PATCH_BUNDLED_LOCAL is not set
> -# CT_PATCH_LOCAL_BUNDLED is not set
> -# CT_PATCH_BUNDLED_FALLBACK_LOCAL is not set
> -# CT_PATCH_LOCAL_FALLBACK_BUNDLED is not set
> -# CT_PATCH_NONE is not set
> -CT_PATCH_ORDER="bundled"
> -
> -#
> -# Build behavior
> -#
> -CT_PARALLEL_JOBS=0
> -CT_LOAD=0
> -CT_USE_PIPES=y
> -CT_EXTRA_FLAGS_FOR_HOST=""
> -# CT_CONFIG_SHELL_SH is not set
> -# CT_CONFIG_SHELL_ASH is not set
> -CT_CONFIG_SHELL_BASH=y
> -# CT_CONFIG_SHELL_CUSTOM is not set
> -CT_CONFIG_SHELL="${bash}"
> -
> -#
> -# Logging
> -#
> -# CT_LOG_ERROR is not set
> -# CT_LOG_WARN is not set
> -# CT_LOG_INFO is not set
> -# CT_LOG_EXTRA is not set
> -CT_LOG_ALL=y
> -# CT_LOG_DEBUG is not set
> -CT_LOG_LEVEL_MAX="ALL"
> -# CT_LOG_SEE_TOOLS_WARN is not set
> -CT_LOG_TO_FILE=y
> -CT_LOG_FILE_COMPRESS=y
> -
> -#
> -# Target options
> -#
> -CT_ARCH="arm"
> -CT_ARCH_SUPPORTS_BOTH_MMU=y
> -CT_ARCH_SUPPORTS_BOTH_ENDIAN=y
> -CT_ARCH_SUPPORTS_32=y
> -CT_ARCH_SUPPORTS_WITH_ARCH=y
> -CT_ARCH_SUPPORTS_WITH_CPU=y
> -CT_ARCH_SUPPORTS_WITH_TUNE=y
> -CT_ARCH_SUPPORTS_WITH_FLOAT=y
> -CT_ARCH_SUPPORTS_WITH_FPU=y
> -CT_ARCH_SUPPORTS_SOFTFP=y
> -CT_ARCH_DEFAULT_HAS_MMU=y
> -CT_ARCH_DEFAULT_LE=y
> -CT_ARCH_DEFAULT_32=y
> -CT_ARCH_ARCH=""
> -CT_ARCH_CPU=""
> -CT_ARCH_TUNE=""
> -CT_ARCH_FPU=""
> -# CT_ARCH_BE is not set
> -CT_ARCH_LE=y
> -CT_ARCH_32=y
> -CT_ARCH_BITNESS=32
> -# CT_ARCH_FLOAT_HW is not set
> -CT_ARCH_FLOAT_SW=y
> -CT_TARGET_CFLAGS=""
> -CT_TARGET_LDFLAGS=""
> -# CT_ARCH_alpha is not set
> -CT_ARCH_arm=y
> -# CT_ARCH_avr32 is not set
> -# CT_ARCH_blackfin is not set
> -# CT_ARCH_mips is not set
> -# CT_ARCH_powerpc is not set
> -# CT_ARCH_sh is not set
> -# CT_ARCH_sparc is not set
> -# CT_ARCH_x86 is not set
> -CT_ARCH_alpha_AVAILABLE=y
> -CT_ARCH_arm_AVAILABLE=y
> -CT_ARCH_avr32_AVAILABLE=y
> -CT_ARCH_blackfin_AVAILABLE=y
> -CT_ARCH_m68k_AVAILABLE=y
> -CT_ARCH_microblaze_AVAILABLE=y
> -CT_ARCH_mips_AVAILABLE=y
> -CT_ARCH_powerpc_AVAILABLE=y
> -CT_ARCH_s390_AVAILABLE=y
> -CT_ARCH_sh_AVAILABLE=y
> -CT_ARCH_sparc_AVAILABLE=y
> -CT_ARCH_x86_AVAILABLE=y
> -
> -#
> -# Generic target options
> -#
> -CT_ARCH_USE_MMU=y
> -CT_ARCH_ENDIAN="little"
> -
> -#
> -# Target optimisations
> -#
> -# CT_ARCH_FLOAT_SOFTFP is not set
> -CT_ARCH_FLOAT="soft"
> -
> -#
> -# arm other options
> -#
> -CT_ARCH_ARM_MODE="arm"
> -CT_ARCH_ARM_MODE_ARM=y
> -CT_ARCH_ARM_EABI=y
> -
> -#
> -# Toolchain options
> -#
> -
> -#
> -# General toolchain options
> -#
> -CT_FORCE_SYSROOT=y
> -CT_USE_SYSROOT=y
> -CT_SYSROOT_NAME="sysroot"
> -CT_SYSROOT_DIR_PREFIX=""
> -CT_WANTS_STATIC_LINK=y
> -CT_TOOLCHAIN_PKGVERSION=""
> -CT_TOOLCHAIN_BUGURL=""
> -
> -#
> -# Tuple completion and aliasing
> -#
> -CT_TARGET_VENDOR="unknown"
> -CT_TARGET_ALIAS_SED_EXPR=""
> -CT_TARGET_ALIAS=""
> -
> -#
> -# Toolchain type
> -#
> -CT_CROSS=y
> -CT_TOOLCHAIN_TYPE="cross"
> -
> -#
> -# Build system
> -#
> -CT_BUILD=""
> -CT_BUILD_PREFIX=""
> -CT_BUILD_SUFFIX=""
> -
> -#
> -# Misc options
> -#
> -# CT_TOOLCHAIN_ENABLE_NLS is not set
> -
> -#
> -# Operating System
> -#
> -CT_KERNEL_SUPPORTS_SHARED_LIBS=y
> -CT_KERNEL="linux"
> -CT_KERNEL_VERSION="3.6.3"
> -# CT_KERNEL_bare_metal is not set
> -CT_KERNEL_linux=y
> -CT_KERNEL_bare_metal_AVAILABLE=y
> -CT_KERNEL_linux_AVAILABLE=y
> -CT_KERNEL_V_3_6_3=y
> -# CT_KERNEL_V_3_6_2 is not set
> -# CT_KERNEL_V_3_6_1 is not set
> -# CT_KERNEL_V_3_6 is not set
> -# CT_KERNEL_V_3_5_7 is not set
> -# CT_KERNEL_V_3_4_15 is not set
> -# CT_KERNEL_V_3_3_8 is not set
> -# CT_KERNEL_V_3_2_32 is not set
> -# CT_KERNEL_V_3_1_10 is not set
> -# CT_KERNEL_V_3_0_48 is not set
> -# CT_KERNEL_V_2_6_39_4 is not set
> -# CT_KERNEL_V_2_6_38_8 is not set
> -# CT_KERNEL_V_2_6_37_6 is not set
> -# CT_KERNEL_V_2_6_36_4 is not set
> -# CT_KERNEL_V_2_6_33_20 is not set
> -# CT_KERNEL_V_2_6_32_60 is not set
> -# CT_KERNEL_V_2_6_31_14 is not set
> -# CT_KERNEL_V_2_6_27_62 is not set
> -# CT_KERNEL_LINUX_CUSTOM is not set
> -CT_KERNEL_mingw32_AVAILABLE=y
> -
> -#
> -# Common kernel options
> -#
> -CT_SHARED_LIBS=y
> -
> -#
> -# linux other options
> -#
> -CT_KERNEL_LINUX_VERBOSITY_0=y
> -# CT_KERNEL_LINUX_VERBOSITY_1 is not set
> -# CT_KERNEL_LINUX_VERBOSITY_2 is not set
> -CT_KERNEL_LINUX_VERBOSE_LEVEL=0
> -CT_KERNEL_LINUX_INSTALL_CHECK=y
> -
> -#
> -# Binary utilities
> -#
> -CT_ARCH_BINFMT_ELF=y
> -
> -#
> -# GNU binutils
> -#
> -# CT_BINUTILS_V_2_21_1a is not set
> -CT_BINUTILS_V_2_20_1a=y
> -# CT_BINUTILS_V_2_19_1a is not set
> -# CT_BINUTILS_V_2_18a is not set
> -CT_BINUTILS_VERSION="2.20.1a"
> -CT_BINUTILS_2_20_or_later=y
> -CT_BINUTILS_2_19_or_later=y
> -CT_BINUTILS_2_18_or_later=y
> -CT_BINUTILS_HAS_HASH_STYLE=y
> -CT_BINUTILS_GOLD_SUPPORTS_ARCH=y
> -CT_BINUTILS_HAS_PKGVERSION_BUGURL=y
> -CT_BINUTILS_LINKER_LD=y
> -CT_BINUTILS_LINKERS_LIST="ld"
> -CT_BINUTILS_LINKER_DEFAULT="bfd"
> -CT_BINUTILS_EXTRA_CONFIG_ARRAY=""
> -# CT_BINUTILS_FOR_TARGET is not set
> -
> -#
> -# C compiler
> -#
> -CT_CC="gcc"
> -CT_CC_VERSION="4.6.3"
> -CT_CC_gcc=y
> -# CT_CC_V_4_7_2 is not set
> -CT_CC_V_4_6_3=y
> -# CT_CC_V_4_6_2 is not set
> -# CT_CC_V_4_6_1 is not set
> -# CT_CC_V_4_6_0 is not set
> -# CT_CC_V_4_5_3 is not set
> -# CT_CC_V_4_5_2 is not set
> -# CT_CC_V_4_5_1 is not set
> -# CT_CC_V_4_5_0 is not set
> -# CT_CC_V_4_4_7 is not set
> -# CT_CC_V_4_4_6 is not set
> -# CT_CC_V_4_4_5 is not set
> -# CT_CC_V_4_4_4 is not set
> -# CT_CC_V_4_4_3 is not set
> -# CT_CC_V_4_4_2 is not set
> -# CT_CC_V_4_4_1 is not set
> -# CT_CC_V_4_4_0 is not set
> -# CT_CC_V_4_3_6 is not set
> -# CT_CC_V_4_3_5 is not set
> -# CT_CC_V_4_3_4 is not set
> -# CT_CC_V_4_3_3 is not set
> -# CT_CC_V_4_3_2 is not set
> -# CT_CC_V_4_3_1 is not set
> -# CT_CC_V_4_2_4 is not set
> -# CT_CC_V_4_2_2 is not set
> -CT_CC_GCC_4_2_or_later=y
> -CT_CC_GCC_4_3_or_later=y
> -CT_CC_GCC_4_4_or_later=y
> -CT_CC_GCC_4_5_or_later=y
> -CT_CC_GCC_4_6=y
> -CT_CC_GCC_4_6_or_later=y
> -CT_CC_GCC_HAS_GRAPHITE=y
> -CT_CC_GCC_HAS_LTO=y
> -CT_CC_GCC_HAS_PKGVERSION_BUGURL=y
> -CT_CC_GCC_HAS_BUILD_ID=y
> -CT_CC_GCC_USE_GMP_MPFR=y
> -CT_CC_GCC_USE_PPL_CLOOG=y
> -CT_CC_GCC_USE_MPC=y
> -CT_CC_GCC_HAS_LIBQUADMATH=y
> -# CT_CC_LANG_FORTRAN is not set
> -CT_CC_SUPPORT_CXX=y
> -CT_CC_SUPPORT_FORTRAN=y
> -CT_CC_SUPPORT_JAVA=y
> -CT_CC_SUPPORT_ADA=y
> -CT_CC_SUPPORT_OBJC=y
> -CT_CC_SUPPORT_OBJCXX=y
> -
> -#
> -# Additional supported languages:
> -#
> -CT_CC_LANG_CXX=y
> -# CT_CC_LANG_JAVA is not set
> -
> -#
> -# gcc other options
> -#
> -CT_CC_ENABLE_CXX_FLAGS=""
> -CT_CC_CORE_EXTRA_CONFIG_ARRAY="--disable-decimal-float"
> -CT_CC_EXTRA_CONFIG_ARRAY="--disable-decimal-float"
> -CT_CC_STATIC_LIBSTDCXX=y
> -
> -#
> -# Optimisation features
> -#
> -CT_CC_GCC_USE_GRAPHITE=y
> -CT_CC_GCC_USE_LTO=y
> -
> -#
> -# Settings for libraries running on target
> -#
> -CT_CC_GCC_ENABLE_TARGET_OPTSPACE=y
> -# CT_CC_GCC_LIBMUDFLAP is not set
> -# CT_CC_GCC_LIBGOMP is not set
> -# CT_CC_GCC_LIBSSP is not set
> -# CT_CC_GCC_LIBQUADMATH is not set
> -
> -#
> -# Misc. obscure options.
> -#
> -CT_CC_CXA_ATEXIT=y
> -# CT_CC_GCC_DISABLE_PCH is not set
> -CT_CC_GCC_SJLJ_EXCEPTIONS=m
> -CT_CC_GCC_LDBL_128=m
> -# CT_CC_GCC_BUILD_ID is not set
> -
> -#
> -# C-library
> -#
> -CT_LIBC="uClibc"
> -CT_LIBC_VERSION="0.9.33.2"
> -# CT_LIBC_eglibc is not set
> -# CT_LIBC_glibc is not set
> -CT_LIBC_uClibc=y
> -CT_LIBC_eglibc_AVAILABLE=y
> -CT_LIBC_glibc_AVAILABLE=y
> -CT_LIBC_mingw_AVAILABLE=y
> -CT_LIBC_newlib_AVAILABLE=y
> -CT_LIBC_none_AVAILABLE=y
> -CT_LIBC_uClibc_AVAILABLE=y
> -CT_LIBC_UCLIBC_V_0_9_33_2=y
> -# CT_LIBC_UCLIBC_V_0_9_33_1 is not set
> -# CT_LIBC_UCLIBC_V_0_9_33 is not set
> -# CT_LIBC_UCLIBC_V_0_9_32_1 is not set
> -# CT_LIBC_UCLIBC_V_0_9_32 is not set
> -# CT_LIBC_UCLIBC_V_0_9_30_3 is not set
> -# CT_LIBC_UCLIBC_V_0_9_30_2 is not set
> -# CT_LIBC_UCLIBC_V_0_9_30_1 is not set
> -# CT_LIBC_UCLIBC_V_0_9_30 is not set
> -CT_LIBC_UCLIBC_0_9_32_or_later=y
> -CT_LIBC_UCLIBC_0_9_30_or_later=y
> -CT_LIBC_UCLIBC_PARALLEL=y
> -CT_LIBC_UCLIBC_VERBOSITY_0=y
> -# CT_LIBC_UCLIBC_VERBOSITY_1 is not set
> -# CT_LIBC_UCLIBC_VERBOSITY_2 is not set
> -CT_LIBC_UCLIBC_VERBOSITY=""
> -CT_LIBC_UCLIBC_DEBUG_LEVEL_0=y
> -# CT_LIBC_UCLIBC_DEBUG_LEVEL_1 is not set
> -# CT_LIBC_UCLIBC_DEBUG_LEVEL_2 is not set
> -# CT_LIBC_UCLIBC_DEBUG_LEVEL_3 is not set
> -CT_LIBC_UCLIBC_DEBUG_LEVEL=0
> -CT_LIBC_UCLIBC_CONFIG_FILE=""
> -CT_LIBC_SUPPORT_THREADS_ANY=y
> -CT_LIBC_SUPPORT_NPTL=y
> -CT_LIBC_SUPPORT_LINUXTHREADS=y
> -CT_LIBC_SUPPORT_THREADS_NONE=y
> -CT_THREADS="nptl"
> -
> -#
> -# Common C library options
> -#
> -CT_THREADS_NPTL=y
> -# CT_THREADS_LINUXTHREADS is not set
> -# CT_THREADS_NONE is not set
> -CT_LIBC_XLDD=y
> -
> -#
> -# uClibc other options
> -#
> -CT_LIBC_UCLIBC_LNXTHRD=""
> -# CT_LIBC_UCLIBC_LOCALES is not set
> -CT_LIBC_UCLIBC_WCHAR=y
> -
> -#
> -# Debug facilities
> -#
> -# CT_DEBUG_dmalloc is not set
> -# CT_DEBUG_duma is not set
> -# CT_DEBUG_gdb is not set
> -# CT_DEBUG_ltrace is not set
> -# CT_DEBUG_strace is not set
> -
> -#
> -# Companion libraries
> -#
> -CT_COMPLIBS_NEEDED=y
> -CT_GMP_NEEDED=y
> -CT_MPFR_NEEDED=y
> -CT_PPL_NEEDED=y
> -CT_CLOOG_NEEDED=y
> -CT_MPC_NEEDED=y
> -CT_COMPLIBS=y
> -CT_GMP=y
> -CT_MPFR=y
> -CT_PPL=y
> -CT_CLOOG=y
> -CT_MPC=y
> -# CT_GMP_V_5_0_2 is not set
> -# CT_GMP_V_5_0_1 is not set
> -CT_GMP_V_4_3_2=y
> -# CT_GMP_V_4_3_1 is not set
> -# CT_GMP_V_4_3_0 is not set
> -CT_GMP_VERSION="4.3.2"
> -# CT_MPFR_V_3_1_0 is not set
> -# CT_MPFR_V_3_0_1 is not set
> -# CT_MPFR_V_3_0_0 is not set
> -CT_MPFR_V_2_4_2=y
> -# CT_MPFR_V_2_4_1 is not set
> -# CT_MPFR_V_2_4_0 is not set
> -CT_MPFR_VERSION="2.4.2"
> -CT_PPL_V_0_11_2=y
> -# CT_PPL_V_0_11_1 is not set
> -# CT_PPL_V_0_11 is not set
> -# CT_PPL_V_0_10_2 is not set
> -CT_PPL_VERSION="0.11.2"
> -CT_PPL_0_11=y
> -CT_PPL_NEEDS_LIBPWL=y
> -CT_CLOOG_V_0_15_11=y
> -# CT_CLOOG_V_0_15_10 is not set
> -# CT_CLOOG_V_0_15_9 is not set
> -# CT_CLOOG_V_0_15_8 is not set
> -# CT_CLOOG_V_0_15_7 is not set
> -# CT_CLOOG_V_0_15_6 is not set
> -CT_CLOOG_VERSION="0.15.11"
> -CT_CLOOG_0_15_1x=y
> -CT_CLOOG_NEEDS_AUTORECONF=y
> -CT_MPC_V_0_9=y
> -# CT_MPC_V_0_8_2 is not set
> -# CT_MPC_V_0_8_1 is not set
> -# CT_MPC_V_0_7 is not set
> -CT_MPC_VERSION="0.9"
> -
> -#
> -# Companion libraries common options
> -#
> -# CT_COMPLIBS_CHECK is not set
> diff --git a/toolchain/toolchain-crosstool-ng/crosstool-ng.mk b/toolchain/toolchain-crosstool-ng/crosstool-ng.mk
> deleted file mode 100644
> index 19e8761..0000000
> --- a/toolchain/toolchain-crosstool-ng/crosstool-ng.mk
> +++ /dev/null
> @@ -1,396 +0,0 @@
> -# Makefile fragment for building toolchain with crosstool-NG
> -
> -# As a reference, you can look at toolchain/toolchain-external/ext-tool.mk
> -# for a generic approach to external toolchains.
> -# crosstool-NG as a backend is but a kind of external toolchains,
> -# except that it is not pre-built.
> -
> -#-----------------------------------------------------------------------------
> -# Internal variables
> -
> -CTNG_DIR := $(BUILD_DIR)/build-toolchain
> -
> -CTNG_UCLIBC_CONFIG_FILE := $(TOPDIR)/package/uclibc/uClibc-0.9.33.config
> -CTNG_CONFIG_FILE := $(call qstrip,$(BR2_TOOLCHAIN_CTNG_CONFIG))
> -
> -# Hack! ct-ng is in fact a Makefile script. As such, it accepts all
> -# make options, such as -C, which makes it uneeded to chdir prior
> -# to calling ct-ng.
> -# $1: the set of arguments to pass to ct-ng
> -define ctng
> -PATH=$(HOST_PATH) ct-ng -C $(CTNG_DIR) --no-print-directory $(1)
> -endef
> -
> -#-----------------------------------------------------------------------------
> -toolchain-crosstool-ng: dependencies $(STAMP_DIR)/ct-ng-toolchain-installed
> -
> -# The target used by the infra structure to mean "we just want to
> -# download the toolchain's sources, not build it" For crosstool-NG, we
> -# need it to be configured before we can download; then we have to
> -# override a config option to just do the download
> -toolchain-crosstool-ng-source: $(CTNG_DIR)/.config
> -       $(Q)$(call ctng,build CT_ONLY_DOWNLOAD=y)
> -
> -#-----------------------------------------------------------------------------
> -# Installing the libs to target/ and staging/
> -
> -#--------------
> -# The generic system libraries (in /lib)
> -CTNG_LIBS_LIB := ld*.so libc.so libcrypt.so libdl.so libgcc_s.so libm.so    \
> -                 libnsl.so libpthread.so libresolv.so librt.so libutil.so
> -
> -ifeq ($(BR2_PACKAGE_GDB_SERVER),y)
> -CTNG_LIBS_LIB += libthread_db.so
> -endif
> -
> -#--------------
> -# The libc-specific system libraries (in /lib)
> -# Note: it may be needed to tweak the NSS libs in the glibc and eglibc cases...
> -CTNG_LIBS_uClibc :=
> -CTNG_LIBS_glibc  := libnss_files.so libnss_dns.so
> -CTNG_LIBS_eglibc := $(CTNG_LIBS_glibc)
> -
> -#--------------
> -# All that we need in /lib
> -CTNG_LIBS_LIB += $(CTNG_LIBS_$(call qstrip,$(BR2_TOOLCHAIN_CTNG_LIBC)))
> -
> -#--------------
> -# All that we need in /usr/lib
> -ifneq ($(BR2_INSTALL_LIBSTDCPP),)
> -CTNG_LIBS_USR_LIB += libstdc++.so
> -endif
> -
> -#--------------
> -# Actual copy
> -$(STAMP_DIR)/ct-ng-toolchain-installed: $(STAMP_DIR)/ct-ng-toolchain-built
> -       $(Q)mkdir -p $(TARGET_DIR)/lib
> -       $(Q)CTNG_TUPLE="$$( $(call ctng,show-tuple 2>&1) )";                \
> -           CTNG_SYSROOT="$(HOST_DIR)/usr/$${CTNG_TUPLE}/sysroot";          \
> -           $(call MESSAGE,"Copying toolchain libraries to target...");     \
> -           for libs in $(CTNG_LIBS_LIB); do                                \
> -               $(call copy_toolchain_lib_root,$${CTNG_SYSROOT},,lib,$$libs,/lib); \
> -           done;                                                           \
> -           for libs in $(CTNG_LIBS_USR_LIB); do                            \
> -               $(call copy_toolchain_lib_root,$${CTNG_SYSROOT},,lib,$$libs,/usr/lib); \
> -           done;
> -       $(Q)touch $@
> -
> -#-----------------------------------------------------------------------------
> -# Building the toolchain
> -# Note: $(STAMP_DIR)/ct-ng-toolchain-built can have more dependencies,
> -#       depending on the selected C library. Those deps are added later
> -
> -$(STAMP_DIR)/ct-ng-toolchain-built: $(CTNG_DIR)/.config
> -       $(Q)$(call MESSAGE,"Building the crosstool-NG toolchain")
> -       $(Q)$(call ctng,build.$(PARALLEL_JOBS))
> -       $(Q)printf "\n"
> -       $(Q)touch $@
> -
> -#-----------------------------------------------------------------------------
> -# Configuring the toolchain
> -
> -#--------------
> -# We push BR options down to CT-NG, munging the default configuration
> -# with sed expressions.
> -# - first one for non-path options
> -# - second for path options (because they have no prompt, they
> -#                            always get set to the default value)
> -# - third for C library .config (if it has one, eg. uClibc)
> -CTNG_FIX_BUILDROOT_CONFIG_SED       :=
> -CTNG_FIX_BUILDROOT_CONFIG_PATHS_SED :=
> -CTNG_FIX_BUILDROOT_CONFIG_LIBC_SED  :=
> -
> -#--------------
> -# A few generic functions
> -
> -# Munge a config file, given a sed expression
> -# $1: the .config file to munge
> -# $2: the sed expression to apply
> -define ctng-fix-dot-config
> -       $(Q)sed -r -e '$(2)' $(1) >$(1).sed
> -       $(Q)cmp $(1) $(1).sed >/dev/null 2>&1 && rm -f $(1).sed || mv -f $(1).sed $(1)
> -endef
> -
> -# This function checks the .config did actually change
> -# If not changed, then current .config will be touched with reference to the
> -# stamp file. If the configuration did change, nothing is done.
> -# $1: the current .config to check
> -# $2: the time-stamped .config file
> -define ctng-check-config-changed
> -       $(Q)old_md5="$$( grep -v -E '^(#|$$)' $(2) 2>/dev/null  \
> -                        |md5sum                                \
> -                        |cut -d ' ' -f 1                       \
> -                      )";                                      \
> -           new_md5="$$( grep -v -E '^(#|$$)' $(1) 2>/dev/null  \
> -                        |md5sum                                \
> -                        |cut -d ' ' -f 1                       \
> -                      )";                                      \
> -           if [ $${old_md5} = $${new_md5} -a -f $(2) ]; then   \
> -               touch -r $(2) $(1);                             \
> -           fi
> -endef
> -
> -#--------------
> -# Massage BR2_ARCH so that it matches CT-NG's ARCH
> -#
> -# Note: a lot of the following tricks would become unneeded if one day
> -# buildroot and crosstool-NG had matching options, especially for the
> -# target description: arch name, bitness, endianness...
> -#
> -# Note-2: missing conformity check between BR's .config and libc features.
> -# Use check_uclibc or check_glibc.
> -
> -# Defaults:
> -CTNG_ARCH   := $(CTNG_BR2_ARCH)
> -CTNG_ENDIAN :=
> -CTNG_BIT    :=
> -# Architecture overides, only overide pertinent vars:
> -ifeq      ($(BR2_arm),y)
> -CTNG_ARCH   := arm
> -CTNG_ENDIAN := LE
> -else ifeq ($(BR2_armeb),y)
> -CTNG_ARCH   := arm
> -CTNG_ENDIAN := BE
> -else ifeq ($(BR2_i386),y)
> -CTNG_ARCH   := x86
> -CTNG_BIT    := 32
> -else ifeq ($(BR2_mips),y)
> -CTNG_ARCH   := mips
> -CTNG_ENDIAN := BE
> -else ifeq ($(BR2_mipsel),y)
> -CTNG_ARCH   := mips
> -CTNG_ENDIAN := LE
> -else ifeq ($(BR2_powerpc),y)
> -CTNG_ARCH   := powerpc
> -CTNG_BIT    := 32
> -else ifeq ($(BR2_x86_64),y)
> -CTNG_ARCH   := x86
> -CTNG_BIT    := 64
> -# Add other architecture overides below:
> -#  - keep alphabetic order
> -#  - duplicate next 4 lines, and uncomment
> -#       else ifeq ($(BR2_<arch_name_here>),y)
> -#       CTNG_ARCH   :=
> -#       CTNG_ENDIAN :=
> -#       CTNG_BIT    :=
> -#  - remove unneeded vars
> -#  - add BR arch-name on ifeq line
> -#  - fill-in required CTNG_* vars
> -endif
> -
> -#--------------
> -# Massage BR options into CTNG .config file
> -# CT_ARCH                   : handled by the backend mechanism
> -# CT_ARCH_[BL]E             : endianness
> -# CT_ARCH_(32|64)           : bitness
> -# CT_PREFIX_DIR             : install into BR's toolchain dir
> -# CT_INSTALL_DIR_RO         : do *not* chmod a-w the toolchain dir
> -# CT_LOCAL_TARBALLS_DIR     : share downloads with BR
> -# CT_SYSROOT_DIR_PREFIX     : no prefix needed, really
> -# CT_TARGET_VENDOR          : try to set a unique vendor string, to avoid clashing with BR's vendor string
> -# CT_TARGET_ALIAS           : set the target tuple alias to GNU_TARGET_NAME so that packages' ./configure find the compiler
> -# CT_DEBUG_gdb              : deselect gdb+gdbserver if buildroot builds its own
> -# CT_CC_LANG_CXX            : required if we copy libstdc++.so, and build C++
> -# CT_LIBC_UCLIBC_CONFIG_FILE: uClibc config file, if needed
> -#
> -# Lots of other awfull sed manipulations go here, to override CT-NG's .config
> -# with BR2 config options.
> -# Known missing: arch options, uClibc/eglibc config...
> -#
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(CT_INSTALL_DIR_RO)=y:\# \1 is not set:;
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(|\# )(CT_ARCH_[BL]E).*:\# \2 is not set:;
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^\# (CT_ARCH_$(CTNG_ENDIAN)) is not set:\1=y:;
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(|\# )(CT_ARCH_(32|64)).*:\# \2 is not set:;
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^\# (CT_ARCH_$(CTNG_BIT)) is not set:\1=y:;
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(CT_TARGET_VENDOR)=.*:\1="buildroot":;
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(CT_TARGET_ALIAS)=.*:\1="$(ARCH)-linux":;
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(CT_TOOLCHAIN_PKGVERSION)="(.*)":\1="buildroot $(BR2_VERSION_FULL)":;
> -ifneq ($(call qstrip,$(BR2_USE_MMU)),)
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^\# (CT_ARCH_USE_MMU) is not set:\1=y:;
> -else
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(CT_ARCH_USE_MMU)=y:\# \1 is not set:;
> -endif
> -ifneq ($(call qstrip,$(BR2_PACKAGE_GDB_SERVER))$(call qstrip,$(BR2_PACKAGE_GDB_HOST)),)
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(CT_DEBUG_gdb)=.*:\# \1 is not set:;
> -endif
> -ifeq ($(call qstrip,$(BR2_TOOLCHAIN_CTNG_CXX)),y)
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^\# (CT_CC_LANG_CXX) is not set:\1=y:;
> -else
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(CT_CC_LANG_CXX)=.*:\# \1 is not set:;
> -endif
> -
> -# Shoe-horn CPU variant now
> -ifneq ($(call qstrip,$(BR2_GCC_TARGET_ARCH)),)
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(CT_ARCH_ARCH)=.*:\1=$(BR2_GCC_TARGET_ARCH):;
> -endif
> -ifneq ($(call qstrip,$(BR2_GCC_TARGET_TUNE)),)
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(CT_ARCH_TUNE)=.*:\1=$(BR2_GCC_TARGET_TUNE):;
> -endif
> -
> -# And floating point now
> -ifeq ($(call qstrip,$(BR2_SOFT_FLOAT)),)
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^\# (CT_ARCH_FLOAT_HW) is not set:\1=y:;
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(CT_ARCH_FLOAT_SW)=y:\# \1 is not set:;
> -else
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(CT_ARCH_FLOAT_HW)=y:\# \1 is not set:;
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^\# (CT_ARCH_FLOAT_SW) is not set:\1=y:;
> -endif
> -
> -# Thread implementation selection
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(|\# )(CT_THREADS_NONE).*:\# \2 is not set:;
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(|\# )(CT_THREADS_LINUXTHREADS).*:\# \2 is not set:;
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(|\# )(CT_THREADS_NPTL).*:\# \2 is not set:;
> -ifneq ($(call qstrip,$(BR2_TOOLCHAIN_CTNG_THREADS_PTHREADS))$(call qstrip,$(BR2_TOOLCHAIN_CTNG_THREADS_PTHREADS_OLD)),)
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(|\# )(CT_THREADS_LINUXTHREADS).*:\2=y:;
> - ifneq ($(call qstrip,$(BR2_TOOLCHAIN_CTNG_uClibc)),)
> -  ifneq ($(call qstrip,$(BR2_TOOLCHAIN_CTNG_THREADS_PTHREADS_OLD)),)
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(|\# )(CT_LIBC_UCLIBC_LNXTHRD_NEW).*:\# \2 is not set:;
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(|\# )(CT_LIBC_UCLIBC_LNXTHRD_OLD).*:\2=y:;
> -  else
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(|\# )(CT_LIBC_UCLIBC_LNXTHRD_OLD).*:\# \2 is not set:;
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(|\# )(CT_LIBC_UCLIBC_LNXTHRD_NEW).*:\2=y:;
> -  endif
> - endif
> -else ifneq ($(call qstrip,$(BR2_TOOLCHAIN_CTNG_THREADS_NPTL)),)
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(|\# )(CT_THREADS_NPTL).*:\2=y:;
> -else ifneq ($(call qstrip,$(BR2_TOOLCHAIN_CTNG_THREADS_NONE)),)
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(|\# )(CT_THREADS_NONE).*:\2=y:;
> -endif
> -
> -#--------------
> -# And the specials for paths
> -CTNG_FIX_BUILDROOT_CONFIG_PATHS_SED += s:^(CT_PREFIX_DIR)=.*:\1="$(HOST_DIR)/usr":;
> -CTNG_FIX_BUILDROOT_CONFIG_PATHS_SED += s:^(CT_LOCAL_TARBALLS_DIR)=.*:\1="$(DL_DIR)":;
> -CTNG_FIX_BUILDROOT_CONFIG_PATHS_SED += s:^(CT_SYSROOT_NAME)=.*:\1="sysroot":;
> -CTNG_FIX_BUILDROOT_CONFIG_PATHS_SED += s:^(CT_SYSROOT_DIR_PREFIX)=.*:\1="":;
> -
> -#--------------
> -# uClibc specific options
> -ifeq ($(BR2_TOOLCHAIN_CTNG_uClibc),y)
> -
> -# Handle the locales option
> -ifneq ($(call qstrip,$(BR2_TOOLCHAIN_CTNG_uClibc_LOCALE)),)
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^\# (CT_LIBC_UCLIBC_LOCALES) is not set:\1=y\n\# CT_LIBC_UCLIBC_LOCALES_PREGEN_DATA is not set:;
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(CT_LIBC_UCLIBC_LOCALES_PREGEN_DATA)=.*:\# \1 is not set:;
> -else
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(CT_LIBC_UCLIBC_LOCALES)=.*:\# \1 is not set:;
> -endif
> -
> -# Handle the wide-char option
> -ifneq ($(call qstrip,$(BR2_TOOLCHAIN_CTNG_uClibc_WCHAR)),)
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^\# (CT_LIBC_UCLIBC_WCHAR) is not set:\1=y:;
> -else
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(CT_LIBC_UCLIBC_WCHAR)=.*:\# \1 is not set:;
> -endif
> -
> -# Handle the LFS option
> -ifneq ($(call qstrip,$(BR2_TOOLCHAIN_CTNG_uClibc_LARGEFILE)),)
> -CTNG_FIX_BUILDROOT_CONFIG_LIBC_SED += s:^\# (UCLIBC_HAS_LFS) is not set:\1=y:;
> -else
> -CTNG_FIX_BUILDROOT_CONFIG_LIBC_SED += s:^(UCLIBC_HAS_LFS)=.*:\# \1 is not set:;
> -endif
> -
> -# Handle the IPv6 option
> -ifneq ($(call qstrip,$(BR2_TOOLCHAIN_CTNG_uClibc_INET_IPV6)),)
> -CTNG_FIX_BUILDROOT_CONFIG_LIBC_SED += s:^\# (UCLIBC_HAS_IPV6) is not set:\1=y:;
> -else
> -CTNG_FIX_BUILDROOT_CONFIG_LIBC_SED += s:^(UCLIBC_HAS_IPV6)=.*:\# \1 is not set:;
> -endif
> -
> -# Handle the RPC option
> -ifneq ($(call qstrip,$(BR2_TOOLCHAIN_CTNG_uClibc_INET_RPC)),)
> -CTNG_FIX_BUILDROOT_CONFIG_LIBC_SED += s:^\# (UCLIBC_HAS_RPC) is not set:\1=y\nUCLIBC_HAS_FULL_RPC=y\nUCLIBC_HAS_REENTRANT_RPC=y:;
> -CTNG_FIX_BUILDROOT_CONFIG_LIBC_SED += s:^\# (UCLIBC_HAS_FULL_RPC) is not set:\1=y:;
> -CTNG_FIX_BUILDROOT_CONFIG_LIBC_SED += s:^\# (UCLIBC_HAS_REENTRANT_RPC) is not set:\1=y:;
> -else
> -CTNG_FIX_BUILDROOT_CONFIG_LIBC_SED += s:^(UCLIBC_HAS_RPC)=.*:\# \1 is not set:;
> -endif
> -
> -# Instruct CT-NG's .config where to find the uClibc's .config
> -CTNG_FIX_BUILDROOT_CONFIG_PATHS_SED += s:^(CT_LIBC_UCLIBC_CONFIG_FILE)=.*:\1="$(CTNG_DIR)/libc.config":;
> -
> -# And add this to the toolchain build dependency
> -$(STAMP_DIR)/ct-ng-toolchain-built: $(CTNG_DIR)/libc.config
> -
> -# And here is how we get this uClibc's .config
> -$(CTNG_DIR)/libc.config: $(CTNG_UCLIBC_CONFIG_FILE) $(BUILDROOT_CONFIG)
> -       -$(Q)cp -a $@ $@.timestamp
> -       $(Q)cp -f $< $@
> -       $(call ctng-fix-dot-config,$@,$(CTNG_FIX_BUILDROOT_CONFIG_LIBC_SED))
> -       $(call ctng-check-config-changed,$@,$@.timestamp)
> -       $(Q)rm -f $@.timestamp
> -
> -endif # LIBC is uClibc
> -
> -#--------------
> -# glibc/eglibc specific options
> -ifeq ($(BR2_TOOLCHAIN_CTNG_glibc)$(BR2_TOOLCHAIN_CTNG_eglibc),y)
> -
> -# Force unwind support
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^\# (CT_LIBC_GLIBC_FORCE_UNWIND) is not set:\1=y:;
> -
> -# Force non-fortified build
> -CTNG_FIX_BUILDROOT_CONFIG_SED += s:^(CT_LIBC_ENABLE_FORTIFIED_BUILD)=y:\# \1 is not set:;
> -
> -endif # LIBC is glibc or eglibc
> -
> -#--------------
> -# Small functions to shoe-horn the above into crosstool-NG's .config
> -
> -# Function to update the .config
> -# We first munge the .config to shoe-horn defaults, then we push that unto
> -# crosstool-NG's oldconfig process, to sort out wizy-wazy deps, and then we
> -# shoe-horn paths again, as they get ripped-out by oldconfig (is that a bug
> -# or a feature of kconfig?)
> -# $1: the .config file to munge
> -define ctng-oldconfig
> -       $(call ctng-fix-dot-config,$(1),$(CTNG_FIX_BUILDROOT_CONFIG_SED))
> -       $(Q)yes ''                                             |\
> -       $(call ctng,CT_IS_A_BACKEND=y                           \
> -                   CT_BACKEND_ARCH=$(CTNG_ARCH)                \
> -                   CT_BACKEND_KERNEL=linux                     \
> -                   CT_BACKEND_LIBC=$(BR2_TOOLCHAIN_CTNG_LIBC)  \
> -                   oldconfig                                   )
> -       $(call ctng-fix-dot-config,$(1),$(CTNG_FIX_BUILDROOT_CONFIG_PATHS_SED))
> -endef
> -
> -# We need the host crosstool-NG before we can even begin working
> -# on the toolchain. Using order-only dependency, as we do not want
> -# to rebuild the toolchain for every run...
> -$(CTNG_DIR)/.config: | host-crosstool-ng
> -
> -# Default configuration
> -# Only copy the original .config file if we don't have one already.
> -# Check that given config file matches selected C library.
> -# We need to call oldconfig twice in a row to ensure the options
> -# are correctly set ( eg. if an option is new, then the initial sed
> -# can't do anything about it ) Ideally, this should go in oldconfig
> -# itself, but it's much easier to handle here.
> -$(CTNG_DIR)/.config:
> -       $(Q)if [ ! -f $@ ]; then                                                        \
> -               mkdir -p "$(CTNG_DIR)";                                                 \
> -               libc="$$(awk -F '"' '$$1=="CT_LIBC=" { print $$2; }'                    \
> -                               "$(CTNG_CONFIG_FILE)"                                   \
> -                       )";                                                             \
> -               if [ "$${libc}" != "$(BR2_TOOLCHAIN_CTNG_LIBC)" ]; then                 \
> -                   echo "* Inconsistency in crosstool-NG config file '$(CTNG_CONFIG_FILE)'"; \
> -                   echo "* - buildroot configured for '$(BR2_TOOLCHAIN_CTNG_LIBC)'";   \
> -                   echo "* - given config file for '$${libc}'";                        \
> -                   exit 1;                                                             \
> -               fi;                                                                     \
> -               cp -f $(CTNG_CONFIG_FILE) $@;                                                            \
> -           fi
> -       $(call ctng-oldconfig,$@)
> -       $(call ctng-oldconfig,$@)
> -
> -# Manual configuration
> -ctng-menuconfig: $(CTNG_DIR)/.config
> -       $(Q)cp -a $< $<.timestamp
> -       $(Q)$(call ctng,CT_IS_A_BACKEND=y                           \
> -                       CT_BACKEND_ARCH=$(CTNG_ARCH)                \
> -                       CT_BACKEND_KERNEL=linux                     \
> -                       CT_BACKEND_LIBC=$(BR2_TOOLCHAIN_CTNG_LIBC)  \
> -                       menuconfig                                  )
> -       $(call ctng-oldconfig,$<)
> -       $(call ctng-check-config-changed,$<,$<.timestamp)
> -       $(Q)rm -f $<.timestamp
> --


I still found two references to CTNG in:

package/Makefile.in:137:ifeq ($(BR2_TOOLCHAIN_BUILDROOT)$(BR2_TOOLCHAIN_CTNG),y)
package/libglib2/libglib2.mk:55:ifeq
($(BR2_UCLIBC_VERSION_0_9_32)$(BR2_TOOLCHAIN_CTNG_uClibc)$(BR2_TOOLCHAIN_EXTERNAL_UCLIBC)$(BR2_TOOLCHAIN_EXTERNAL_XILINX_MICROBLAZEEL_V2)$(BR2_TOOLCHAIN_EXTERNAL_XILINX_MICROBLAZEBE_V2),y)

Other than this, I also don't have a problem of removing the
crosstool-ng support inside buildroot. I was using it before, but now
successfully migrated to an external crosstool-ng repo.

Best regards,
Thomas

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 01/11] Makefile: make $(BUILD_DIR)/.root rule idempotent
  2013-09-05 21:27 ` [Buildroot] [RFCv1 01/11] Makefile: make $(BUILD_DIR)/.root rule idempotent Thomas Petazzoni
  2013-09-08 12:06   ` Thomas De Schampheleire
@ 2013-09-08 13:13   ` Danomi Manchego
  2013-09-08 13:30     ` Thomas Petazzoni
  2013-09-09  8:54   ` Luca Ceresoli
  2013-09-09 21:38   ` Peter Korsgaard
  3 siblings, 1 reply; 49+ messages in thread
From: Danomi Manchego @ 2013-09-08 13:13 UTC (permalink / raw)
  To: buildroot

Thomas,

On Thu, Sep 5, 2013 at 5:27 PM, Thomas Petazzoni <
thomas.petazzoni@free-electrons.com> wrote:

> $(TARGET_DIR_WARNING_FILE)
> -       @ln -s lib $(TARGET_DIR)/$(LIB_SYMLINK)
> -       @mkdir -p $(TARGET_DIR)/usr
> -       @ln -s lib $(TARGET_DIR)/usr/$(LIB_SYMLINK)
> +       $(Q)if [ ! -L $(TARGET_DIR)/$(LIB_SYMLINK) ]; then \
> +               ln -s lib $(TARGET_DIR)/$(LIB_SYMLINK) ; \
> +       fi
> +       $(Q)mkdir -p $(TARGET_DIR)/usr
> +       $(Q)if [ ! -L $(TARGET_DIR)/usr/$(LIB_SYMLINK) ]; then \
> +               ln -s lib $(TARGET_DIR)/usr/$(LIB_SYMLINK) ; \
> +       fi
>         touch $@
>
>  $(TARGET_DIR): $(BUILD_DIR)/.root


Wouldn't just changing the "ln -s" to "ln -snf" be sufficient?  After all,
that's what is being done to make $(STAGING_DIR):

$(STAGING_DIR):
@mkdir -p $(STAGING_DIR)/bin
@mkdir -p $(STAGING_DIR)/lib
@ln -snf lib $(STAGING_DIR)/$(LIB_SYMLINK)
@mkdir -p $(STAGING_DIR)/usr/lib
@ln -snf lib $(STAGING_DIR)/usr/$(LIB_SYMLINK)
   ....

Danomi -
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20130908/df73698a/attachment-0001.html>

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 01/11] Makefile: make $(BUILD_DIR)/.root rule idempotent
  2013-09-08 13:13   ` Danomi Manchego
@ 2013-09-08 13:30     ` Thomas Petazzoni
  2013-09-08 16:59       ` Danomi Manchego
  0 siblings, 1 reply; 49+ messages in thread
From: Thomas Petazzoni @ 2013-09-08 13:30 UTC (permalink / raw)
  To: buildroot

Dear Danomi Manchego,

On Sun, 8 Sep 2013 09:13:30 -0400, Danomi Manchego wrote:

> > $(TARGET_DIR_WARNING_FILE)
> > -       @ln -s lib $(TARGET_DIR)/$(LIB_SYMLINK)
> > -       @mkdir -p $(TARGET_DIR)/usr
> > -       @ln -s lib $(TARGET_DIR)/usr/$(LIB_SYMLINK)
> > +       $(Q)if [ ! -L $(TARGET_DIR)/$(LIB_SYMLINK) ]; then \
> > +               ln -s lib $(TARGET_DIR)/$(LIB_SYMLINK) ; \
> > +       fi
> > +       $(Q)mkdir -p $(TARGET_DIR)/usr
> > +       $(Q)if [ ! -L $(TARGET_DIR)/usr/$(LIB_SYMLINK) ]; then \
> > +               ln -s lib $(TARGET_DIR)/usr/$(LIB_SYMLINK) ; \
> > +       fi
> >         touch $@
> >
> >  $(TARGET_DIR): $(BUILD_DIR)/.root
> 
> 
> Wouldn't just changing the "ln -s" to "ln -snf" be sufficient?  After
> all, that's what is being done to make $(STAGING_DIR):

I think, when I tried it, it wasn't working: at the second invocation,
it creates a symbolic link *within* the lib directory. Example:

thomas at skate:/tmp$ mkdir target
thomas at skate:/tmp$ cd target/
thomas at skate:/tmp/target$ ls
thomas at skate:/tmp/target$ mkdir lib
thomas at skate:/tmp/target$ ls lib/

# lib/ is empty

thomas at skate:/tmp/target$ ln -sf lib lib32
thomas at skate:/tmp/target$ ls -l
total 0
drwxrwxr-x 2 thomas thomas 40 sept.  8 15:27 lib
lrwxrwxrwx 1 thomas thomas  3 sept.  8 15:28 lib32 -> lib
thomas at skate:/tmp/target$ ls lib/

# we have the symbolic link, lib/ is still empty. Now we will create
# the symbolic link again

thomas at skate:/tmp/target$ ln -sf lib lib32
thomas at skate:/tmp/target$ ls -l
total 0
drwxrwxr-x 2 thomas thomas 60 sept.  8 15:28 lib
lrwxrwxrwx 1 thomas thomas  3 sept.  8 15:28 lib32 -> lib
thomas at skate:/tmp/target$ ls -l lib/
total 0
lrwxrwxrwx 1 thomas thomas 3 sept.  8 15:28 lib -> lib

# A stale symbolic link was created in lib/

Best regards,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 03/11] toolchain-external: make ext-tool.mk includable in all cases
  2013-09-05 21:27 ` [Buildroot] [RFCv1 03/11] toolchain-external: make ext-tool.mk includable in all cases Thomas Petazzoni
@ 2013-09-08 15:31   ` Thomas De Schampheleire
  0 siblings, 0 replies; 49+ messages in thread
From: Thomas De Schampheleire @ 2013-09-08 15:31 UTC (permalink / raw)
  To: buildroot

On Thu, Sep 5, 2013 at 11:27 PM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> The ext-tool.mk logic uses the TOOLCHAIN_EXTERNAL_PREFIX variable
> unconditionally, even if the external toolchain is not used. Until now
> this wasn't a problem since ext-tool.mk was only included when the
> external toolchain backend was selected, but the next patches are
> going to include this file unconditionally.
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ---
>  toolchain/toolchain-external/ext-tool.mk | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/toolchain/toolchain-external/ext-tool.mk b/toolchain/toolchain-external/ext-tool.mk
> index e92afbd..fbcbe6c 100644
> --- a/toolchain/toolchain-external/ext-tool.mk
> +++ b/toolchain/toolchain-external/ext-tool.mk
> @@ -1,4 +1,3 @@
> -
>  #
>  # This file implements the support for external toolchains, i.e
>  # toolchains that have not been produced by Buildroot itself and that
> @@ -112,8 +111,10 @@ TOOLCHAIN_EXTERNAL_DIR=$(call qstrip,$(BR2_TOOLCHAIN_EXTERNAL_PATH))
>  endif
>
>  ifeq ($(TOOLCHAIN_EXTERNAL_DIR),)
> +ifneq ($(TOOLCHAIN_EXTERNAL_PREFIX),)
>  # if no path set, figure it out from path
>  TOOLCHAIN_EXTERNAL_BIN := $(shell dirname $(shell which $(TOOLCHAIN_EXTERNAL_PREFIX)-gcc))
> +endif
>  else
>  ifeq ($(BR2_bfin),y)
>  TOOLCHAIN_EXTERNAL_BIN := $(TOOLCHAIN_EXTERNAL_DIR)/$(TOOLCHAIN_EXTERNAL_PREFIX)/bin

Acked-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 01/11] Makefile: make $(BUILD_DIR)/.root rule idempotent
  2013-09-08 13:30     ` Thomas Petazzoni
@ 2013-09-08 16:59       ` Danomi Manchego
  2013-09-08 17:31         ` Thomas Petazzoni
  0 siblings, 1 reply; 49+ messages in thread
From: Danomi Manchego @ 2013-09-08 16:59 UTC (permalink / raw)
  To: buildroot

Thomas,

On Sun, Sep 8, 2013 at 9:30 AM, Thomas Petazzoni <
thomas.petazzoni@free-electrons.com> wrote:
>
> > Wouldn't just changing the "ln -s" to "ln -snf" be sufficient?  After
> > all, that's what is being done to make $(STAGING_DIR):
>
> I think, when I tried it, it wasn't working: at the second invocation,
> it creates a symbolic link *within* the lib directory. Example:
>
> thomas at skate:/tmp$ mkdir target
> thomas at skate:/tmp$ cd target/
> thomas at skate:/tmp/target$ ls
> thomas at skate:/tmp/target$ mkdir lib
> thomas at skate:/tmp/target$ ls lib/
>
> # lib/ is empty
>
> thomas at skate:/tmp/target$ ln -sf lib lib32
> thomas at skate:/tmp/target$ ls -l
> total 0
> drwxrwxr-x 2 thomas thomas 40 sept.  8 15:27 lib
> lrwxrwxrwx 1 thomas thomas  3 sept.  8 15:28 lib32 -> lib


 "ln -sf" is not sufficient for a symlink to a directory - you need "ln
-snf" - the -n treats the directory symlink as a file, which prevents this
very problem.

Example based on your example:

/tmp$ mkdir -p target/lib
/tmp$ cd target
/tmp/target$ ls lib/

# lib/ is empty

/tmp/target$ ln -snf lib lib32
/tmp/target$ ls -l
total 4
drwxrwxr-x 2 dmanchego dmanchego 4096 Sep  8 12:49 lib
lrwxrwxrwx 1 dmanchego dmanchego    3 Sep  8 12:50 lib32 -> lib
/tmp/target$ ls lib/

# we have the symbolic link, lib/ is empty

/tmp/target$ ln -snf lib lib32
/tmp/target$ ls -l
total 4
drwxrwxr-x 2 dmanchego dmanchego 4096 Sep  8 12:49 lib
lrwxrwxrwx 1 dmanchego dmanchego    3 Sep  8 12:50 lib32 -> lib
/tmp/target$ ls lib/

# still good!

/tmp/target$ ln -snf lib lib32
/tmp/target$ ls -l
total 4
drwxrwxr-x 2 dmanchego dmanchego 4096 Sep  8 12:49 lib
lrwxrwxrwx 1 dmanchego dmanchego    3 Sep  8 12:50 lib32 -> lib
/tmp/target$ ls lib/

# still good!

Using the "ln -snf" lets you drop the if statements, so it seems desirable.

Danomi -
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20130908/98c200b2/attachment-0001.html>

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 01/11] Makefile: make $(BUILD_DIR)/.root rule idempotent
  2013-09-08 16:59       ` Danomi Manchego
@ 2013-09-08 17:31         ` Thomas Petazzoni
  0 siblings, 0 replies; 49+ messages in thread
From: Thomas Petazzoni @ 2013-09-08 17:31 UTC (permalink / raw)
  To: buildroot

Dear Danomi Manchego,

On Sun, 8 Sep 2013 12:59:23 -0400, Danomi Manchego wrote:

>  "ln -sf" is not sufficient for a symlink to a directory - you need "ln
> -snf" - the -n treats the directory symlink as a file, which prevents this
> very problem.

Aah, good!

> Using the "ln -snf" lets you drop the if statements, so it seems desirable.

Right, makes sense. I'll fix this up for the next iteration of the
patch series.

Thanks!

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 04/11] toolchain: move helpers.mk into toolchain-external/
  2013-09-05 21:27 ` [Buildroot] [RFCv1 04/11] toolchain: move helpers.mk into toolchain-external/ Thomas Petazzoni
@ 2013-09-08 17:50   ` Thomas De Schampheleire
  2013-09-13 16:07   ` Luca Ceresoli
  1 sibling, 0 replies; 49+ messages in thread
From: Thomas De Schampheleire @ 2013-09-08 17:50 UTC (permalink / raw)
  To: buildroot

On Thu, Sep 5, 2013 at 11:27 PM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> The helpers.mk file is no longer used by the Crosstool-NG backend, so
> it is moved into the toolchain/toolchain-external/ directory.
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ---
>  toolchain/{ => toolchain-external}/helpers.mk | 0
>  1 file changed, 0 insertions(+), 0 deletions(-)
>  rename toolchain/{ => toolchain-external}/helpers.mk (100%)
>
> diff --git a/toolchain/helpers.mk b/toolchain/toolchain-external/helpers.mk
> similarity index 100%
> rename from toolchain/helpers.mk
> rename to toolchain/toolchain-external/helpers.mk

Acked-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 01/11] Makefile: make $(BUILD_DIR)/.root rule idempotent
  2013-09-05 21:27 ` [Buildroot] [RFCv1 01/11] Makefile: make $(BUILD_DIR)/.root rule idempotent Thomas Petazzoni
  2013-09-08 12:06   ` Thomas De Schampheleire
  2013-09-08 13:13   ` Danomi Manchego
@ 2013-09-09  8:54   ` Luca Ceresoli
  2013-09-09 21:38   ` Peter Korsgaard
  3 siblings, 0 replies; 49+ messages in thread
From: Luca Ceresoli @ 2013-09-09  8:54 UTC (permalink / raw)
  To: buildroot

Thomas Petazzoni wrote:
> The $(BUILD_DIR)/.root rule is executed as part of the 'dirs'
> target. The 'dirs' target is re-executed at every execution of 'make
> external-deps', and make external-deps explicitly tells make to ignore
> targets that have already been made (through the -B option). This
> means that the $(BUILD_DIR)/.root rule has to be idempotant, which was
> not the case this the introduction of the lib32/lib64 symbolic

"not the case {this =>since}"?

I would also cite the original commit SHA1 for easier reference:
5628776c4a4d29d07.

Apart these minor details:
Acked-by: Luca Ceresoli <luca@lucaceresoli.net>
Tested-by: Luca Ceresoli <luca@lucaceresoli.net>
[Tested with a few minimal configs]

Luca

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 01/11] Makefile: make $(BUILD_DIR)/.root rule idempotent
  2013-09-05 21:27 ` [Buildroot] [RFCv1 01/11] Makefile: make $(BUILD_DIR)/.root rule idempotent Thomas Petazzoni
                     ` (2 preceding siblings ...)
  2013-09-09  8:54   ` Luca Ceresoli
@ 2013-09-09 21:38   ` Peter Korsgaard
  2013-09-10  7:23     ` Thomas Petazzoni
  3 siblings, 1 reply; 49+ messages in thread
From: Peter Korsgaard @ 2013-09-09 21:38 UTC (permalink / raw)
  To: buildroot

>>>>> "Thomas" == Thomas Petazzoni <thomas.petazzoni@free-electrons.com> writes:

 Thomas> The $(BUILD_DIR)/.root rule is executed as part of the 'dirs'
 Thomas> target. The 'dirs' target is re-executed at every execution of 'make
 Thomas> external-deps', and make external-deps explicitly tells make to ignore
 Thomas> targets that have already been made (through the -B option). This
 Thomas> means that the $(BUILD_DIR)/.root rule has to be idempotant, which was
 Thomas> not the case this the introduction of the lib32/lib64 symbolic
 Thomas> link.

 Thomas> Running 'make external-deps' three times in a row was sufficient to
 Thomas> trigger an error due to symbolic links being incorrectly created. This
 Thomas> patch fixes that.

 Thomas> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
 Thomas> ---
 Thomas> This should probably be taken for 2013.08.1 as a fix of 'make
 Thomas> external-deps'.
 Thomas> ---
 Thomas>  Makefile | 10 +++++++---
 Thomas>  1 file changed, 7 insertions(+), 3 deletions(-)

 Thomas> diff --git a/Makefile b/Makefile
 Thomas> index 09faeba..93fc6ea 100644
 Thomas> --- a/Makefile
 Thomas> +++ b/Makefile
 Thomas> @@ -447,9 +447,13 @@ $(BUILD_DIR)/.root:
 Thomas>  		--exclude .hg --exclude=CVS --exclude '*~' \
 Thomas>  		$(TARGET_SKELETON)/ $(TARGET_DIR)/
 Thomas>  	cp support/misc/target-dir-warning.txt $(TARGET_DIR_WARNING_FILE)
 Thomas> -	@ln -s lib $(TARGET_DIR)/$(LIB_SYMLINK)
 Thomas> -	@mkdir -p $(TARGET_DIR)/usr
 Thomas> -	@ln -s lib $(TARGET_DIR)/usr/$(LIB_SYMLINK)
 Thomas> +	$(Q)if [ ! -L $(TARGET_DIR)/$(LIB_SYMLINK) ]; then \
 Thomas> +		ln -s lib $(TARGET_DIR)/$(LIB_SYMLINK) ; \

Can't you just do ln -sf like we do elsewhere?

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 01/11] Makefile: make $(BUILD_DIR)/.root rule idempotent
  2013-09-09 21:38   ` Peter Korsgaard
@ 2013-09-10  7:23     ` Thomas Petazzoni
  0 siblings, 0 replies; 49+ messages in thread
From: Thomas Petazzoni @ 2013-09-10  7:23 UTC (permalink / raw)
  To: buildroot

Dear Peter Korsgaard,

On Mon, 09 Sep 2013 23:38:44 +0200, Peter Korsgaard wrote:

>  Thomas> diff --git a/Makefile b/Makefile
>  Thomas> index 09faeba..93fc6ea 100644
>  Thomas> --- a/Makefile
>  Thomas> +++ b/Makefile
>  Thomas> @@ -447,9 +447,13 @@ $(BUILD_DIR)/.root:
>  Thomas>  		--exclude .hg --exclude=CVS --exclude '*~' \
>  Thomas>  		$(TARGET_SKELETON)/ $(TARGET_DIR)/
>  Thomas>  	cp support/misc/target-dir-warning.txt $(TARGET_DIR_WARNING_FILE)
>  Thomas> -	@ln -s lib $(TARGET_DIR)/$(LIB_SYMLINK)
>  Thomas> -	@mkdir -p $(TARGET_DIR)/usr
>  Thomas> -	@ln -s lib $(TARGET_DIR)/usr/$(LIB_SYMLINK)
>  Thomas> +	$(Q)if [ ! -L $(TARGET_DIR)/$(LIB_SYMLINK) ]; then \
>  Thomas> +		ln -s lib $(TARGET_DIR)/$(LIB_SYMLINK) ; \
> 
> Can't you just do ln -sf like we do elsewhere?

ln -sf no, but ln -snf yes. I'll fix up the patch and resend.

Thanks,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 04/11] toolchain: move helpers.mk into toolchain-external/
  2013-09-05 21:27 ` [Buildroot] [RFCv1 04/11] toolchain: move helpers.mk into toolchain-external/ Thomas Petazzoni
  2013-09-08 17:50   ` Thomas De Schampheleire
@ 2013-09-13 16:07   ` Luca Ceresoli
  1 sibling, 0 replies; 49+ messages in thread
From: Luca Ceresoli @ 2013-09-13 16:07 UTC (permalink / raw)
  To: buildroot

Thomas Petazzoni wrote:
> The helpers.mk file is no longer used by the Crosstool-NG backend, so
> it is moved into the toolchain/toolchain-external/ directory.
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ---
>   toolchain/{ => toolchain-external}/helpers.mk | 0
>   1 file changed, 0 insertions(+), 0 deletions(-)
>   rename toolchain/{ => toolchain-external}/helpers.mk (100%)

Ok, but you're still including this file. The inclusion is removedin
later patches, it should be done here.This is just to improve
bisectability, I'm ok with the idea.

Luca

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 02/11] toolchain-crosstool-ng: remove support
  2013-09-05 21:27 ` [Buildroot] [RFCv1 02/11] toolchain-crosstool-ng: remove support Thomas Petazzoni
                     ` (2 preceding siblings ...)
  2013-09-08 12:52   ` Thomas De Schampheleire
@ 2013-09-13 16:10   ` Luca Ceresoli
  3 siblings, 0 replies; 49+ messages in thread
From: Luca Ceresoli @ 2013-09-13 16:10 UTC (permalink / raw)
  To: buildroot

Thomas Petazzoni wrote:
> In order to avoid the work of converting the toolchain-crosstool-ng
> logic to the package infrastructure, we remove it from Buildroot,
> since it has been deprecated since quite some time.
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ---
> If we consider it too early to get rid of the Crosstool-NG backend
> entirely, then it can of course be converted to the package
> infrastructure, with quite a bit of effort (which we wanted to avoid
> for now).

I have nothing against the removal of crosstool-NG.

I'm happy with using ct-NG to build a toolchain and use it inBR as an
external toolchain.

Luca

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 05/11] toolchain: introduce a virtual package
  2013-09-05 21:27 ` [Buildroot] [RFCv1 05/11] toolchain: introduce a virtual package Thomas Petazzoni
@ 2013-09-13 16:24   ` Luca Ceresoli
  2013-09-15 14:27   ` Thomas De Schampheleire
  1 sibling, 0 replies; 49+ messages in thread
From: Luca Ceresoli @ 2013-09-13 16:24 UTC (permalink / raw)
  To: buildroot

Thomas Petazzoni wrote:
> This commit introduces a virtual package called 'toolchain', located
> in 'toolchain/toolchain', which simply depends on
> 'toolchain-buildroot' or 'toolchain-external' depending on the
> selected toolchain backend.
>
> For now, toolchain-buildroot and toolchain-external are still manual
> make targets, but the following patches convert those backends to use
> the package infrastructure as well.
>
> In addition to this:
>
>   * The main Makefile is modified to always make BASE_TARGETS point to
>     this new toolchain virtual package.
>
>   * The main Makefile is changed to include all the toolchain/*/*.mk
>     files: the toolchain virtual package, and the toolchain-buildroot
>     and toolchain-external directories.
>
>   * The dependency of the toolchain on prepare dirs and dependencies is
>     moved to the toolchain virtual package. It is moved as a
>     prerequisite of the "toolchain-source" rule to ensure that all
>     directories are prepared before we even start extracting the
>     toolchain.
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ---
>   Makefile                         | 18 +++---------------
>   toolchain/toolchain/toolchain.mk | 18 ++++++++++++++++++
>   2 files changed, 21 insertions(+), 15 deletions(-)
>   create mode 100644 toolchain/toolchain/toolchain.mk
>
> diff --git a/Makefile b/Makefile
> index f64a101..f2430eb 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -222,11 +222,7 @@ GNU_HOST_NAME:=$(shell support/gnuconfig/config.guess)
>   #
>   ################################################################################
>   
> -ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
> -BASE_TARGETS += toolchain-buildroot
> -else ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
> -BASE_TARGETS += toolchain-external
> -endif
> +BASE_TARGETS = toolchain

At first sight I thought this might be a bug, because the += becamea =.
But since this is the only place where we set BASE_TARGETS this isnot a
problem of course.

I like this cleanup work, thanks.

Acked-by: Luca Ceresoli <luca@lucaceresoli.net>

Luca

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 05/11] toolchain: introduce a virtual package
  2013-09-05 21:27 ` [Buildroot] [RFCv1 05/11] toolchain: introduce a virtual package Thomas Petazzoni
  2013-09-13 16:24   ` Luca Ceresoli
@ 2013-09-15 14:27   ` Thomas De Schampheleire
  1 sibling, 0 replies; 49+ messages in thread
From: Thomas De Schampheleire @ 2013-09-15 14:27 UTC (permalink / raw)
  To: buildroot

On Thu, Sep 5, 2013 at 11:27 PM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> This commit introduces a virtual package called 'toolchain', located
> in 'toolchain/toolchain', which simply depends on
> 'toolchain-buildroot' or 'toolchain-external' depending on the
> selected toolchain backend.
>
> For now, toolchain-buildroot and toolchain-external are still manual
> make targets, but the following patches convert those backends to use
> the package infrastructure as well.
>
> In addition to this:
>
>  * The main Makefile is modified to always make BASE_TARGETS point to
>    this new toolchain virtual package.
>
>  * The main Makefile is changed to include all the toolchain/*/*.mk
>    files: the toolchain virtual package, and the toolchain-buildroot
>    and toolchain-external directories.
>
>  * The dependency of the toolchain on prepare dirs and dependencies is
>    moved to the toolchain virtual package. It is moved as a
>    prerequisite of the "toolchain-source" rule to ensure that all
>    directories are prepared before we even start extracting the
>    toolchain.
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ---
>  Makefile                         | 18 +++---------------
>  toolchain/toolchain/toolchain.mk | 18 ++++++++++++++++++
>  2 files changed, 21 insertions(+), 15 deletions(-)
>  create mode 100644 toolchain/toolchain/toolchain.mk
>
> diff --git a/Makefile b/Makefile
> index f64a101..f2430eb 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -222,11 +222,7 @@ GNU_HOST_NAME:=$(shell support/gnuconfig/config.guess)
>  #
>  ################################################################################
>
> -ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
> -BASE_TARGETS += toolchain-buildroot
> -else ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
> -BASE_TARGETS += toolchain-external
> -endif
> +BASE_TARGETS = toolchain
>
>  TARGETS:=
>
> @@ -316,11 +312,7 @@ include support/dependencies/dependencies.mk
>  # We also need the various per-package makefiles, which also add
>  # each selected package to TARGETS if that package was selected
>  # in the .config file.
> -ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
> -include toolchain/toolchain-buildroot.mk
> -else ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
> -include toolchain/toolchain-external.mk
> -endif
> +include toolchain/*/*.mk
>
>  # Include the package override file if one has been provided in the
>  # configuration.
> @@ -387,16 +379,12 @@ $(TARGETS_ALL): __real_tgt_%: $(BASE_TARGETS) %
>  dirs: $(BUILD_DIR) $(STAGING_DIR) $(TARGET_DIR) \
>         $(HOST_DIR) $(BINARIES_DIR) $(STAMP_DIR)
>
> -$(BASE_TARGETS): dirs $(HOST_DIR)/usr/share/buildroot/toolchainfile.cmake
> -
>  $(BUILD_DIR)/buildroot-config/auto.conf: $(BUILDROOT_CONFIG)
>         $(MAKE) $(EXTRAMAKEARGS) HOSTCC="$(HOSTCC_NOCCACHE)" HOSTCXX="$(HOSTCXX_NOCCACHE)" silentoldconfig
>
>  prepare: $(BUILD_DIR)/buildroot-config/auto.conf
>
> -toolchain: prepare dirs dependencies $(BASE_TARGETS)
> -
> -world: toolchain $(TARGETS_ALL)
> +world: $(BASE_TARGETS) $(TARGETS_ALL)
>
>  .PHONY: all world toolchain dirs clean distclean source outputmakefile \
>         legal-info legal-info-prepare legal-info-clean printvars \
> diff --git a/toolchain/toolchain/toolchain.mk b/toolchain/toolchain/toolchain.mk
> new file mode 100644
> index 0000000..44ed629
> --- /dev/null
> +++ b/toolchain/toolchain/toolchain.mk
> @@ -0,0 +1,18 @@
> +################################################################################
> +#
> +# toolchain
> +#
> +################################################################################
> +
> +TOOLCHAIN_SOURCE =
> +
> +ifeq ($(BR2_TOOLCHAIN_BUILDROOT),y)
> +TOOLCHAIN_DEPENDENCIES += toolchain-buildroot
> +else ifeq ($(BR2_TOOLCHAIN_EXTERNAL),y)
> +TOOLCHAIN_DEPENDENCIES += toolchain-external
> +endif
> +
> +$(eval $(generic-package))
> +
> +toolchain-source: prepare dirs dependencies $(HOST_DIR)/usr/share/buildroot/toolchainfile.cmake
> +

Acked-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 06/11] toolchain-buildroot: convert to the package infrastructure
  2013-09-05 21:27 ` [Buildroot] [RFCv1 06/11] toolchain-buildroot: convert to the package infrastructure Thomas Petazzoni
@ 2013-09-15 14:30   ` Thomas De Schampheleire
  0 siblings, 0 replies; 49+ messages in thread
From: Thomas De Schampheleire @ 2013-09-15 14:30 UTC (permalink / raw)
  To: buildroot

On Thu, Sep 5, 2013 at 11:27 PM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> This commit converts the toolchain-buildroot logic to the package
> infrastructure. The package is fairly simple as it only defines
> BUILDROOT_LIBC, and depends on host-gcc-final to get the overall
> internal toolchain build logic started.
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ---
>  toolchain/toolchain-buildroot.mk                     |  9 ---------
>  toolchain/toolchain-buildroot/toolchain-buildroot.mk | 17 +++++++++++++++++
>  2 files changed, 17 insertions(+), 9 deletions(-)
>  delete mode 100644 toolchain/toolchain-buildroot.mk
>  create mode 100644 toolchain/toolchain-buildroot/toolchain-buildroot.mk
>
> diff --git a/toolchain/toolchain-buildroot.mk b/toolchain/toolchain-buildroot.mk
> deleted file mode 100644
> index 3a05800..0000000
> --- a/toolchain/toolchain-buildroot.mk
> +++ /dev/null
> @@ -1,9 +0,0 @@
> -# Triggerring the build of the host-gcc-final will automaticaly do the
> -# build of binutils, uClibc, kernel headers and all the intermediate
> -# gcc steps.
> -
> -include toolchain/helpers.mk
> -
> -BUILDROOT_LIBC = $(call qstrip,$(BR2_TOOLCHAIN_BUILDROOT_LIBC))
> -
> -toolchain-buildroot: host-gcc-final
> diff --git a/toolchain/toolchain-buildroot/toolchain-buildroot.mk b/toolchain/toolchain-buildroot/toolchain-buildroot.mk
> new file mode 100644
> index 0000000..096a196
> --- /dev/null
> +++ b/toolchain/toolchain-buildroot/toolchain-buildroot.mk
> @@ -0,0 +1,17 @@
> +################################################################################
> +#
> +# toolchain-buildroot
> +#
> +################################################################################
> +
> +TOOLCHAIN_BUILDROOT_SOURCE =
> +
> +BUILDROOT_LIBC = $(call qstrip,$(BR2_TOOLCHAIN_BUILDROOT_LIBC))
> +
> +# Triggerring the build of the host-gcc-final will automaticaly do the
> +# build of binutils, uClibc, kernel headers and all the intermediate
> +# gcc steps.

I realize it's a copy but:
triggerring --> triggering
automaticaly --> automatically

> +
> +TOOLCHAIN_BUILDROOT_DEPENDENCIES = host-gcc-final
> +
> +$(eval $(generic-package))
> --
> 1.8.1.2

Other than these typos:
Acked-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 07/11] toolchain: intermediate .mk files no longer needed
  2013-09-05 21:27 ` [Buildroot] [RFCv1 07/11] toolchain: intermediate .mk files no longer needed Thomas Petazzoni
@ 2013-09-15 14:33   ` Thomas De Schampheleire
  0 siblings, 0 replies; 49+ messages in thread
From: Thomas De Schampheleire @ 2013-09-15 14:33 UTC (permalink / raw)
  To: buildroot

On Thu, Sep 5, 2013 at 11:27 PM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ---
>  toolchain/toolchain-external.mk | 4 ----
>  1 file changed, 4 deletions(-)
>  delete mode 100644 toolchain/toolchain-external.mk
>
> diff --git a/toolchain/toolchain-external.mk b/toolchain/toolchain-external.mk
> deleted file mode 100644
> index 2f43db7..0000000
> --- a/toolchain/toolchain-external.mk
> +++ /dev/null
> @@ -1,4 +0,0 @@
> -# Required includes for the external toolchain backend
> -
> -include toolchain/helpers.mk
> -include toolchain/toolchain-external/ext-tool.mk
> --

Acked-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 08/11] package: package-based implementation of source, external-deps and legal-info
  2013-09-05 21:27 ` [Buildroot] [RFCv1 08/11] package: package-based implementation of source, external-deps and legal-info Thomas Petazzoni
@ 2013-09-15 19:29   ` Thomas De Schampheleire
  2013-09-15 20:09     ` Thomas Petazzoni
  0 siblings, 1 reply; 49+ messages in thread
From: Thomas De Schampheleire @ 2013-09-15 19:29 UTC (permalink / raw)
  To: buildroot

Hi Thomas,

On Thu, Sep 5, 2013 at 11:27 PM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> Until now, the make source, make external-deps and make legal-info
> where relying on enumerating the packages by looking at $(TARGETS)
> which contains only the target packages and not the host
> packages. Thanks to the TARGET_HOST_DEPS and HOST_DEPS variables, it
> was doing a two-level resolution of host package dependencies, but it
> was not entirely correct since the dependency chain might be deeper
> than that: some packages could be missed.
>
> From an idea of Arnout, this patch introduces in each package
> additional targets <pkg>-all-source and <pkg>-all-legal-info that
> executes the 'source' and 'legal-info' targets for this package and
> all its dependencies, be they target or host dependencies.
>
> This provides a much cleaner implementation of this mechanism, which
> is also more robust.
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ---
>  Makefile               | 26 +++-----------------------
>  package/pkg-generic.mk |  4 ++++
>  2 files changed, 7 insertions(+), 23 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index f2430eb..8fe0209 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -348,30 +348,10 @@ include fs/common.mk
>  TARGETS+=target-post-image
>
>  TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS))
> -TARGETS_SOURCE:=$(patsubst %,%-source,$(TARGETS) $(BASE_TARGETS))
> +TARGETS_SOURCE:=$(patsubst %,%-all-source,$(TARGETS) $(BASE_TARGETS))

Am I correct in understanding that, due to the full dependency chain,
TARGETS_SOURCE will have many duplicate entries?
When executing 'make source', then, each of these targets will be
executed multiple times, correct? Even though the actual download will
only be executed once for each package, I wonder if there can be other
side effects by executing the targets multiple times. Would it make
sense to do $(shell sort -u ... ) here?

>  TARGETS_DIRCLEAN:=$(patsubst %,%-dirclean,$(TARGETS))
>  TARGETS_ALL:=$(patsubst %,__real_tgt_%,$(TARGETS))
> -
> -# host-* dependencies have to be handled specially, as those aren't
> -# visible in Kconfig and hence not added to a variable like TARGETS.
> -# instead, find all the host-* targets listed in each <PKG>_DEPENDENCIES
> -# variable for each enabled target.
> -# Notice: this only works for newstyle gentargets/autotargets packages
> -TARGETS_HOST_DEPS = $(sort $(filter host-%,$(foreach dep,\
> -               $(addsuffix _DEPENDENCIES,$(call UPPERCASE,$(TARGETS))),\
> -               $($(dep)))))
> -# Host packages can in turn have their own dependencies. Likewise find
> -# all the package names listed in the HOST_<PKG>_DEPENDENCIES for each
> -# host package found above. Ideally this should be done recursively until
> -# no more packages are found, but that's hard to do in make, so limit to
> -# 1 level for now.
> -HOST_DEPS = $(sort $(foreach dep,\
> -               $(addsuffix _DEPENDENCIES,$(call UPPERCASE,$(TARGETS_HOST_DEPS))),\
> -               $($(dep))))
> -HOST_SOURCE += $(addsuffix -source,$(sort $(TARGETS_HOST_DEPS) $(HOST_DEPS)))
> -
> -TARGETS_LEGAL_INFO:=$(patsubst %,%-legal-info,\
> -               $(TARGETS) $(BASE_TARGETS) $(TARGETS_HOST_DEPS) $(HOST_DEPS))))
> +TARGETS_LEGAL_INFO:=$(patsubst %,%-all-legal-info,$(TARGETS) $(BASE_TARGETS))
>
>  # all targets depend on the crosscompiler and it's prerequisites
>  $(TARGETS_ALL): __real_tgt_%: $(BASE_TARGETS) %
> @@ -564,7 +544,7 @@ target-post-image:
>  toolchain-eclipse-register:
>         ./support/scripts/eclipse-register-toolchain `readlink -f $(O)` $(notdir $(TARGET_CROSS)) $(BR2_ARCH)
>
> -source: dirs $(TARGETS_SOURCE) $(HOST_SOURCE)
> +source: dirs $(TARGETS_SOURCE)
>
>  external-deps:
>         @$(MAKE) -Bs DL_MODE=SHOW_EXTERNAL_DEPS $(EXTRAMAKEARGS) source | sort -u
> diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
> index 2e2e66f..b6f0bdd 100644
> --- a/package/pkg-generic.mk
> +++ b/package/pkg-generic.mk
> @@ -418,6 +418,10 @@ endif
>  $(1)-show-depends:
>                         @echo $$($(2)_DEPENDENCIES)
>
> +$(1)-all-source:       $(foreach p,$($(2)_DEPENDENCIES),$(p)-all-source) $(1)-source
> +
> +$(1)-all-legal-info:   $(foreach p,$($(2)_DEPENDENCIES),$(p)-all-legal-info) $(1)-legal-info
> +
>  $(1)-uninstall:                $(1)-configure $$($(2)_TARGET_UNINSTALL)
>
>  $(1)-clean:            $(1)-uninstall \
> --


Best regards,
Thomas

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 08/11] package: package-based implementation of source, external-deps and legal-info
  2013-09-15 19:29   ` Thomas De Schampheleire
@ 2013-09-15 20:09     ` Thomas Petazzoni
  2013-09-16  1:21       ` Thomas De Schampheleire
  0 siblings, 1 reply; 49+ messages in thread
From: Thomas Petazzoni @ 2013-09-15 20:09 UTC (permalink / raw)
  To: buildroot

Dear Thomas De Schampheleire,

On Sun, 15 Sep 2013 21:29:58 +0200, Thomas De Schampheleire wrote:

> >  TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS))
> > -TARGETS_SOURCE:=$(patsubst %,%-source,$(TARGETS) $(BASE_TARGETS))
> > +TARGETS_SOURCE:=$(patsubst %,%-all-source,$(TARGETS) $(BASE_TARGETS))
> 
> Am I correct in understanding that, due to the full dependency chain,
> TARGETS_SOURCE will have many duplicate entries?

Well, TARGETS_SOURCE itself will not have many duplicate entries: in
the TARGETS variable, each selected package is only mentioned once, and
TARGETS_SOURCE has the exact same number of entries as TARGETS, except
that each word in TARGETS is replaced by %-all-source (I'm excluding
BASE_TARGETS here, but it only ever contains one entry: 'toolchain').

However, when *evaluating* those targets, we will indeed be looking
multiple times at the same dependencies.

> When executing 'make source', then, each of these targets will be
> executed multiple times, correct? Even though the actual download will
> only be executed once for each package, I wonder if there can be other
> side effects by executing the targets multiple times. Would it make
> sense to do $(shell sort -u ... ) here?

As explained above, no: TARGETS_SOURCE by itself does not contain any
duplicated entry. It's the fact of evaluating each target in
TARGETS_SOURCE that will lead to looking multiple times at the same
things. But I'm not sure how to solve that.

Best regards,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 08/11] package: package-based implementation of source, external-deps and legal-info
  2013-09-15 20:09     ` Thomas Petazzoni
@ 2013-09-16  1:21       ` Thomas De Schampheleire
  0 siblings, 0 replies; 49+ messages in thread
From: Thomas De Schampheleire @ 2013-09-16  1:21 UTC (permalink / raw)
  To: buildroot

Op 15-sep.-2013 22:09 schreef "Thomas Petazzoni" <
thomas.petazzoni@free-electrons.com> het volgende:
>
> Dear Thomas De Schampheleire,
>
> On Sun, 15 Sep 2013 21:29:58 +0200, Thomas De Schampheleire wrote:
>
> > >  TARGETS_CLEAN:=$(patsubst %,%-clean,$(TARGETS))
> > > -TARGETS_SOURCE:=$(patsubst %,%-source,$(TARGETS) $(BASE_TARGETS))
> > > +TARGETS_SOURCE:=$(patsubst %,%-all-source,$(TARGETS) $(BASE_TARGETS))
> >
> > Am I correct in understanding that, due to the full dependency chain,
> > TARGETS_SOURCE will have many duplicate entries?
>
> Well, TARGETS_SOURCE itself will not have many duplicate entries: in
> the TARGETS variable, each selected package is only mentioned once, and
> TARGETS_SOURCE has the exact same number of entries as TARGETS, except
> that each word in TARGETS is replaced by %-all-source (I'm excluding
> BASE_TARGETS here, but it only ever contains one entry: 'toolchain').
>
> However, when *evaluating* those targets, we will indeed be looking
> multiple times at the same dependencies.
>
> > When executing 'make source', then, each of these targets will be
> > executed multiple times, correct? Even though the actual download will
> > only be executed once for each package, I wonder if there can be other
> > side effects by executing the targets multiple times. Would it make
> > sense to do $(shell sort -u ... ) here?
>
> As explained above, no: TARGETS_SOURCE by itself does not contain any
> duplicated entry. It's the fact of evaluating each target in
> TARGETS_SOURCE that will lead to looking multiple times at the same
> things. But I'm not sure how to solve that.

Ah yes, correct. Then I also don't see a simple solution...

Best regards,
Thomas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20130916/c91749f9/attachment-0001.html>

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 10/11] toolchain-external: convert to the package infrastructure
  2013-09-05 21:27 ` [Buildroot] [RFCv1 10/11] toolchain-external: convert to the package infrastructure Thomas Petazzoni
@ 2013-09-16 13:29   ` Thomas De Schampheleire
  2013-09-27 14:21     ` Luca Ceresoli
  2013-09-27 14:24   ` Luca Ceresoli
  1 sibling, 1 reply; 49+ messages in thread
From: Thomas De Schampheleire @ 2013-09-16 13:29 UTC (permalink / raw)
  To: buildroot

Hi Thomas,

On Thu, Sep 5, 2013 at 11:27 PM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> This commit converts the 'toolchain-external' logic to the package
> infrastructure.
>
> The TOOLCHAIN_EXTERNAL_DIR variable (which points to where the
> toolchain is located) is renamed to TOOLCHAIN_EXTERNAL_INSTALL_DIR,
> because the former conflicts with the package infrastructure (which
> defines the <pkg>_DIR variable for each package as pointing to its
> build directory).
>
> The new _SOURCE_ADDONS mechanism is used for Blackfin toolchains.
>
> The extract, configuration and installation steps are converted inside
> the <pkg>_EXTRACT_CMDS, <pkg>_CONFIGURE_CMDS and
> <pkg>_INSTALL_STAGING_CMDS.
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ---
[..]

>
> +TOOLCHAIN_EXTERNAL_INSTALL_STAGING = YES
> +
> +ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2012R1)$(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2012R2),y)
>  # 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.
> -ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2012R1)$(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2012R2),y)
> -$(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE_1):
> -       $(call DOWNLOAD,$(TOOLCHAIN_EXTERNAL_SITE_1:/=)/$(TOOLCHAIN_EXTERNAL_SOURCE_1))
> -
> -$(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE_2):
> -       $(call DOWNLOAD,$(TOOLCHAIN_EXTERNAL_SITE_2:/=)/$(TOOLCHAIN_EXTERNAL_SOURCE_2))
> -
> -$(TOOLCHAIN_EXTERNAL_DIR)/.extracted: $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE_1) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE_2)
> -       mkdir -p $(@D)
> -       $(INFLATE$(suffix $(TOOLCHAIN_EXTERNAL_SOURCE_1))) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE_1) | \
> -               $(TAR) $(TAR_STRIP_COMPONENTS)=3 --hard-dereference -C $(@D) $(TAR_OPTIONS) -
> -       $(INFLATE$(suffix $(TOOLCHAIN_EXTERNAL_SOURCE_2))) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE_2) | \
> -               $(TAR) $(TAR_STRIP_COMPONENTS)=3 --hard-dereference -C $(@D) $(TAR_OPTIONS) -
> -       $(Q)touch $@
> -else
> -# Download and extraction of a toolchain
> -$(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE):
> -       $(call DOWNLOAD,$(TOOLCHAIN_EXTERNAL_SITE)$(TOOLCHAIN_EXTERNAL_SOURCE),$(TOOLCHAIN_EXTERNAL_SOURCE))
> -
> -$(TOOLCHAIN_EXTERNAL_DIR)/.extracted: $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE)
> -       mkdir -p $(@D)
> -       $(INFLATE$(suffix $(TOOLCHAIN_EXTERNAL_SOURCE))) $^ | \
> -               $(TAR) $(TAR_STRIP_COMPONENTS)=1 --exclude='usr/lib/locale/*' -C $(@D) $(TAR_OPTIONS) -
> +define TOOLCHAIN_EXTERNAL_EXTRACT_CMDS
> +       mkdir -p $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)
> +       $(INFLATE$(suffix $(TOOLCHAIN_EXTERNAL_SOURCE))) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE) | \
> +               $(TAR) $(TAR_STRIP_COMPONENTS)=3 --hard-dereference -C $(TOOLCHAIN_EXTERNAL_INSTALL_DIR) $(TAR_OPTIONS) -
> +       $(INFLATE$(suffix $(TOOLCHAIN_EXTERNAL_SOURCE_ADDONS))) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE_ADDONS) | \
> +               $(TAR) $(TAR_STRIP_COMPONENTS)=3 --hard-dereference -C $(TOOLCHAIN_EXTERNAL_INSTALL_DIR) $(TAR_OPTIONS) -
> +endef
> +else ifneq ($(TOOLCHAIN_EXTERNAL_SOURCE),)
> +# Normal handling of toolchain tarball extraction.
> +define TOOLCHAIN_EXTERNAL_EXTRACT_CMDS
> +       mkdir -p $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)
> +       $(INFLATE$(suffix $(TOOLCHAIN_EXTERNAL_SOURCE))) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE) | \
> +               $(TAR) $(TAR_STRIP_COMPONENTS)=1 --exclude='usr/lib/locale/*' -C $(TOOLCHAIN_EXTERNAL_INSTALL_DIR) $(TAR_OPTIONS) -
>         $(TOOLCHAIN_EXTERNAL_FIXUP_CMDS)
> -       $(Q)touch $@
> +endef
>  endif

Given that the extract commands are now very similar between blackfin
and non-blackfin, wouldn't it make more sense to define it once and
tweak it based on a variable?
Something like (quick and untested):

ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2012R1)$(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2012R2),y)
TOOLCHAIN_EXTERNAL_TAR_OPTIONS = $(TAR_STRIP_COMPONENTS)=3 --hard-dereference
else
TOOLCHAIN_EXTERNAL_TAR_OPTIONS = $(TAR_STRIP_COMPONENTS)=1
--exclude='usr/lib/locale/*'
endif

define TOOLCHAIN_EXTERNAL_EXTRACT_CMDS
       mkdir -p $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)
       $(INFLATE$(suffix $(TOOLCHAIN_EXTERNAL_SOURCE)))
$(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE) | \
               $(TAR) $(TOOLCHAIN_EXTERNAL_TAR_OPTIONS) -C
$(TOOLCHAIN_EXTERNAL_INSTALL_DIR) $(TAR_OPTIONS) -
       if [ -n "$(TOOLCHAIN_EXTERNAL_SOURCE_ADDONS)" ]; then \
           $(INFLATE$(suffix $(TOOLCHAIN_EXTERNAL_SOURCE_ADDONS)))
$(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE_ADDONS) | \
                   $(TAR) $(TOOLCHAIN_EXTERNAL_TAR_OPTIONS) -C
$(TOOLCHAIN_EXTERNAL_INSTALL_DIR) $(TAR_OPTIONS) - \
       fi
endef


One can even wonder why the 'exclude=' couldn't be used for blackfin,
and why the --hard-dereference couldn't be used for non-blackfin. This
would make the only difference the strip-components.


Best regards,
Thomas

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 09/11] package: add a <pkg>_SOURCE_ADDONS variable
  2013-09-05 21:27 ` [Buildroot] [RFCv1 09/11] package: add a <pkg>_SOURCE_ADDONS variable Thomas Petazzoni
@ 2013-09-16 13:39   ` Thomas De Schampheleire
  2013-09-16 18:31     ` Thomas Petazzoni
  0 siblings, 1 reply; 49+ messages in thread
From: Thomas De Schampheleire @ 2013-09-16 13:39 UTC (permalink / raw)
  To: buildroot

Hi Thomas,

On Thu, Sep 5, 2013 at 11:27 PM, Thomas Petazzoni
<thomas.petazzoni@free-electrons.com> wrote:
> Converting the external toolchain logic into a package raises a very
> special use case that wasn't handled by the package infrastructure:
> the Blackfin toolchain is delivered as two tarballs instead of
> one. Unfortunately <pkg>_SOURCE only allows to pass one tarball name.
>
> However, we really want both tarballs to be known by the package
> infrastructure, so that the normal 'source' and 'external-deps'
> mechanism work fine.
>
> In order to achieve this, we add a <pkg>_SOURCE_ADDONS variable, which
> allows a package to list other stuff it would like to see downloaded,
> but that are otherwise not used by the package infrastructure itself:
> it is up to the package to do it by itself.
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ---
>  package/pkg-generic.mk | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
> index b6f0bdd..2ce615f 100644
> --- a/package/pkg-generic.mk
> +++ b/package/pkg-generic.mk
> @@ -40,6 +40,7 @@ ifeq ($(DL_MODE),DOWNLOAD)
>         fi
>  endif
>         $(if $($(PKG)_SOURCE),$(call DOWNLOAD,$($(PKG)_SITE:/=)/$($(PKG)_SOURCE)))
> +       $(foreach p,$($(PKG)_SOURCE_ADDONS),$(call DOWNLOAD,$($(PKG)_SITE:/=)/$(p))$(sep))
>         $(foreach p,$($(PKG)_PATCH),$(call DOWNLOAD,$($(PKG)_SITE:/=)/$(p))$(sep))
>         $(foreach hook,$($(PKG)_POST_DOWNLOAD_HOOKS),$(call $(hook))$(sep))
>  ifeq ($(DL_MODE),DOWNLOAD)
> --

What about allowing FOO_SOURCE to contain multiple words directly, and
thus not introducing a new variable? The package infrastructure can
download each word of FOO_SOURCE, but only extract (and otherwise use)
the first one. Any subsequent word has to be handled by the package
itself.

Best regards,
Thomas

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 09/11] package: add a <pkg>_SOURCE_ADDONS variable
  2013-09-16 13:39   ` Thomas De Schampheleire
@ 2013-09-16 18:31     ` Thomas Petazzoni
  2013-09-16 19:20       ` Arnout Vandecappelle
  0 siblings, 1 reply; 49+ messages in thread
From: Thomas Petazzoni @ 2013-09-16 18:31 UTC (permalink / raw)
  To: buildroot

Dear Thomas De Schampheleire,

On Mon, 16 Sep 2013 15:39:22 +0200, Thomas De Schampheleire wrote:

> What about allowing FOO_SOURCE to contain multiple words directly, and
> thus not introducing a new variable? The package infrastructure can
> download each word of FOO_SOURCE, but only extract (and otherwise use)
> the first one. Any subsequent word has to be handled by the package
> itself.

The problem is that the default extract step needs to know what to do.
And what it does today is that it extracts the tarball whose name is
given in FOO_SOURCE. If we put several words in FOO_SOURCE, then what
should be the semantic of the default extract commands? Extract the
first one? All of them?

That's why I've decided to go with another variable, which really means
"I want this stuff to be downloaded, but don't do anything with it, the
package recipe will take care of it".

Of course, I'm open to changing the semantic of FOO_SOURCE instead, we
would just need to define what this new semantic should be.

Thanks!

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 09/11] package: add a <pkg>_SOURCE_ADDONS variable
  2013-09-16 18:31     ` Thomas Petazzoni
@ 2013-09-16 19:20       ` Arnout Vandecappelle
  2013-09-17  7:21         ` Thomas De Schampheleire
  0 siblings, 1 reply; 49+ messages in thread
From: Arnout Vandecappelle @ 2013-09-16 19:20 UTC (permalink / raw)
  To: buildroot

On 16/09/13 20:31, Thomas Petazzoni wrote:
> Dear Thomas De Schampheleire,
>
> On Mon, 16 Sep 2013 15:39:22 +0200, Thomas De Schampheleire wrote:
>
>> What about allowing FOO_SOURCE to contain multiple words directly, and
>> thus not introducing a new variable? The package infrastructure can
>> download each word of FOO_SOURCE, but only extract (and otherwise use)
>> the first one. Any subsequent word has to be handled by the package
>> itself.
>
> The problem is that the default extract step needs to know what to do.
> And what it does today is that it extracts the tarball whose name is
> given in FOO_SOURCE. If we put several words in FOO_SOURCE, then what
> should be the semantic of the default extract commands? Extract the
> first one? All of them?
>
> That's why I've decided to go with another variable, which really means
> "I want this stuff to be downloaded, but don't do anything with it, the
> package recipe will take care of it".
>
> Of course, I'm open to changing the semantic of FOO_SOURCE instead, we
> would just need to define what this new semantic should be.

  I'm more in favour of the <pkg>_SOURCE_ADDONS proposal. I think having 
multiple _SOURCE files would be confusing.


  Regards,
  Arnout


-- 
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 09/11] package: add a <pkg>_SOURCE_ADDONS variable
  2013-09-16 19:20       ` Arnout Vandecappelle
@ 2013-09-17  7:21         ` Thomas De Schampheleire
  2013-09-27 14:27           ` Luca Ceresoli
  0 siblings, 1 reply; 49+ messages in thread
From: Thomas De Schampheleire @ 2013-09-17  7:21 UTC (permalink / raw)
  To: buildroot

Thomas, Arnout,

On Mon, Sep 16, 2013 at 9:20 PM, Arnout Vandecappelle <arnout@mind.be> wrote:
> On 16/09/13 20:31, Thomas Petazzoni wrote:
>>
>> Dear Thomas De Schampheleire,
>>
>> On Mon, 16 Sep 2013 15:39:22 +0200, Thomas De Schampheleire wrote:
>>
>>> What about allowing FOO_SOURCE to contain multiple words directly, and
>>> thus not introducing a new variable? The package infrastructure can
>>> download each word of FOO_SOURCE, but only extract (and otherwise use)
>>> the first one. Any subsequent word has to be handled by the package
>>> itself.
>>
>>
>> The problem is that the default extract step needs to know what to do.
>> And what it does today is that it extracts the tarball whose name is
>> given in FOO_SOURCE. If we put several words in FOO_SOURCE, then what
>> should be the semantic of the default extract commands? Extract the
>> first one? All of them?
>>
>> That's why I've decided to go with another variable, which really means
>> "I want this stuff to be downloaded, but don't do anything with it, the
>> package recipe will take care of it".
>>
>> Of course, I'm open to changing the semantic of FOO_SOURCE instead, we
>> would just need to define what this new semantic should be.
>
>
>  I'm more in favour of the <pkg>_SOURCE_ADDONS proposal. I think having
> multiple _SOURCE files would be confusing.

Ok, fair enough.
I think you should add this to the documentation, then.

Best regards,
Thomas

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 10/11] toolchain-external: convert to the package infrastructure
  2013-09-16 13:29   ` Thomas De Schampheleire
@ 2013-09-27 14:21     ` Luca Ceresoli
  0 siblings, 0 replies; 49+ messages in thread
From: Luca Ceresoli @ 2013-09-27 14:21 UTC (permalink / raw)
  To: buildroot

Thomas De Schampheleire wrote:
> Hi Thomas,
>
> On Thu, Sep 5, 2013 at 11:27 PM, Thomas Petazzoni
> <thomas.petazzoni@free-electrons.com> wrote:
>> This commit converts the 'toolchain-external' logic to the package
>> infrastructure.
>>
>> The TOOLCHAIN_EXTERNAL_DIR variable (which points to where the
>> toolchain is located) is renamed to TOOLCHAIN_EXTERNAL_INSTALL_DIR,
>> because the former conflicts with the package infrastructure (which
>> defines the <pkg>_DIR variable for each package as pointing to its
>> build directory).
>>
>> The new _SOURCE_ADDONS mechanism is used for Blackfin toolchains.
>>
>> The extract, configuration and installation steps are converted inside
>> the <pkg>_EXTRACT_CMDS, <pkg>_CONFIGURE_CMDS and
>> <pkg>_INSTALL_STAGING_CMDS.
>>
>> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
>> ---
> [..]
>
>> +TOOLCHAIN_EXTERNAL_INSTALL_STAGING = YES
>> +
>> +ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2012R1)$(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2012R2),y)
>>   # 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.
>> -ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2012R1)$(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2012R2),y)
>> -$(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE_1):
>> -       $(call DOWNLOAD,$(TOOLCHAIN_EXTERNAL_SITE_1:/=)/$(TOOLCHAIN_EXTERNAL_SOURCE_1))
>> -
>> -$(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE_2):
>> -       $(call DOWNLOAD,$(TOOLCHAIN_EXTERNAL_SITE_2:/=)/$(TOOLCHAIN_EXTERNAL_SOURCE_2))
>> -
>> -$(TOOLCHAIN_EXTERNAL_DIR)/.extracted: $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE_1) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE_2)
>> -       mkdir -p $(@D)
>> -       $(INFLATE$(suffix $(TOOLCHAIN_EXTERNAL_SOURCE_1))) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE_1) | \
>> -               $(TAR) $(TAR_STRIP_COMPONENTS)=3 --hard-dereference -C $(@D) $(TAR_OPTIONS) -
>> -       $(INFLATE$(suffix $(TOOLCHAIN_EXTERNAL_SOURCE_2))) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE_2) | \
>> -               $(TAR) $(TAR_STRIP_COMPONENTS)=3 --hard-dereference -C $(@D) $(TAR_OPTIONS) -
>> -       $(Q)touch $@
>> -else
>> -# Download and extraction of a toolchain
>> -$(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE):
>> -       $(call DOWNLOAD,$(TOOLCHAIN_EXTERNAL_SITE)$(TOOLCHAIN_EXTERNAL_SOURCE),$(TOOLCHAIN_EXTERNAL_SOURCE))
>> -
>> -$(TOOLCHAIN_EXTERNAL_DIR)/.extracted: $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE)
>> -       mkdir -p $(@D)
>> -       $(INFLATE$(suffix $(TOOLCHAIN_EXTERNAL_SOURCE))) $^ | \
>> -               $(TAR) $(TAR_STRIP_COMPONENTS)=1 --exclude='usr/lib/locale/*' -C $(@D) $(TAR_OPTIONS) -
>> +define TOOLCHAIN_EXTERNAL_EXTRACT_CMDS
>> +       mkdir -p $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)
>> +       $(INFLATE$(suffix $(TOOLCHAIN_EXTERNAL_SOURCE))) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE) | \
>> +               $(TAR) $(TAR_STRIP_COMPONENTS)=3 --hard-dereference -C $(TOOLCHAIN_EXTERNAL_INSTALL_DIR) $(TAR_OPTIONS) -
>> +       $(INFLATE$(suffix $(TOOLCHAIN_EXTERNAL_SOURCE_ADDONS))) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE_ADDONS) | \
>> +               $(TAR) $(TAR_STRIP_COMPONENTS)=3 --hard-dereference -C $(TOOLCHAIN_EXTERNAL_INSTALL_DIR) $(TAR_OPTIONS) -
>> +endef
>> +else ifneq ($(TOOLCHAIN_EXTERNAL_SOURCE),)
>> +# Normal handling of toolchain tarball extraction.
>> +define TOOLCHAIN_EXTERNAL_EXTRACT_CMDS
>> +       mkdir -p $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)
>> +       $(INFLATE$(suffix $(TOOLCHAIN_EXTERNAL_SOURCE))) $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE) | \
>> +               $(TAR) $(TAR_STRIP_COMPONENTS)=1 --exclude='usr/lib/locale/*' -C $(TOOLCHAIN_EXTERNAL_INSTALL_DIR) $(TAR_OPTIONS) -
>>          $(TOOLCHAIN_EXTERNAL_FIXUP_CMDS)
>> -       $(Q)touch $@
>> +endef
>>   endif
> Given that the extract commands are now very similar between blackfin
> and non-blackfin, wouldn't it make more sense to define it once and
> tweak it based on a variable?
> Something like (quick and untested):
>
> ifeq ($(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2012R1)$(BR2_TOOLCHAIN_EXTERNAL_BLACKFIN_UCLINUX_2012R2),y)
> TOOLCHAIN_EXTERNAL_TAR_OPTIONS = $(TAR_STRIP_COMPONENTS)=3 --hard-dereference
> else
> TOOLCHAIN_EXTERNAL_TAR_OPTIONS = $(TAR_STRIP_COMPONENTS)=1
> --exclude='usr/lib/locale/*'
> endif
>
> define TOOLCHAIN_EXTERNAL_EXTRACT_CMDS
>         mkdir -p $(TOOLCHAIN_EXTERNAL_INSTALL_DIR)
>         $(INFLATE$(suffix $(TOOLCHAIN_EXTERNAL_SOURCE)))
> $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE) | \
>                 $(TAR) $(TOOLCHAIN_EXTERNAL_TAR_OPTIONS) -C
> $(TOOLCHAIN_EXTERNAL_INSTALL_DIR) $(TAR_OPTIONS) -
>         if [ -n "$(TOOLCHAIN_EXTERNAL_SOURCE_ADDONS)" ]; then \
>             $(INFLATE$(suffix $(TOOLCHAIN_EXTERNAL_SOURCE_ADDONS)))
> $(DL_DIR)/$(TOOLCHAIN_EXTERNAL_SOURCE_ADDONS) | \
>                     $(TAR) $(TOOLCHAIN_EXTERNAL_TAR_OPTIONS) -C
> $(TOOLCHAIN_EXTERNAL_INSTALL_DIR) $(TAR_OPTIONS) - \
>         fi
> endef
>
>
> One can even wonder why the 'exclude=' couldn't be used for blackfin,
> and why the --hard-dereference couldn't be used for non-blackfin. This
> would make the only difference the strip-components.

I agree this and other cleanups would make this file cleaner.
However Thomas is proposing a rather substantial change to a quite core
piece of Buildroot. So I would keep things as they are at a first step.

This allows to make the change to the package system withthe minimum
diffs, thus making it easier to spot any problems that might ariseif
the patches are committed to master.

When the whole thing will be tested for at least a few days by the
autobuilders, I think it would be ok to start cleanup and refactoring.

Just my two cents.

-- 
Luca

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 10/11] toolchain-external: convert to the package infrastructure
  2013-09-05 21:27 ` [Buildroot] [RFCv1 10/11] toolchain-external: convert to the package infrastructure Thomas Petazzoni
  2013-09-16 13:29   ` Thomas De Schampheleire
@ 2013-09-27 14:24   ` Luca Ceresoli
  1 sibling, 0 replies; 49+ messages in thread
From: Luca Ceresoli @ 2013-09-27 14:24 UTC (permalink / raw)
  To: buildroot

Thomas Petazzoni wrote:
> This commit converts the 'toolchain-external' logic to the package
> infrastructure.
>
> The TOOLCHAIN_EXTERNAL_DIR variable (which points to where the
> toolchain is located) is renamed to TOOLCHAIN_EXTERNAL_INSTALL_DIR,
> because the former conflicts with the package infrastructure (which
> defines the <pkg>_DIR variable for each package as pointing to its
> build directory).
>
> The new _SOURCE_ADDONS mechanism is used for Blackfin toolchains.
>
> The extract, configuration and installation steps are converted inside
> the <pkg>_EXTRACT_CMDS, <pkg>_CONFIGURE_CMDS and
> <pkg>_INSTALL_STAGING_CMDS.
>
> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
> ---

...

>   # Checks for an already installed toolchain: check the toolchain
>   # location, check that it supports sysroot, and then verify that it
>   # matches the configuration provided in Buildroot: ABI, C++ support,
>   # type of C library and all C library features.
> -$(STAMP_DIR)/ext-toolchain-checked: $(TOOLCHAIN_EXTERNAL_DEPENDENCIES)
> -	@$(call MESSAGE,"Checking external toolchain settings")
> +define TOOLCHAIN_EXTERNAL_CONFIGURE_CMDS
>   	$(Q)$(call check_cross_compiler_exists,$(TOOLCHAIN_EXTERNAL_CC))
>   	$(Q)LIBC_A_LOCATION=`readlink -f $$(LANG=C $(TOOLCHAIN_EXTERNAL_CC) -print-file-name=libc.a)` ; \
>   	SYSROOT_DIR=`echo $${LIBC_A_LOCATION} | sed -r -e 's:usr/lib(32|64)?/(.*/)?libc\.a::'` ; \
> @@ -385,7 +368,7 @@ $(STAMP_DIR)/ext-toolchain-checked: $(TOOLCHAIN_EXTERNAL_DEPENDENCIES)
>   	else \
>   		$(call check_glibc,$${SYSROOT_DIR}) ; \
>   	fi
> -	$(Q)touch $@
> +endef

...

> -toolchain-external: dependencies $(HOST_DIR)/usr/bin/ext-toolchain-wrapper
> +# Even though we're installing things in both the staging, the host
> +# and the target directory, we do everything within the
> +# install-staging step, arbitrarily.
> +define TOOLCHAIN_EXTERNAL_INSTALL_STAGING_CMDS
> +	$(TOOLCHAIN_EXTERNAL_INSTALL_CORE)
> +	$(TOOLCHAIN_EXTERNAL_INSTALL_BFIN_FDPIC)
> +	$(TOOLCHAIN_EXTERNAL_INSTALL_BFIN_FLAT)
> +	$(TOOLCHAIN_EXTERNAL_INSTALL_WRAPPER)
> +endef

At first sight, hijacking the configure step to check toolchain settings 
and the
install staging step to install into host and target does not look very 
clean.
I think here we are pushing the package infrastructure a bit beyond what 
it is
conceived for.

Nevertheless this it not a very dirty hack (just a bit) and makes the 
whole file
a little simpler. Not to mention this unlocks new features, which is the 
final
goalof the whole patchset, isn't it?

Overall I think the pros are stronger than the cons here. And extending the
package infra just to make this one file more polite wouldn't be worth 
the effort,
I suppose. So:

Acked-by: Luca Ceresoli <luca@lucaceresoli.net>

-- 
Luca

^ permalink raw reply	[flat|nested] 49+ messages in thread

* [Buildroot] [RFCv1 09/11] package: add a <pkg>_SOURCE_ADDONS variable
  2013-09-17  7:21         ` Thomas De Schampheleire
@ 2013-09-27 14:27           ` Luca Ceresoli
  0 siblings, 0 replies; 49+ messages in thread
From: Luca Ceresoli @ 2013-09-27 14:27 UTC (permalink / raw)
  To: buildroot

Thomas De Schampheleire wrote:
> Thomas, Arnout,
>
> On Mon, Sep 16, 2013 at 9:20 PM, Arnout Vandecappelle <arnout@mind.be> wrote:
>> On 16/09/13 20:31, Thomas Petazzoni wrote:
>>> Dear Thomas De Schampheleire,
>>>
>>> On Mon, 16 Sep 2013 15:39:22 +0200, Thomas De Schampheleire wrote:
>>>
>>>> What about allowing FOO_SOURCE to contain multiple words directly, and
>>>> thus not introducing a new variable? The package infrastructure can
>>>> download each word of FOO_SOURCE, but only extract (and otherwise use)
>>>> the first one. Any subsequent word has to be handled by the package
>>>> itself.
>>>
>>> The problem is that the default extract step needs to know what to do.
>>> And what it does today is that it extracts the tarball whose name is
>>> given in FOO_SOURCE. If we put several words in FOO_SOURCE, then what
>>> should be the semantic of the default extract commands? Extract the
>>> first one? All of them?
>>>
>>> That's why I've decided to go with another variable, which really means
>>> "I want this stuff to be downloaded, but don't do anything with it, the
>>> package recipe will take care of it".
>>>
>>> Of course, I'm open to changing the semantic of FOO_SOURCE instead, we
>>> would just need to define what this new semantic should be.
>>
>>   I'm more in favour of the <pkg>_SOURCE_ADDONS proposal. I think having
>> multiple _SOURCE files would be confusing.
> Ok, fair enough.
> I think you should add this to the documentation, then.

I also think keeping things separate is the best option to avoid confusion.
But to make it even more clear, I would name the variable _EXTRA_DOWNLOADS.

-- 
Luca

^ permalink raw reply	[flat|nested] 49+ messages in thread

end of thread, other threads:[~2013-09-27 14:27 UTC | newest]

Thread overview: 49+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-09-05 21:27 [Buildroot] [RFCv1 00/11] Convert toolchain backends to packages to fix source/external-deps/legal-info Thomas Petazzoni
2013-09-05 21:27 ` [Buildroot] [RFCv1 01/11] Makefile: make $(BUILD_DIR)/.root rule idempotent Thomas Petazzoni
2013-09-08 12:06   ` Thomas De Schampheleire
2013-09-08 13:13   ` Danomi Manchego
2013-09-08 13:30     ` Thomas Petazzoni
2013-09-08 16:59       ` Danomi Manchego
2013-09-08 17:31         ` Thomas Petazzoni
2013-09-09  8:54   ` Luca Ceresoli
2013-09-09 21:38   ` Peter Korsgaard
2013-09-10  7:23     ` Thomas Petazzoni
2013-09-05 21:27 ` [Buildroot] [RFCv1 02/11] toolchain-crosstool-ng: remove support Thomas Petazzoni
2013-09-06  9:35   ` Yann E. MORIN
2013-09-06 15:53   ` Yann E. MORIN
2013-09-06 15:56     ` Thomas Petazzoni
2013-09-08 12:52   ` Thomas De Schampheleire
2013-09-13 16:10   ` Luca Ceresoli
2013-09-05 21:27 ` [Buildroot] [RFCv1 03/11] toolchain-external: make ext-tool.mk includable in all cases Thomas Petazzoni
2013-09-08 15:31   ` Thomas De Schampheleire
2013-09-05 21:27 ` [Buildroot] [RFCv1 04/11] toolchain: move helpers.mk into toolchain-external/ Thomas Petazzoni
2013-09-08 17:50   ` Thomas De Schampheleire
2013-09-13 16:07   ` Luca Ceresoli
2013-09-05 21:27 ` [Buildroot] [RFCv1 05/11] toolchain: introduce a virtual package Thomas Petazzoni
2013-09-13 16:24   ` Luca Ceresoli
2013-09-15 14:27   ` Thomas De Schampheleire
2013-09-05 21:27 ` [Buildroot] [RFCv1 06/11] toolchain-buildroot: convert to the package infrastructure Thomas Petazzoni
2013-09-15 14:30   ` Thomas De Schampheleire
2013-09-05 21:27 ` [Buildroot] [RFCv1 07/11] toolchain: intermediate .mk files no longer needed Thomas Petazzoni
2013-09-15 14:33   ` Thomas De Schampheleire
2013-09-05 21:27 ` [Buildroot] [RFCv1 08/11] package: package-based implementation of source, external-deps and legal-info Thomas Petazzoni
2013-09-15 19:29   ` Thomas De Schampheleire
2013-09-15 20:09     ` Thomas Petazzoni
2013-09-16  1:21       ` Thomas De Schampheleire
2013-09-05 21:27 ` [Buildroot] [RFCv1 09/11] package: add a <pkg>_SOURCE_ADDONS variable Thomas Petazzoni
2013-09-16 13:39   ` Thomas De Schampheleire
2013-09-16 18:31     ` Thomas Petazzoni
2013-09-16 19:20       ` Arnout Vandecappelle
2013-09-17  7:21         ` Thomas De Schampheleire
2013-09-27 14:27           ` Luca Ceresoli
2013-09-05 21:27 ` [Buildroot] [RFCv1 10/11] toolchain-external: convert to the package infrastructure Thomas Petazzoni
2013-09-16 13:29   ` Thomas De Schampheleire
2013-09-27 14:21     ` Luca Ceresoli
2013-09-27 14:24   ` Luca Ceresoli
2013-09-05 21:27 ` [Buildroot] [RFCv1 11/11] dependencies: remove useless targets Thomas Petazzoni
2013-09-06  8:28 ` [Buildroot] [RFCv1 00/11] Convert toolchain backends to packages to fix source/external-deps/legal-info Fabio Porcedda
2013-09-06  8:38   ` Thomas Petazzoni
2013-09-06  8:50     ` Fabio Porcedda
2013-09-06 12:37   ` Ryan Barnett
2013-09-06  8:57 ` Jérôme Pouiller
2013-09-06  9:05   ` Thomas Petazzoni

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.