mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-19 12:57:53 +00:00
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:
parent
a2e7a536e0
commit
170091aa2a
@ -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
|
||||||
|
Loading…
Reference in New Issue
Block a user