diff options
Diffstat (limited to 'toolchain/external-toolchain')
-rw-r--r-- | toolchain/external-toolchain/Config.in | 22 | ||||
-rw-r--r-- | toolchain/external-toolchain/Config.in.2 | 17 | ||||
-rw-r--r-- | toolchain/external-toolchain/ext-tool.mk | 115 |
3 files changed, 0 insertions, 154 deletions
diff --git a/toolchain/external-toolchain/Config.in b/toolchain/external-toolchain/Config.in deleted file mode 100644 index efc8378c0..000000000 --- a/toolchain/external-toolchain/Config.in +++ /dev/null @@ -1,22 +0,0 @@ -# - -if BR2_TOOLCHAIN_EXTERNAL -choice - prompt "External toolchain C library" - default BR2_TOOLCHAIN_EXTERNAL_UCLIBC - -config BR2_TOOLCHAIN_EXTERNAL_UCLIBC - bool "uClibc" - -config BR2_TOOLCHAIN_EXTERNAL_GLIBC - bool "glibc" - -endchoice - -config BR2_TOOLCHAIN_EXTERNAL_STRIP - bool - default y - prompt "Strip shared libraries" - help - Strip shared libraries copied from the external toolchain. -endif diff --git a/toolchain/external-toolchain/Config.in.2 b/toolchain/external-toolchain/Config.in.2 deleted file mode 100644 index 489558c0f..000000000 --- a/toolchain/external-toolchain/Config.in.2 +++ /dev/null @@ -1,17 +0,0 @@ -# - -if BR2_TOOLCHAIN_EXTERNAL -config BR2_TOOLCHAIN_EXTERNAL_PATH - string "External toolchain path" - default "/path/to/staging_dir/usr" - help - Path to where the external toolchain is installed. - -config BR2_TOOLCHAIN_EXTERNAL_PREFIX - string "External toolchain prefix" - default "$(ARCH)-linux" - help - This the the external toolchain prefix. For example: - armeb-unknown-linux-gnu, mipsel-unknown-linux-gnu, etc. - -endif diff --git a/toolchain/external-toolchain/ext-tool.mk b/toolchain/external-toolchain/ext-tool.mk deleted file mode 100644 index 7e4645ddb..000000000 --- a/toolchain/external-toolchain/ext-tool.mk +++ /dev/null @@ -1,115 +0,0 @@ - -# -# This file implements the support for external toolchains, i.e -# toolchains that have not been produced by Buildroot itself and that -# are already available on the system on which Buildroot runs. So far, -# we have tested this with: -# -# * Toolchains generated by Crosstool-NG -# * Toolchains generated by Buildroot -# * ARM, MIPS and PowerPC toolchains made available by -# Codesourcery. For the MIPS toolchain, the -muclibc variant isn't -# supported yet, only the default glibc-based variant is. -# -# The basic principle is the following -# -# 1. Perform some checks on the conformity between the toolchain -# configuration described in the Buildroot menuconfig system, and the -# real configuration of the external toolchain. This is for example -# important to make sure that the Buildroot configuration system -# knows whether the toolchain supports RPC, IPv6, locales, large -# files, etc. Unfortunately, these things cannot be detected -# automatically, since the value of these options (such as -# BR2_INET_RPC) are needed at configuration time because these -# options are used as dependencies for other options. And at -# configuration time, we are not able to retrieve the external -# toolchain configuration. -# -# 2. Copy the libraries needed at runtime to the target directory, -# $(TARGET_DIR). Obviously, things such as the C library, the dynamic -# loader and a few other utility libraries are needed if dynamic -# applications are to be executed on the target system. -# -# 3. Copy the libraries and headers to the staging directory. This -# will allow all further calls to gcc to be made using --sysroot -# $(STAGING_DIR), which greatly simplifies the compilation of the -# packages when using external toolchains. So in the end, only the -# cross-compiler binaries remains external, all libraries and headers -# are imported into the Buildroot tree. - -uclibc: dependencies $(STAMP_DIR)/ext-toolchain-installed - -LIB_EXTERNAL_LIBS=ld*.so libc.so libcrypt.so libdl.so libgcc_s.so libm.so libnsl.so libresolv.so librt.so libutil.so -ifeq ($(BR2_TOOLCHAIN_EXTERNAL_GLIBC),y) -LIB_EXTERNAL_LIBS+=libnss_files.so libnss_dns.so -endif - -ifeq ($(BR2_INSTALL_LIBSTDCPP),y) -USR_LIB_EXTERNAL_LIBS+=libstdc++.so -endif - -ifneq ($(BR2_PTHREADS_NONE),y) -LIB_EXTERNAL_LIBS+=libpthread.so -ifeq ($(BR2_PACKAGE_GDB_SERVER),y) -LIB_EXTERNAL_LIBS+=libthread_db.so -endif # gdbserver -endif # ! no threads - -# SYSROOT_DIR selection. We first try the -print-sysroot option, -# available in gcc 4.4.x and in some Codesourcery toolchains. If this -# option is not available, we fallback to the value of --with-sysroot -# as visible in CROSS-gcc -v. We don't pass any option to gcc that -# could select a multilib variant as we want the "main" sysroot, which -# contains all variants of the C library in the case of multilib -# toolchains. -TARGET_CC_NO_SYSROOT=$(filter-out --sysroot=%,$(TARGET_CC)) -SYSROOT_DIR=$(shell $(TARGET_CC_NO_SYSROOT) -print-sysroot 2>/dev/null) -ifeq ($(SYSROOT_DIR),) -SYSROOT_DIR=$(shell readlink -f $$(LANG=C $(TARGET_CC_NO_SYSROOT) -print-file-name=libc.a) |sed -r -e 's:usr/lib/libc\.a::;') -endif - -# Now, find if the toolchain specifies a sub-directory for the -# specific architecture variant we're interested in. This is the case -# with multilib toolchain, when the selected architecture variant is -# not the default one. To do so, we ask the compiler by passing all -# flags, except the --sysroot flag since we want to the compiler to -# tell us where its original sysroot is. ARCH_SUBDIR will contain the -# subdirectory, in the main SYSROOT_DIR, that corresponds to the -# selected architecture variant. ARCH_SYSROOT_DIR will contain the -# full path to this location. -ARCH_SUBDIR=$(shell $(TARGET_CC_NO_SYSROOT) $(TARGET_CFLAGS) -print-multi-directory) -ARCH_SYSROOT_DIR=$(SYSROOT_DIR)/$(ARCH_SUBDIR) - -$(STAMP_DIR)/ext-toolchain-installed: - @echo "Checking external toolchain settings" - $(Q)$(call check_cross_compiler_exists) -ifeq ($(strip $(SYSROOT_DIR)),) - @echo "External toolchain doesn't support --sysroot. Cannot use." - exit 1 -endif -ifeq ($(BR2_arm),y) - $(Q)$(call check_arm_abi) -endif -ifeq ($(BR2_INSTALL_LIBSTDCPP),y) - $(Q)$(call check_cplusplus) -endif -ifeq ($(BR2_TOOLCHAIN_EXTERNAL_UCLIBC),y) - $(Q)$(call check_uclibc,$(SYSROOT_DIR)) -else - $(Q)$(call check_glibc,$(SYSROOT_DIR)) -endif - mkdir -p $(TARGET_DIR)/lib - @echo "Copy external toolchain libraries to target..." - $(Q)for libs in $(LIB_EXTERNAL_LIBS); do \ - $(call copy_toolchain_lib_root,$(ARCH_SYSROOT_DIR),$$libs,/lib,$(BR2_TOOLCHAIN_EXTERNAL_STRIP)); \ - done - $(Q)for libs in $(USR_LIB_EXTERNAL_LIBS); do \ - $(call copy_toolchain_lib_root,$(ARCH_SYSROOT_DIR),$$libs,/usr/lib,$(BR2_TOOLCHAIN_EXTERNAL_STRIP)); \ - done - @echo "Copy external toolchain sysroot to staging..." - $(Q)$(call copy_toolchain_sysroot,$(SYSROOT_DIR),$(ARCH_SYSROOT_DIR),$(ARCH_SUBDIR)) - # Create lib64 symbolic links if needed - $(Q)if [ -L $(ARCH_SYSROOT_DIR)/lib64 ] ; then \ - $(call create_lib64_symlinks) ; \ - fi - @touch $@ |