toolchain-external: support toolchains with lib32 directories
Some toolchains, like the Cavium Networks' one, have lib32/ and lib64/ directories, while the standard lib/ is empty. To find libc.a, buildroot currently only looks in lib/ and lib64/. This patch extends the search to lib32/ as well. Signed-off-by: Thomas De Schampheleire <thomas.de.schampheleire@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
parent
519f7fbb1e
commit
650106b52e
|
@ -363,7 +363,7 @@ $(STAMP_DIR)/ext-toolchain-checked: $(TOOLCHAIN_EXTERNAL_DEPENDENCIES)
|
||||||
@$(call MESSAGE,"Checking external toolchain settings")
|
@$(call MESSAGE,"Checking external toolchain settings")
|
||||||
$(Q)$(call check_cross_compiler_exists,$(TOOLCHAIN_EXTERNAL_CC))
|
$(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)` ; \
|
$(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(64)?/(.*/)?libc\.a::'` ; \
|
SYSROOT_DIR=`echo $${LIBC_A_LOCATION} | sed -r -e 's:usr/lib(32|64)?/(.*/)?libc\.a::'` ; \
|
||||||
if test -z "$${SYSROOT_DIR}" ; then \
|
if test -z "$${SYSROOT_DIR}" ; then \
|
||||||
@echo "External toolchain doesn't support --sysroot. Cannot use." ; \
|
@echo "External toolchain doesn't support --sysroot. Cannot use." ; \
|
||||||
exit 1 ; \
|
exit 1 ; \
|
||||||
|
@ -397,7 +397,7 @@ $(STAMP_DIR)/ext-toolchain-checked: $(TOOLCHAIN_EXTERNAL_DEPENDENCIES)
|
||||||
#
|
#
|
||||||
# SYSROOT_DIR: the main sysroot directory, deduced from
|
# SYSROOT_DIR: the main sysroot directory, deduced from
|
||||||
# LIBC_A_LOCATION by removing the
|
# LIBC_A_LOCATION by removing the
|
||||||
# usr/lib[64]/libc.a part of the path.
|
# usr/lib[32|64]/libc.a part of the path.
|
||||||
# Ex: /x-tools/mips-2011.03/mips-linux-gnu/libc/
|
# Ex: /x-tools/mips-2011.03/mips-linux-gnu/libc/
|
||||||
#
|
#
|
||||||
# ARCH_LIBC_A_LOCATION: location of the libc.a file in the selected
|
# ARCH_LIBC_A_LOCATION: location of the libc.a file in the selected
|
||||||
|
@ -408,11 +408,11 @@ $(STAMP_DIR)/ext-toolchain-checked: $(TOOLCHAIN_EXTERNAL_DEPENDENCIES)
|
||||||
#
|
#
|
||||||
# ARCH_SYSROOT_DIR: the sysroot of the selected multilib variant,
|
# ARCH_SYSROOT_DIR: the sysroot of the selected multilib variant,
|
||||||
# deduced from ARCH_LIBC_A_LOCATION by removing
|
# deduced from ARCH_LIBC_A_LOCATION by removing
|
||||||
# usr/lib[64]/libc.a at the end of the path.
|
# usr/lib[32|64]/libc.a at the end of the path.
|
||||||
# Ex: /x-tools/mips-2011.03/mips-linux-gnu/libc/mips16/soft-float/el/
|
# Ex: /x-tools/mips-2011.03/mips-linux-gnu/libc/mips16/soft-float/el/
|
||||||
#
|
#
|
||||||
# ARCH_LIB_DIR: 'lib' or 'lib64' depending on where libraries are
|
# ARCH_LIB_DIR: 'lib', 'lib32' or 'lib64' depending on where libraries
|
||||||
# stored. Deduced from ARCH_LIBC_A_LOCATION by
|
# are stored. Deduced from ARCH_LIBC_A_LOCATION by
|
||||||
# looking at usr/lib??/libc.a.
|
# looking at usr/lib??/libc.a.
|
||||||
# Ex: lib
|
# Ex: lib
|
||||||
#
|
#
|
||||||
|
@ -433,14 +433,14 @@ $(STAMP_DIR)/ext-toolchain-checked: $(TOOLCHAIN_EXTERNAL_DEPENDENCIES)
|
||||||
|
|
||||||
$(STAMP_DIR)/ext-toolchain-installed: $(STAMP_DIR)/ext-toolchain-checked
|
$(STAMP_DIR)/ext-toolchain-installed: $(STAMP_DIR)/ext-toolchain-checked
|
||||||
$(Q)LIBC_A_LOCATION=`readlink -f $$(LANG=C $(TOOLCHAIN_EXTERNAL_CC) -print-file-name=libc.a)` ; \
|
$(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(64)?/(.*/)?libc\.a::'` ; \
|
SYSROOT_DIR=`echo $${LIBC_A_LOCATION} | sed -r -e 's:usr/lib(32|64)?/(.*/)?libc\.a::'` ; \
|
||||||
if test -z "$${SYSROOT_DIR}" ; then \
|
if test -z "$${SYSROOT_DIR}" ; then \
|
||||||
@echo "External toolchain doesn't support --sysroot. Cannot use." ; \
|
@echo "External toolchain doesn't support --sysroot. Cannot use." ; \
|
||||||
exit 1 ; \
|
exit 1 ; \
|
||||||
fi ; \
|
fi ; \
|
||||||
ARCH_LIBC_A_LOCATION=`readlink -f $$(LANG=C $(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS) -print-file-name=libc.a)` ; \
|
ARCH_LIBC_A_LOCATION=`readlink -f $$(LANG=C $(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS) -print-file-name=libc.a)` ; \
|
||||||
ARCH_SYSROOT_DIR=`echo $${ARCH_LIBC_A_LOCATION} | sed -r -e 's:usr/lib(64)?/(.*/)?libc\.a::'` ; \
|
ARCH_SYSROOT_DIR=`echo $${ARCH_LIBC_A_LOCATION} | sed -r -e 's:usr/lib(32|64)?/(.*/)?libc\.a::'` ; \
|
||||||
ARCH_LIB_DIR=`echo $${ARCH_LIBC_A_LOCATION} | sed -r -e 's:.*/usr/(lib(64)?)/(.*/)?libc.a:\1:'` ; \
|
ARCH_LIB_DIR=`echo $${ARCH_LIBC_A_LOCATION} | sed -r -e 's:.*/usr/(lib(32|64)?)/(.*/)?libc.a:\1:'` ; \
|
||||||
SUPPORT_LIB_DIR="" ; \
|
SUPPORT_LIB_DIR="" ; \
|
||||||
if test `find $${ARCH_SYSROOT_DIR} -name 'libstdc++.a' | wc -l` -eq 0 ; then \
|
if test `find $${ARCH_SYSROOT_DIR} -name 'libstdc++.a' | wc -l` -eq 0 ; then \
|
||||||
LIBSTDCPP_A_LOCATION=$$(LANG=C $(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS) -print-file-name=libstdc++.a) ; \
|
LIBSTDCPP_A_LOCATION=$$(LANG=C $(TOOLCHAIN_EXTERNAL_CC) $(TOOLCHAIN_EXTERNAL_CFLAGS) -print-file-name=libstdc++.a) ; \
|
||||||
|
@ -489,8 +489,8 @@ $(STAMP_DIR)/ext-toolchain-bfin-fdpic-shared-installed: $(STAMP_DIR)/ext-toolcha
|
||||||
$(Q)$(call MESSAGE,"Install external toolchain FDPIC libraries to target...") ; \
|
$(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_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)` ; \
|
FDPIC_LIBC_A_LOCATION=`readlink -f $$(LANG=C $${FDPIC_EXTERNAL_CC} $(TOOLCHAIN_EXTERNAL_CFLAGS) -print-file-name=libc.a)` ; \
|
||||||
FDPIC_SYSROOT_DIR=`echo $${FDPIC_LIBC_A_LOCATION} | sed -r -e 's:usr/lib(64)?/(.*/)?libc\.a::'` ; \
|
FDPIC_SYSROOT_DIR=`echo $${FDPIC_LIBC_A_LOCATION} | sed -r -e 's:usr/lib(32|64)?/(.*/)?libc\.a::'` ; \
|
||||||
FDPIC_LIB_DIR=`echo $${FDPIC_LIBC_A_LOCATION} | sed -r -e 's:.*/usr/(lib(64)?)/(.*/)?libc.a:\1:'` ; \
|
FDPIC_LIB_DIR=`echo $${FDPIC_LIBC_A_LOCATION} | sed -r -e 's:.*/usr/(lib(32|64)?)/(.*/)?libc.a:\1:'` ; \
|
||||||
FDPIC_SUPPORT_LIB_DIR="" ; \
|
FDPIC_SUPPORT_LIB_DIR="" ; \
|
||||||
if test `find $${FDPIC_SYSROOT_DIR} -name 'libstdc++.a' | wc -l` -eq 0 ; then \
|
if test `find $${FDPIC_SYSROOT_DIR} -name 'libstdc++.a' | wc -l` -eq 0 ; then \
|
||||||
FDPIC_LIBSTDCPP_A_LOCATION=$$(LANG=C $${FDPIC_EXTERNAL_CC} $(TOOLCHAIN_EXTERNAL_CFLAGS) -print-file-name=libstdc++.a) ; \
|
FDPIC_LIBSTDCPP_A_LOCATION=$$(LANG=C $${FDPIC_EXTERNAL_CC} $(TOOLCHAIN_EXTERNAL_CFLAGS) -print-file-name=libstdc++.a) ; \
|
||||||
|
|
Loading…
Reference in a new issue