summaryrefslogtreecommitdiffstats
path: root/toolchain
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain')
-rw-r--r--toolchain/helpers.mk21
-rw-r--r--toolchain/toolchain-external/Config.in6
-rw-r--r--toolchain/toolchain-external/ext-tool.mk14
3 files changed, 19 insertions, 22 deletions
diff --git a/toolchain/helpers.mk b/toolchain/helpers.mk
index 4c988a5c9a..44b6018fd9 100644
--- a/toolchain/helpers.mk
+++ b/toolchain/helpers.mk
@@ -125,7 +125,7 @@ copy_toolchain_lib_root = \
# $1: main sysroot directory of the toolchain
# $2: arch specific sysroot directory of the toolchain
# $3: arch specific subdirectory in the sysroot
-# $4: directory of libraries ('lib' or 'lib64')
+# $4: directory of libraries ('lib', 'lib32' or 'lib64')
# $5: support lib directories (for toolchains storing libgcc_s,
# libstdc++ and other gcc support libraries outside of the
# sysroot)
@@ -135,9 +135,11 @@ copy_toolchain_sysroot = \
ARCH_SUBDIR="$(strip $3)"; \
ARCH_LIB_DIR="$(strip $4)" ; \
SUPPORT_LIB_DIR="$(strip $5)" ; \
- for i in etc $${ARCH_LIB_DIR} sbin usr ; do \
+ for i in etc $${ARCH_LIB_DIR} sbin usr usr/$${ARCH_LIB_DIR}; do \
if [ -d $${ARCH_SYSROOT_DIR}/$$i ] ; then \
- rsync -au --chmod=Du+w --exclude 'usr/lib/locale' $${ARCH_SYSROOT_DIR}/$$i $(STAGING_DIR)/ ; \
+ rsync -au --chmod=Du+w --exclude 'usr/lib/locale' \
+ --exclude lib --exclude lib32 --exclude lib64 \
+ $${ARCH_SYSROOT_DIR}/$$i/ $(STAGING_DIR)/$$i/ ; \
fi ; \
done ; \
if [ `readlink -f $${SYSROOT_DIR}` != `readlink -f $${ARCH_SYSROOT_DIR}` ] ; then \
@@ -159,19 +161,6 @@ copy_toolchain_sysroot = \
find $(STAGING_DIR) -type d | xargs chmod 755
#
-# Create lib64 -> lib and usr/lib64 -> usr/lib symbolic links in the
-# target and staging directories. This is needed for some 64 bits
-# toolchains such as the Crosstool-NG toolchains, for which the path
-# to the dynamic loader and other libraries is /lib64, but the
-# libraries are stored in /lib.
-#
-create_lib64_symlinks = \
- (cd $(TARGET_DIR) ; ln -s lib lib64) ; \
- (cd $(TARGET_DIR)/usr ; ln -s lib lib64) ; \
- (cd $(STAGING_DIR) ; ln -s lib lib64) ; \
- (cd $(STAGING_DIR)/usr ; ln -s lib lib64)
-
-#
# Check the availability of a particular glibc feature. This function
# is used to check toolchain options that are always supported by
# glibc, so we simply check that the corresponding option is properly
diff --git a/toolchain/toolchain-external/Config.in b/toolchain/toolchain-external/Config.in
index 324401f4f5..ad1f203139 100644
--- a/toolchain/toolchain-external/Config.in
+++ b/toolchain/toolchain-external/Config.in
@@ -190,6 +190,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201305
bool "Sourcery CodeBench MIPS 2013.05"
depends on BR2_mips || BR2_mipsel || BR2_mips64 || BR2_mips64el
depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+ depends on !BR2_MIPS_NABI32
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
select BR2_INSTALL_LIBSTDCPP
@@ -260,6 +261,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201209
bool "Sourcery CodeBench MIPS 2012.09"
depends on BR2_mips || BR2_mipsel
depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+ depends on !BR2_MIPS_NABI32
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
select BR2_INSTALL_LIBSTDCPP
@@ -330,6 +332,7 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201203
bool "Sourcery CodeBench MIPS 2012.03"
depends on BR2_mips || BR2_mipsel
depends on BR2_HOSTARCH = "x86_64" || BR2_HOSTARCH = "x86"
+ depends on !BR2_MIPS_NABI32
select BR2_TOOLCHAIN_EXTERNAL_GLIBC
select BR2_TOOLCHAIN_HAS_NATIVE_RPC
select BR2_INSTALL_LIBSTDCPP
@@ -396,6 +399,9 @@ config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_MIPS201203
- MIPS32 little endian soft float uclibc
Not usable in Buildroot yet.
+comment "Sourcery CodeBench toolchains are only available for MIPS/MIPS64 o32 and n64"
+ depends on BR2_MIPS_NABI32
+
config BR2_TOOLCHAIN_EXTERNAL_CODESOURCERY_POWERPC201103
bool "Sourcery CodeBench PowerPC 2011.03"
depends on BR2_powerpc
diff --git a/toolchain/toolchain-external/ext-tool.mk b/toolchain/toolchain-external/ext-tool.mk
index a3c40c873b..38f6e22906 100644
--- a/toolchain/toolchain-external/ext-tool.mk
+++ b/toolchain/toolchain-external/ext-tool.mk
@@ -449,7 +449,6 @@ $(STAMP_DIR)/ext-toolchain-installed: $(STAMP_DIR)/ext-toolchain-checked
fi ; \
fi ; \
ARCH_SUBDIR=`echo $${ARCH_SYSROOT_DIR} | sed -r -e "s:^$${SYSROOT_DIR}(.*)/$$:\1:"` ; \
- mkdir -p $(TARGET_DIR)/lib ; \
if test -z "$(BR2_PREFER_STATIC_LIB)" ; then \
$(call MESSAGE,"Copying external toolchain libraries to target...") ; \
for libs in $(LIB_EXTERNAL_LIBS); do \
@@ -461,9 +460,6 @@ $(STAMP_DIR)/ext-toolchain-installed: $(STAMP_DIR)/ext-toolchain-checked
fi ; \
$(call MESSAGE,"Copying external toolchain sysroot to staging...") ; \
$(call copy_toolchain_sysroot,$${SYSROOT_DIR},$${ARCH_SYSROOT_DIR},$${ARCH_SUBDIR},$${ARCH_LIB_DIR},$${SUPPORT_LIB_DIR}) ; \
- if [ -L $${ARCH_SYSROOT_DIR}/lib64 -o -d $${ARCH_SYSROOT_DIR}/lib64 ] ; then \
- $(call create_lib64_symlinks) ; \
- fi ; \
if test "$(BR2_TOOLCHAIN_EXTERNAL_GDB_SERVER_COPY)" = "y"; then \
$(call MESSAGE,"Copying gdbserver") ; \
gdbserver_found=0 ; \
@@ -531,8 +527,9 @@ ifeq ($(BR2_BFIN_INSTALL_FLAT_SHARED),y)
TOOLCHAIN_EXTERNAL_INSTALL += $(STAMP_DIR)/ext-toolchain-bfin-shared-flat-installed
endif
-# Build toolchain wrapper for preprocessor, C and C++ compiler, and setup
-# symlinks for everything else
+# 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)
$(Q)$(call MESSAGE,"Building ext-toolchain wrapper")
mkdir -p $(HOST_DIR)/usr/bin; cd $(HOST_DIR)/usr/bin; \
@@ -542,6 +539,11 @@ $(HOST_DIR)/usr/bin/ext-toolchain-wrapper: $(TOOLCHAIN_EXTERNAL_INSTALL)
*cc|*cc-*|*++|*++-*|*cpp) \
ln -sf $(@F) $$base; \
;; \
+ *gdb|*gdbtui) \
+ if test "$(BR2_PACKAGE_HOST_GDB)" != "y"; then \
+ ln -sf $$(echo $$i | sed 's%^$(HOST_DIR)%../..%') .; \
+ fi \
+ ;; \
*) \
ln -sf $$(echo $$i | sed 's%^$(HOST_DIR)%../..%') .; \
;; \
OpenPOWER on IntegriCloud