libc/glibc: set the endian option according to extra CFLAGS

When building a multilib, some extra CFLAGS can override the
default config option. This is the case for the endianness
selection.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
This commit is contained in:
Yann E. MORIN" 2011-11-22 00:11:51 +01:00
parent a2e7a536e0
commit 170091aa2a

View File

@ -78,6 +78,7 @@ do_libc_backend() {
local -a extra_make_args local -a extra_make_args
local glibc_cflags local glibc_cflags
local float_extra local float_extra
local endian_extra
while [ $# -ne 0 ]; do while [ $# -ne 0 ]; do
eval "${1// /\\ }" eval "${1// /\\ }"
@ -169,7 +170,23 @@ do_libc_backend() {
[ -n "${CT_TOOLCHAIN_BUGURL}" ] && extra_config+=("--with-bugurl=${CT_TOOLCHAIN_BUGURL}") [ -n "${CT_TOOLCHAIN_BUGURL}" ] && extra_config+=("--with-bugurl=${CT_TOOLCHAIN_BUGURL}")
fi fi
extra_cc_args="${extra_cc_args} ${CT_ARCH_ENDIAN_OPT}" # Extract the endianness options if any
# This should cover all possible endianness options
# in gcc, but it is prone to bit-rot... :-(
endian_extra="$( echo "${extra_flags}" \
|${sed} -r -e '/^(.*[[:space:]])?-(E[BL]|m((big|little)(-endian)?|e?[bl]))([[:space:]].*)?$/!d;' \
-e 's//\2/;' \
)"
case "${endian_extra}" in
EB|mbig-endian|mbig|meb|mb)
extra_cc_args="${extra_cc_args} ${endian_extra}"
;;
EL|mlittle-endian|mlittle|mel|ml)
extra_cc_args="${extra_cc_args} ${endian_extra}"
;;
"") extra_cc_args="${extra_cc_args} ${CT_ARCH_ENDIAN_OPT}"
;;
esac
touch config.cache touch config.cache
if [ "${CT_LIBC_GLIBC_FORCE_UNWIND}" = "y" ]; then if [ "${CT_LIBC_GLIBC_FORCE_UNWIND}" = "y" ]; then