diff options
author | Alexey Neyman <stilor@att.net> | 2019-12-23 15:17:34 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-12-23 15:17:34 -0800 |
commit | be5d0317d23ce7d3c4eb497d21ec7c27b0acf6de (patch) | |
tree | ad870ce5e42072ea60732125cbce2ba580d5dc14 /scripts/build/arch/arc.sh | |
parent | e0a63b85460876325154305b472459a9231384aa (diff) | |
parent | de76f7cc82eedac5653283a99c1c7083d7a0d43b (diff) | |
download | crosstool-ng-be5d0317d23ce7d3c4eb497d21ec7c27b0acf6de.tar.gz crosstool-ng-be5d0317d23ce7d3c4eb497d21ec7c27b0acf6de.tar.bz2 crosstool-ng-be5d0317d23ce7d3c4eb497d21ec7c27b0acf6de.zip |
Merge pull request #1201 from abrodkin/topic-glibc-multilib
ARC: Support building of multi-lib Glibc toolchain
Diffstat (limited to 'scripts/build/arch/arc.sh')
-rw-r--r-- | scripts/build/arch/arc.sh | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/scripts/build/arch/arc.sh b/scripts/build/arch/arc.sh index b13ef0eb..d15f73f3 100644 --- a/scripts/build/arch/arc.sh +++ b/scripts/build/arch/arc.sh @@ -29,3 +29,39 @@ CT_DoArchUClibcCflags() esac done } + +# Multilib: Adjust configure arguments for GLIBC +# Usage: CT_DoArchGlibcAdjustConfigure <configure-args-array-name> <cflags> +# +# From GCC's standpoint ARC's multilib items are defined by "mcpu" values +# which we have quite a few and for all of them might be built optimized +# cross-toolchain. +# +# From Glibc's standpoint multilib is multi-ABI and so very limited +# versions are supposed to co-exist. +# +# Here we force Glibc to install libraries in per-multilib folder to create +# a universal cross-toolchain that has libs optimized for multiple CPU types. +CT_DoArchGlibcAdjustConfigure() { + local -a add_args + local array="${1}" + local cflags="${2}" + local opt + local mcpu + + # If building for multilib, set proper installation paths + if [ "${CT_MULTILIB}" = "y" ]; then + for opt in ${cflags}; do + case "${opt}" in + -mcpu=*) + mcpu="${opt#*=}" + add_args+=( "libc_cv_rtlddir=/lib/${mcpu}" ) + add_args+=( "libc_cv_slibdir=/lib/${mcpu}" ) + add_args+=( "--libdir=/usr/lib/${mcpu}" ) + ;; + esac + done + fi + + eval "${array}+=( \"\${add_args[@]}\" )" +} |