Merge the bash_array branch.

For every components where it makes sense, use bash arrays (instead
of a string with space-separated values) to store the options pased
to ./configure.
This commit is contained in:
Yann E. MORIN" 2009-08-19 19:52:04 +02:00
commit 4de6139e7e
8 changed files with 199 additions and 146 deletions

View File

@ -219,6 +219,17 @@ config CC_SJLJ_EXCEPTIONS_DONT_USE
endchoice endchoice
config CC_ENABLE_CXX_FLAGS
string
prompt "Flags to pass to --enable-cxx-flags"
default ""
help
Enter here the value of the gcc's ./configure option --enable-cxx-flags.
Leave empty if you don't know better.
Note: just pass in the option _value_, that is only the part that goes
after the '=' sign.
config CC_CORE_EXTRA_CONFIG config CC_CORE_EXTRA_CONFIG
string string
prompt "Core gcc extra config" prompt "Core gcc extra config"

4
configure vendored
View File

@ -318,8 +318,8 @@ add_to_var_list sed
# The regular list of tools we can now easily check for # The regular list of tools we can now easily check for
has_or_abort prog=bash \ has_or_abort prog=bash \
var=bash \ var=bash \
ver='^GNU bash, version [34]\.' \ ver='^GNU bash, version (3\.[1-9]|4)' \
err="'bash' 3.x or above was not found" err="'bash' 3.1 or above was not found"
has_or_abort prog=cut has_or_abort prog=cut
has_or_abort prog=install var=install has_or_abort prog=install var=install
has_or_abort prog=make \ has_or_abort prog=make \

View File

@ -17,16 +17,18 @@ do_binutils_extract() {
# Build binutils # Build binutils
do_binutils() { do_binutils() {
local -a extra_config
mkdir -p "${CT_BUILD_DIR}/build-binutils" mkdir -p "${CT_BUILD_DIR}/build-binutils"
cd "${CT_BUILD_DIR}/build-binutils" cd "${CT_BUILD_DIR}/build-binutils"
CT_DoStep INFO "Installing binutils" CT_DoStep INFO "Installing binutils"
binutils_opts=
# If GMP and MPFR were configured, then use that, # If GMP and MPFR were configured, then use that,
# otherwise let binutils find the system-wide libraries, if they exist. # otherwise let binutils find the system-wide libraries, if they exist.
if [ "${CT_GMP_MPFR}" = "y" ]; then if [ "${CT_GMP_MPFR}" = "y" ]; then
binutils_opts="--with-gmp=${CT_PREFIX_DIR} --with-mpfr=${CT_PREFIX_DIR}" extra_config+=("--with-gmp=${CT_PREFIX_DIR}")
extra_config+=("--with-mpfr=${CT_PREFIX_DIR}")
fi fi
CT_DoLog EXTRA "Configuring binutils" CT_DoLog EXTRA "Configuring binutils"
@ -40,7 +42,7 @@ do_binutils() {
--disable-nls \ --disable-nls \
--disable-multilib \ --disable-multilib \
--disable-werror \ --disable-werror \
${binutils_opts} \ "${extra_config[@]}" \
${CT_ARCH_WITH_FLOAT} \ ${CT_ARCH_WITH_FLOAT} \
${CT_BINUTILS_EXTRA_CONFIG} \ ${CT_BINUTILS_EXTRA_CONFIG} \
${BINUTILS_SYSROOT_ARG} ${BINUTILS_SYSROOT_ARG}
@ -70,18 +72,27 @@ do_binutils() {
# Now on for the target libraries # Now on for the target libraries
do_binutils_target() { do_binutils_target() {
targets= local -a extra_config
[ "${CT_BINUTILS_FOR_TARGET_IBERTY}" = "y" ] && targets="${targets} libiberty" local -a targets
[ "${CT_BINUTILS_FOR_TARGET_BFD}" = "y" ] && targets="${targets} bfd" local -a build_targets
targets="${targets# }" local -a install_targets
local t
[ "${CT_BINUTILS_FOR_TARGET_IBERTY}" = "y" ] && targets+=("libiberty")
[ "${CT_BINUTILS_FOR_TARGET_BFD}" = "y" ] && targets+=("bfd")
for t in "${targets[@]}"; do
build_targets+=("all-${t}")
install_targets+=("install-${t}")
done
binutils_opts=
# If GMP and MPFR were configured, then use that # If GMP and MPFR were configured, then use that
if [ "${CT_GMP_MPFR_TARGET}" = "y" ]; then if [ "${CT_GMP_MPFR_TARGET}" = "y" ]; then
binutils_opts="--with-gmp=${CT_SYSROOT_DIR}/usr --with-mpfr=${CT_SYSROOT_DIR}/usr" extra_config+=("--with-gmp=${CT_SYSROOT_DIR}/usr")
extra_config+=("--with-mpfr=${CT_SYSROOT_DIR}/usr")
fi fi
if [ -n "${targets}" ]; then if [ "${#targets[@]}" -ne 0 ]; then
CT_DoStep INFO "Installing binutils for target" CT_DoStep INFO "Installing binutils for target"
mkdir -p "${CT_BUILD_DIR}/build-binutils-for-target" mkdir -p "${CT_BUILD_DIR}/build-binutils-for-target"
CT_Pushd "${CT_BUILD_DIR}/build-binutils-for-target" CT_Pushd "${CT_BUILD_DIR}/build-binutils-for-target"
@ -98,17 +109,14 @@ do_binutils_target() {
--enable-static \ --enable-static \
--disable-nls \ --disable-nls \
--disable-multilib \ --disable-multilib \
${binutils_opts} \ "${extra_config[@]}" \
${CT_ARCH_WITH_FLOAT} \ ${CT_ARCH_WITH_FLOAT} \
${CT_BINUTILS_EXTRA_CONFIG} ${CT_BINUTILS_EXTRA_CONFIG}
build_targets=$(echo "${targets}" |sed -r -e 's/(^| +)/\1all-/g;') CT_DoLog EXTRA "Building binutils' libraries (${targets[*]}) for target"
install_targets=$(echo "${targets}" |sed -r -e 's/(^| +)/\1install-/g;') CT_DoExecLog ALL make ${PARALLELMFLAGS} "${build_targets[@]}"
CT_DoLog EXTRA "Installing binutils' libraries (${targets[*]}) for target"
CT_DoLog EXTRA "Building binutils' libraries (${targets}) for target" CT_DoExecLog ALL make DESTDIR="${CT_SYSROOT_DIR}" "${install_targets[@]}"
CT_DoExecLog ALL make ${PARALLELMFLAGS} ${build_targets}
CT_DoLog EXTRA "Installing binutils' libraries (${targets}) for target"
CT_DoExecLog ALL make DESTDIR="${CT_SYSROOT_DIR}" ${install_targets}
CT_Popd CT_Popd
CT_EndStep CT_EndStep

View File

@ -92,8 +92,9 @@ do_cc_core() {
local mode local mode
local build_libgcc local build_libgcc
local core_prefix_dir local core_prefix_dir
local extra_config
local lang_opt local lang_opt
local tmp
local -a extra_config
eval $1 eval $1
eval $2 eval $2
@ -110,17 +111,21 @@ do_cc_core() {
case "${mode}" in case "${mode}" in
static) static)
core_prefix_dir="${CT_CC_CORE_STATIC_PREFIX_DIR}" core_prefix_dir="${CT_CC_CORE_STATIC_PREFIX_DIR}"
extra_config="${extra_config} --with-newlib --enable-threads=no --disable-shared" extra_config+=("--with-newlib")
extra_config+=("--enable-threads=no")
extra_config+=("--disable-shared")
copy_headers=y copy_headers=y
;; ;;
shared) shared)
core_prefix_dir="${CT_CC_CORE_SHARED_PREFIX_DIR}" core_prefix_dir="${CT_CC_CORE_SHARED_PREFIX_DIR}"
extra_config="${extra_config} --enable-shared" extra_config+=("--enable-shared")
copy_headers=y copy_headers=y
;; ;;
baremetal) baremetal)
core_prefix_dir="${CT_PREFIX_DIR}" core_prefix_dir="${CT_PREFIX_DIR}"
extra_config="${extra_config} --with-newlib --enable-threads=no --disable-shared" extra_config+=("--with-newlib")
extra_config+=("--enable-threads=no")
extra_config+=("--disable-shared")
[ "${CT_CC_LANG_CXX}" = "y" ] && lang_opt="${lang_opt},c++" [ "${CT_CC_LANG_CXX}" = "y" ] && lang_opt="${lang_opt},c++"
copy_headers=n copy_headers=n
;; ;;
@ -134,28 +139,28 @@ do_cc_core() {
CT_DoLog EXTRA "Configuring ${mode} core C compiler" CT_DoLog EXTRA "Configuring ${mode} core C compiler"
extra_config="${extra_config} ${CT_ARCH_WITH_ARCH}" for tmp in ARCH ABI CPU TUNE FPU FLOAT; do
extra_config="${extra_config} ${CT_ARCH_WITH_ABI}" eval tmp="\${CT_ARCH_WITH_${tmp}}"
extra_config="${extra_config} ${CT_ARCH_WITH_CPU}" if [ -n "${tmp}" ]; then
extra_config="${extra_config} ${CT_ARCH_WITH_TUNE}" extra_config+=("${tmp}")
extra_config="${extra_config} ${CT_ARCH_WITH_FPU}" fi
extra_config="${extra_config} ${CT_ARCH_WITH_FLOAT}" done
if [ "${CT_CC_CXA_ATEXIT}" = "y" ]; then if [ "${CT_CC_CXA_ATEXIT}" = "y" ]; then
extra_config="${extra_config} --enable-__cxa_atexit" extra_config+=("--enable-__cxa_atexit")
else else
extra_config="${extra_config} --disable-__cxa_atexit" extra_config+=("--disable-__cxa_atexit")
fi fi
if [ "${CT_GMP_MPFR}" = "y" ]; then if [ "${CT_GMP_MPFR}" = "y" ]; then
extra_config="${extra_config} --with-gmp=${CT_PREFIX_DIR}" extra_config+=("--with-gmp=${CT_PREFIX_DIR}")
extra_config="${extra_config} --with-mpfr=${CT_PREFIX_DIR}" extra_config+=("--with-mpfr=${CT_PREFIX_DIR}")
fi fi
if [ "${CT_PPL_CLOOG_MPC}" = "y" ]; then if [ "${CT_PPL_CLOOG_MPC}" = "y" ]; then
extra_config="${extra_config} --with-ppl=${CT_PREFIX_DIR}" extra_config+=("--with-ppl=${CT_PREFIX_DIR}")
extra_config="${extra_config} --with-cloog=${CT_PREFIX_DIR}" extra_config+=("--with-cloog=${CT_PREFIX_DIR}")
extra_config="${extra_config} --with-mpc=${CT_PREFIX_DIR}" extra_config+=("--with-mpc=${CT_PREFIX_DIR}")
fi fi
CT_DoLog DEBUG "Extra config passed: '${extra_config}'" CT_DoLog DEBUG "Extra config passed: '${extra_config[*]}'"
# Use --with-local-prefix so older gccs don't look in /usr/local (http://gcc.gnu.org/PR10532) # Use --with-local-prefix so older gccs don't look in /usr/local (http://gcc.gnu.org/PR10532)
CC_FOR_BUILD="${CT_BUILD}-gcc" \ CC_FOR_BUILD="${CT_BUILD}-gcc" \
@ -169,7 +174,7 @@ do_cc_core() {
--with-local-prefix="${CT_SYSROOT_DIR}" \ --with-local-prefix="${CT_SYSROOT_DIR}" \
--disable-multilib \ --disable-multilib \
${CC_CORE_SYSROOT_ARG} \ ${CC_CORE_SYSROOT_ARG} \
${extra_config} \ "${extra_config[@]}" \
--disable-nls \ --disable-nls \
--enable-symvers=gnu \ --enable-symvers=gnu \
--enable-languages="${lang_opt}" \ --enable-languages="${lang_opt}" \
@ -249,6 +254,9 @@ do_cc_core() {
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Build final gcc # Build final gcc
do_cc() { do_cc() {
local -a extra_config
local tmp
# If building for bare metal, nothing to be done here, the static core conpiler is enough! # If building for bare metal, nothing to be done here, the static core conpiler is enough!
[ "${CT_BARE_METAL}" = "y" ] && return 0 [ "${CT_BARE_METAL}" = "y" ] && return 0
@ -273,35 +281,39 @@ do_cc() {
CT_Test "Building ${CT_CC_LANG_OTHERS//,/ } language(s) is not yet supported. Will try..." -n "${CT_CC_LANG_OTHERS}" CT_Test "Building ${CT_CC_LANG_OTHERS//,/ } language(s) is not yet supported. Will try..." -n "${CT_CC_LANG_OTHERS}"
lang_opt=$(echo "${lang_opt},${CT_CC_LANG_OTHERS}" |sed -r -e 's/,+/,/g; s/,*$//;') lang_opt=$(echo "${lang_opt},${CT_CC_LANG_OTHERS}" |sed -r -e 's/,+/,/g; s/,*$//;')
extra_config="--enable-languages=${lang_opt}" extra_config+=("--enable-languages=${lang_opt}")
extra_config="${extra_config} --disable-multilib" extra_config+=("--disable-multilib")
extra_config="${extra_config} ${CT_ARCH_WITH_ARCH}" for tmp in ARCH ABI CPU TUNE FPU FLOAT; do
extra_config="${extra_config} ${CT_ARCH_WITH_ABI}" eval tmp="\${CT_ARCH_WITH_${tmp}}"
extra_config="${extra_config} ${CT_ARCH_WITH_CPU}" if [ -n "${tmp}" ]; then
extra_config="${extra_config} ${CT_ARCH_WITH_TUNE}" extra_config+=("${tmp}")
extra_config="${extra_config} ${CT_ARCH_WITH_FPU}" fi
extra_config="${extra_config} ${CT_ARCH_WITH_FLOAT}" done
[ "${CT_SHARED_LIBS}" = "y" ] || extra_config="${extra_config} --disable-shared"
[ -n "${CT_CC_PKGVERSION}" ] && extra_config="${extra_config} --with-pkgversion=${CT_CC_PKGVERSION}" [ "${CT_SHARED_LIBS}" = "y" ] || extra_config+=("--disable-shared")
[ -n "${CT_CC_BUGURL}" ] && extra_config="${extra_config} --with-bugurl=${CT_CC_BUGURL}" [ -n "${CT_CC_PKGVERSION}" ] && extra_config+=("--with-pkgversion=${CT_CC_PKGVERSION}")
[ "${CT_CC_SJLJ_EXCEPTIONS_USE}" = "y" ] && extra_config="${extra_config} --enable-sjlj-exceptions" [ -n "${CT_CC_BUGURL}" ] && extra_config+=("--with-bugurl=${CT_CC_BUGURL}")
[ "${CT_CC_SJLJ_EXCEPTIONS_DONT_USE}" = "y" ] && extra_config="${extra_config} --disable-sjlj-exceptions" [ "${CT_CC_SJLJ_EXCEPTIONS_USE}" = "y" ] && extra_config+=("--enable-sjlj-exceptions")
[ "${CT_CC_SJLJ_EXCEPTIONS_DONT_USE}" = "y" ] && extra_config+=("--disable-sjlj-exceptions")
if [ "${CT_CC_CXA_ATEXIT}" = "y" ]; then if [ "${CT_CC_CXA_ATEXIT}" = "y" ]; then
extra_config="${extra_config} --enable-__cxa_atexit" extra_config+=("--enable-__cxa_atexit")
else else
extra_config="${extra_config} --disable-__cxa_atexit" extra_config+=("--disable-__cxa_atexit")
fi fi
if [ "${CT_GMP_MPFR}" = "y" ]; then if [ "${CT_GMP_MPFR}" = "y" ]; then
extra_config="${extra_config} --with-gmp=${CT_PREFIX_DIR}" extra_config+=("--with-gmp=${CT_PREFIX_DIR}")
extra_config="${extra_config} --with-mpfr=${CT_PREFIX_DIR}" extra_config+=("--with-mpfr=${CT_PREFIX_DIR}")
fi fi
if [ "${CT_PPL_CLOOG_MPC}" = "y" ]; then if [ "${CT_PPL_CLOOG_MPC}" = "y" ]; then
extra_config="${extra_config} --with-ppl=${CT_PREFIX_DIR}" extra_config+=("--with-ppl=${CT_PREFIX_DIR}")
extra_config="${extra_config} --with-cloog=${CT_PREFIX_DIR}" extra_config+=("--with-cloog=${CT_PREFIX_DIR}")
extra_config="${extra_config} --with-mpc=${CT_PREFIX_DIR}" extra_config+=("--with-mpc=${CT_PREFIX_DIR}")
fi
if [ -n "${CC_ENABLE_CXX_FLAGS}" ]; then
extra_config+=("--enable-cxx-flags=${CC_ENABLE_CXX_FLAGS}")
fi fi
CT_DoLog DEBUG "Extra config passed: '${extra_config}'" CT_DoLog DEBUG "Extra config passed: '${extra_config[*]}'"
# --enable-symvers=gnu really only needed for sh4 to work around a # --enable-symvers=gnu really only needed for sh4 to work around a
# detection problem only matters for gcc-3.2.x and later, I think. # detection problem only matters for gcc-3.2.x and later, I think.
@ -319,7 +331,7 @@ do_cc() {
--target=${CT_TARGET} \ --target=${CT_TARGET} \
--prefix="${CT_PREFIX_DIR}" \ --prefix="${CT_PREFIX_DIR}" \
${CC_SYSROOT_ARG} \ ${CC_SYSROOT_ARG} \
${extra_config} \ "${extra_config[@]}" \
--with-local-prefix="${CT_SYSROOT_DIR}" \ --with-local-prefix="${CT_SYSROOT_DIR}" \
--disable-nls \ --disable-nls \
--enable-threads=posix \ --enable-threads=posix \

View File

@ -10,27 +10,28 @@ do_debug_dmalloc_extract() {
} }
do_debug_dmalloc_build() { do_debug_dmalloc_build() {
local -a extra_config
CT_DoStep INFO "Installing dmalloc" CT_DoStep INFO "Installing dmalloc"
CT_DoLog EXTRA "Configuring dmalloc" CT_DoLog EXTRA "Configuring dmalloc"
mkdir -p "${CT_BUILD_DIR}/build-dmalloc" mkdir -p "${CT_BUILD_DIR}/build-dmalloc"
cd "${CT_BUILD_DIR}/build-dmalloc" cd "${CT_BUILD_DIR}/build-dmalloc"
extra_config=
case "${CT_CC_LANG_CXX}" in case "${CT_CC_LANG_CXX}" in
y) extra_config="${extra_config} --enable-cxx";; y) extra_config+=("--enable-cxx");;
*) extra_config="${extra_config} --disable-cxx";; *) extra_config+=("--disable-cxx");;
esac esac
case "${CT_THREADS_NONE}" in case "${CT_THREADS_NONE}" in
y) extra_config="${extra_config} --disable-threads";; y) extra_config+=("--disable-threads");;
*) extra_config="${extra_config} --enable-threads";; *) extra_config+=("--enable-threads");;
esac esac
case "${CT_SHARED_LIBS}" in case "${CT_SHARED_LIBS}" in
y) extra_config="${extra_config} --enable-shlib";; y) extra_config+=("--enable-shlib");;
*) extra_config="${extra_config} --disable-shlib";; *) extra_config+=("--disable-shlib");;
esac esac
CT_DoLog DEBUG "Extra config passed: '${extra_config}'" CT_DoLog DEBUG "Extra config passed: '${extra_config[*]}'"
LD="${CT_TARGET}-ld" \ LD="${CT_TARGET}-ld" \
AR="${CT_TARGET}-ar" \ AR="${CT_TARGET}-ar" \
@ -40,7 +41,7 @@ do_debug_dmalloc_build() {
--prefix=/usr \ --prefix=/usr \
--build="${CT_BUILD}" \ --build="${CT_BUILD}" \
--host="${CT_TARGET}" \ --host="${CT_TARGET}" \
${extra_config} "${extra_config[@]}"
CT_DoLog EXTRA "Building dmalloc" CT_DoLog EXTRA "Building dmalloc"
CT_DoExecLog ALL make CT_DoExecLog ALL make

View File

@ -73,29 +73,32 @@ do_debug_gdb_extract() {
} }
do_debug_gdb_build() { do_debug_gdb_build() {
local -a extra_config
gdb_src_dir="${CT_SRC_DIR}/gdb$(do_debug_gdb_suffix)" gdb_src_dir="${CT_SRC_DIR}/gdb$(do_debug_gdb_suffix)"
insight_src_dir="${CT_SRC_DIR}/insight-${CT_GDB_VERSION}" insight_src_dir="${CT_SRC_DIR}/insight-${CT_GDB_VERSION}"
extra_config=
# Version 6.3 and below behave badly with gdbmi # Version 6.3 and below behave badly with gdbmi
case "${CT_GDB_VERSION}" in case "${CT_GDB_VERSION}" in
6.2*|6.3) extra_config="${extra_config} --disable-gdbmi";; 6.2*|6.3) extra_config+=("--disable-gdbmi");;
esac esac
if [ "${CT_GDB_CROSS}" = "y" ]; then if [ "${CT_GDB_CROSS}" = "y" ]; then
local -a cross_extra_config
CT_DoStep INFO "Installing cross-gdb" CT_DoStep INFO "Installing cross-gdb"
CT_DoLog EXTRA "Configuring cross-gdb" CT_DoLog EXTRA "Configuring cross-gdb"
mkdir -p "${CT_BUILD_DIR}/build-gdb-cross" mkdir -p "${CT_BUILD_DIR}/build-gdb-cross"
cd "${CT_BUILD_DIR}/build-gdb-cross" cd "${CT_BUILD_DIR}/build-gdb-cross"
cross_extra_config="${extra_config}" cross_extra_config=("${extra_config[@]}")
if [ "${CT_GMP_MPFR}" = "y" ]; then if [ "${CT_GMP_MPFR}" = "y" ]; then
cross_extra_config="${cross_extra_config} --with-gmp=${CT_PREFIX_DIR} --with-mpfr=${CT_PREFIX_DIR}" cross_extra_config+=("--with-gmp=${CT_PREFIX_DIR}" "--with-mpfr=${CT_PREFIX_DIR}")
fi fi
case "${CT_THREADS}" in case "${CT_THREADS}" in
none) cross_extra_config="${cross_extra_config} --disable-threads";; none) cross_extra_config+=("--disable-threads");;
*) cross_extra_config="${cross_extra_config} --enable-threads";; *) cross_extra_config+=("--enable-threads");;
esac esac
CC_for_gdb= CC_for_gdb=
@ -108,7 +111,7 @@ do_debug_gdb_build() {
gdb_cross_configure="${gdb_src_dir}/configure" gdb_cross_configure="${gdb_src_dir}/configure"
[ "${CT_GDB_CROSS_INSIGHT}" = "y" ] && gdb_cross_configure="${insight_src_dir}/configure" [ "${CT_GDB_CROSS_INSIGHT}" = "y" ] && gdb_cross_configure="${insight_src_dir}/configure"
CT_DoLog DEBUG "Extra config passed: '${cross_extra_config# }'" CT_DoLog DEBUG "Extra config passed: '${cross_extra_config[*]}'"
CC="${CC_for_gdb}" \ CC="${CC_for_gdb}" \
LD="${LD_for_gdb}" \ LD="${LD_for_gdb}" \
@ -120,7 +123,7 @@ do_debug_gdb_build() {
--prefix="${CT_PREFIX_DIR}" \ --prefix="${CT_PREFIX_DIR}" \
--with-build-sysroot="${CT_SYSROOT_DIR}" \ --with-build-sysroot="${CT_SYSROOT_DIR}" \
--disable-werror \ --disable-werror \
${cross_extra_config} "${cross_extra_config[@]}"
CT_DoLog EXTRA "Building cross-gdb" CT_DoLog EXTRA "Building cross-gdb"
CT_DoExecLog ALL make ${PARALLELMFLAGS} CT_DoExecLog ALL make ${PARALLELMFLAGS}
@ -132,13 +135,15 @@ do_debug_gdb_build() {
fi fi
if [ "${CT_GDB_NATIVE}" = "y" ]; then if [ "${CT_GDB_NATIVE}" = "y" ]; then
local -a native_extra_config
local -a ncurses_opt
CT_DoStep INFO "Installing native gdb" CT_DoStep INFO "Installing native gdb"
CT_DoStep INFO "Installing ncurses library" CT_DoStep INFO "Installing ncurses library"
ncurses_opts= [ "${CT_CC_LANG_CXX}" = "y" ] || ncurses_opts+=("--without-cxx" "--without-cxx-binding")
[ "${CT_CC_LANG_CXX}" = "y" ] || ncurses_opts="${ncurses_opts} --without-cxx --without-cxx-binding" [ "${CT_CC_LANG_ADA}" = "y" ] || ncurses_opts+=("--without-ada")
[ "${CT_CC_LANG_ADA}" = "y" ] || ncurses_opts="${ncurses_opts} --without-ada"
CT_DoStep INFO "Installing native ncurses tic" CT_DoStep INFO "Installing native ncurses tic"
CT_DoLog EXTRA "Configuring ncurses tic" CT_DoLog EXTRA "Configuring ncurses tic"
@ -158,7 +163,7 @@ do_debug_gdb_build() {
--with-build-cc=${CT_REAL_BUILD}-gcc \ --with-build-cc=${CT_REAL_BUILD}-gcc \
--with-build-cpp=${CT_REAL_BUILD}-gcc \ --with-build-cpp=${CT_REAL_BUILD}-gcc \
--with-build-cflags="${CT_CFLAGS_FOR_HOST}" \ --with-build-cflags="${CT_CFLAGS_FOR_HOST}" \
${ncurses_opts} "${ncurses_opts[@]}"
# Under some operating systems (eg. Winblows), there is an # Under some operating systems (eg. Winblows), there is an
# extension appended to executables. Find that. # extension appended to executables. Find that.
@ -190,7 +195,7 @@ do_debug_gdb_build() {
--without-sysmouse \ --without-sysmouse \
--without-progs \ --without-progs \
--enable-termcap \ --enable-termcap \
${ncurses_opts} "${ncurses_opts[@]}"
CT_DoLog EXTRA "Building ncurses" CT_DoLog EXTRA "Building ncurses"
CT_DoExecLog ALL make ${PARALLELMFLAGS} CT_DoExecLog ALL make ${PARALLELMFLAGS}
@ -209,13 +214,13 @@ do_debug_gdb_build() {
mkdir -p "${CT_BUILD_DIR}/build-gdb-native" mkdir -p "${CT_BUILD_DIR}/build-gdb-native"
cd "${CT_BUILD_DIR}/build-gdb-native" cd "${CT_BUILD_DIR}/build-gdb-native"
native_extra_config="${extra_config}" native_extra_config=("${extra_config[@]}")
case "${CT_THREADS}" in case "${CT_THREADS}" in
none) native_extra_config="${native_extra_config} --disable-threads";; none) native_extra_config+=("--disable-threads");;
*) native_extra_config="${native_extra_config} --enable-threads";; *) native_extra_config+=("--enable-threads");;
esac esac
if [ "${CT_GDB_NATIVE_USE_GMP_MPFR}" = "y" ]; then if [ "${CT_GDB_NATIVE_USE_GMP_MPFR}" = "y" ]; then
native_extra_config="${native_extra_config} --with-gmp=${CT_SYSROOT_DIR}/usr --with-mpfr=${CT_SYSROOT_DIR}/usr" native_extra_config+=("--with-gmp=${CT_SYSROOT_DIR}/usr" "--with-mpfr=${CT_SYSROOT_DIR}/usr")
fi fi
if [ "${CT_GDB_NATIVE_STATIC}" = "y" ]; then if [ "${CT_GDB_NATIVE_STATIC}" = "y" ]; then
@ -228,7 +233,7 @@ do_debug_gdb_build() {
export ac_cv_func_strncmp_works=yes export ac_cv_func_strncmp_works=yes
CT_DoLog DEBUG "Extra config passed: '${native_extra_config# }'" CT_DoLog DEBUG "Extra config passed: '${native_extra_config[*]}'"
CC="${CC_for_gdb}" \ CC="${CC_for_gdb}" \
LD="${LD_for_gdb}" \ LD="${LD_for_gdb}" \
@ -247,7 +252,7 @@ do_debug_gdb_build() {
--disable-werror \ --disable-werror \
--without-included-gettext \ --without-included-gettext \
--without-develop \ --without-develop \
${native_extra_config} "${native_extra_config[@]}"
CT_DoLog EXTRA "Building native gdb" CT_DoLog EXTRA "Building native gdb"
CT_DoExecLog ALL make ${PARALLELMFLAGS} CC=${CT_TARGET}-${CT_CC} CT_DoExecLog ALL make ${PARALLELMFLAGS} CC=${CT_TARGET}-${CT_CC}
@ -264,6 +269,8 @@ do_debug_gdb_build() {
fi fi
if [ "${CT_GDB_GDBSERVER}" = "y" ]; then if [ "${CT_GDB_GDBSERVER}" = "y" ]; then
local -a gdbserver_extra_config
CT_DoStep INFO "Installing gdbserver" CT_DoStep INFO "Installing gdbserver"
CT_DoLog EXTRA "Configuring gdbserver" CT_DoLog EXTRA "Configuring gdbserver"
@ -280,7 +287,7 @@ do_debug_gdb_build() {
gdbserver_LDFLAGS=-static gdbserver_LDFLAGS=-static
fi fi
gdbserver_extra_config="${extra_config}" gdbserver_extra_config=("${extra_config[@]}")
LDFLAGS="${gdbserver_LDFLAGS}" \ LDFLAGS="${gdbserver_LDFLAGS}" \
CT_DoExecLog ALL \ CT_DoExecLog ALL \
@ -301,7 +308,7 @@ do_debug_gdb_build() {
--without-included-gettext \ --without-included-gettext \
--without-develop \ --without-develop \
--disable-werror \ --disable-werror \
${gdbserver_extra_config} "${gdbserver_extra_config[@]}"
CT_DoLog EXTRA "Building gdbserver" CT_DoLog EXTRA "Building gdbserver"
CT_DoExecLog ALL make ${PARALLELMFLAGS} CC=${CT_TARGET}-${CT_CC} CT_DoExecLog ALL make ${PARALLELMFLAGS} CC=${CT_TARGET}-${CT_CC}

View File

@ -41,19 +41,21 @@ do_libc_get() {
eglibc_ports="${CT_LIBC}-ports-${CT_LIBC_VERSION}.tar.bz2" eglibc_ports="${CT_LIBC}-ports-${CT_LIBC_VERSION}.tar.bz2"
# Check if every tarballs are already present # Check if every tarballs are already present
if [ -a "${CT_TARBALLS_DIR}/${eglibc}" ] && \ if [ -f "${CT_TARBALLS_DIR}/${eglibc}" \
[ -a "${CT_TARBALLS_DIR}/${eglibc_linuxthreads}" ] && \ -a -f "${CT_TARBALLS_DIR}/${eglibc_linuxthreads}" \
[ -a "${CT_TARBALLS_DIR}/${eglibc_localedef}" ] && \ -a -f "${CT_TARBALLS_DIR}/${eglibc_localedef}" \
[ -a "${CT_TARBALLS_DIR}/${eglibc_ports}" ]; then -a -f "${CT_TARBALLS_DIR}/${eglibc_ports}" \
]; then
CT_DoLog DEBUG "Already have 'eglibc-${CT_LIBC_VERSION}'" CT_DoLog DEBUG "Already have 'eglibc-${CT_LIBC_VERSION}'"
return 0 return 0
fi fi
if [ -a "${CT_LOCAL_TARBALLS_DIR}/${eglibc}" ] && \ if [ -f "${CT_LOCAL_TARBALLS_DIR}/${eglibc}" \
[ -a "${CT_LOCAL_TARBALLS_DIR}/${eglibc_linuxthreads}" ] && \ -a -f "${CT_LOCAL_TARBALLS_DIR}/${eglibc_linuxthreads}" \
[ -a "${CT_LOCAL_TARBALLS_DIR}/${eglibc_localedef}" ] && \ -a -f "${CT_LOCAL_TARBALLS_DIR}/${eglibc_localedef}" \
[ -a "${CT_LOCAL_TARBALLS_DIR}/${eglibc_ports}" ] && \ -a -f "${CT_LOCAL_TARBALLS_DIR}/${eglibc_ports}" \
[ "${CT_FORCE_DOWNLOAD}" != "y" ]; then "${CT_FORCE_DOWNLOAD}" != "y" \
]; then
CT_DoLog DEBUG "Got 'eglibc-${CT_LIBC_VERSION}' from local storage" CT_DoLog DEBUG "Got 'eglibc-${CT_LIBC_VERSION}' from local storage"
for file in ${eglibc} ${eglibc_linuxthreads} ${eglibc_localedef} ${eglibc_ports}; do for file in ${eglibc} ${eglibc_linuxthreads} ${eglibc_localedef} ${eglibc_ports}; do
CT_DoExecLog ALL ln -s "${CT_LOCAL_TARBALLS_DIR}/${file}" "${CT_TARBALLS_DIR}/${file}" CT_DoExecLog ALL ln -s "${CT_LOCAL_TARBALLS_DIR}/${file}" "${CT_TARBALLS_DIR}/${file}"
@ -199,6 +201,8 @@ do_libc_start_files() {
# This function builds and install the full glibc # This function builds and install the full glibc
do_libc() { do_libc() {
local -a extra_config
CT_DoStep INFO "Installing C library" CT_DoStep INFO "Installing C library"
mkdir -p "${CT_BUILD_DIR}/build-libc" mkdir -p "${CT_BUILD_DIR}/build-libc"
@ -210,32 +214,32 @@ do_libc() {
# We don't need to be conditional on wether the user did set different # We don't need to be conditional on wether the user did set different
# values, as they CT_LIBC_GLIBC_EXTRA_CONFIG is passed after extra_config # values, as they CT_LIBC_GLIBC_EXTRA_CONFIG is passed after extra_config
extra_config="--enable-kernel=$(echo ${CT_LIBC_GLIBC_MIN_KERNEL} |sed -r -e 's/^([^.]+\.[^.]+\.[^.]+)(|\.[^.]+)$/\1/;')" extra_config+=("--enable-kernel=$(echo ${CT_LIBC_GLIBC_MIN_KERNEL} |sed -r -e 's/^([^.]+\.[^.]+\.[^.]+)(|\.[^.]+)$/\1/;')")
case "${CT_THREADS}" in case "${CT_THREADS}" in
nptl) extra_config="${extra_config} --with-__thread --with-tls";; nptl) extra_config+=("--with-__thread" "--with-tls");;
linuxthreads) extra_config="${extra_config} --with-__thread --without-tls --without-nptl";; linuxthreads) extra_config+=("--with-__thread" "--without-tls" "--without-nptl");;
none) extra_config="${extra_config} --without-__thread --without-nptl" none) extra_config+=("--without-__thread" "--without-nptl")
case "${CT_LIBC_GLIBC_EXTRA_CONFIG}" in case "${CT_LIBC_GLIBC_EXTRA_CONFIG}" in
*-tls*) ;; *-tls*) ;;
*) extra_config="${extra_config} --without-tls";; *) extra_config+=("--without-tls");;
esac esac
;; ;;
esac esac
case "${CT_SHARED_LIBS}" in case "${CT_SHARED_LIBS}" in
y) extra_config="${extra_config} --enable-shared";; y) extra_config+=("--enable-shared");;
*) extra_config="${extra_config} --disable-shared";; *) extra_config+=("--disable-shared");;
esac esac
case "${CT_ARCH_FLOAT_HW},${CT_ARCH_FLOAT_SW}" in case "${CT_ARCH_FLOAT_HW},${CT_ARCH_FLOAT_SW}" in
y,) extra_config="${extra_config} --with-fp";; y,) extra_config+=("--with-fp");;
,y) extra_config="${extra_config} --without-fp";; ,y) extra_config+=("--without-fp");;
esac esac
case "$(do_libc_add_ons_list ,)" in case "$(do_libc_add_ons_list ,)" in
"") ;; "") ;;
*) extra_config="${extra_config} --enable-add-ons=$(do_libc_add_ons_list ,)";; *) extra_config+=("--enable-add-ons=$(do_libc_add_ons_list ,)");;
esac esac
extra_cc_args="${extra_cc_args} ${CT_ARCH_ENDIAN_OPT}" extra_cc_args="${extra_cc_args} ${CT_ARCH_ENDIAN_OPT}"
@ -244,7 +248,7 @@ do_libc() {
CT_DoLog DEBUG "Using gcc for target: '${cross_cc}'" CT_DoLog DEBUG "Using gcc for target: '${cross_cc}'"
CT_DoLog DEBUG "Configuring with addons : '$(do_libc_add_ons_list ,)'" CT_DoLog DEBUG "Configuring with addons : '$(do_libc_add_ons_list ,)'"
CT_DoLog DEBUG "Extra config args passed: '${extra_config}'" CT_DoLog DEBUG "Extra config args passed: '${extra_config[*]}'"
CT_DoLog DEBUG "Extra CC args passed : '${extra_cc_args}'" CT_DoLog DEBUG "Extra CC args passed : '${extra_cc_args}'"
BUILD_CC="${CT_BUILD}-gcc" \ BUILD_CC="${CT_BUILD}-gcc" \
@ -261,7 +265,7 @@ do_libc() {
--disable-profile \ --disable-profile \
--without-gd \ --without-gd \
--without-cvs \ --without-cvs \
${extra_config} \ "${extra_config[@]}" \
${CT_LIBC_GLIBC_EXTRA_CONFIG} ${CT_LIBC_GLIBC_EXTRA_CONFIG}
CT_DoLog EXTRA "Building C library" CT_DoLog EXTRA "Building C library"

View File

@ -6,6 +6,9 @@
do_libc_get() { do_libc_get() {
local date local date
local version local version
local -a addons_list
addons_list=($(do_libc_add_ons_list " "))
if [ "${CT_LIBC_GLIBC_TARBALL}" = "y" ]; then if [ "${CT_LIBC_GLIBC_TARBALL}" = "y" ]; then
# Use release tarballs # Use release tarballs
@ -15,7 +18,7 @@ do_libc_get() {
ftp://gcc.gnu.org/pub/glibc/snapshots ftp://gcc.gnu.org/pub/glibc/snapshots
# C library addons # C library addons
for addon in $(do_libc_add_ons_list " "); do for addon in "${addons_list[@]}"; do
# NPTL addon is not to be downloaded, in any case # NPTL addon is not to be downloaded, in any case
[ "${addon}" = "nptl" ] && continue || true [ "${addon}" = "nptl" ] && continue || true
CT_GetFile "glibc-${addon}-${CT_LIBC_VERSION}" \ CT_GetFile "glibc-${addon}-${CT_LIBC_VERSION}" \
@ -35,7 +38,7 @@ do_libc_get() {
"glibc-cvs-${CT_LIBC_VERSION}" "glibc-cvs-${CT_LIBC_VERSION}"
# C library addons # C library addons
for addon in $(do_libc_add_ons_list " "); do for addon in "${addons_list[@]}"; do
# NPTL addon is not to be downloaded, in any case # NPTL addon is not to be downloaded, in any case
[ "${addon}" = "nptl" ] && continue || true [ "${addon}" = "nptl" ] && continue || true
CT_GetCVS "glibc-${addon}-cvs-${CT_LIBC_VERSION}" \ CT_GetCVS "glibc-${addon}-cvs-${CT_LIBC_VERSION}" \
@ -54,6 +57,9 @@ do_libc_get() {
# Extract glibc # Extract glibc
do_libc_extract() { do_libc_extract() {
local cvs local cvs
local -a addons_list
addons_list=($(do_libc_add_ons_list " "))
[ "${CT_LIBC_GLIBC_CVS}" = "y" ] && cvs="cvs-" [ "${CT_LIBC_GLIBC_CVS}" = "y" ] && cvs="cvs-"
@ -63,7 +69,7 @@ do_libc_extract() {
CT_Patch "glibc-${CT_LIBC_VERSION}" nochdir CT_Patch "glibc-${CT_LIBC_VERSION}" nochdir
# C library addons # C library addons
for addon in $(do_libc_add_ons_list " "); do for addon in "${addons_list[@]}"; do
# NPTL addon is not to be extracted, in any case # NPTL addon is not to be extracted, in any case
[ "${addon}" = "nptl" ] && continue || true [ "${addon}" = "nptl" ] && continue || true
CT_Extract "glibc-${addon}-${cvs}${CT_LIBC_VERSION}" nochdir CT_Extract "glibc-${addon}-${cvs}${CT_LIBC_VERSION}" nochdir
@ -82,6 +88,7 @@ do_libc_extract() {
# The configure files may be older than the configure.in files # The configure files may be older than the configure.in files
# if using a snapshot (or even some tarballs). Fake them being # if using a snapshot (or even some tarballs). Fake them being
# up to date. # up to date.
sleep 2
find . -type f -name configure -exec touch {} \; 2>&1 |CT_DoLog ALL find . -type f -name configure -exec touch {} \; 2>&1 |CT_DoLog ALL
CT_Popd CT_Popd
@ -97,6 +104,7 @@ do_libc_check_config() {
# This function installs the glibc headers needed to build the core compiler # This function installs the glibc headers needed to build the core compiler
do_libc_headers() { do_libc_headers() {
local cvs local cvs
local -a extra_config
CT_DoStep INFO "Installing C library headers" CT_DoStep INFO "Installing C library headers"
@ -123,21 +131,23 @@ do_libc_headers() {
# Override libc_cv_ppc_machine so glibc-cvs doesn't complain # Override libc_cv_ppc_machine so glibc-cvs doesn't complain
# 'a version of binutils that supports .machine "altivec" is needed'. # 'a version of binutils that supports .machine "altivec" is needed'.
addons_list="$(do_libc_add_ons_list ,)"
# We need to remove any threading addon when installing headers # We need to remove any threading addon when installing headers
addons_list="${addons_list//nptl/}" addons_list="$(do_libc_add_ons_list " " \
addons_list="${addons_list//linuxthreads/}" |sed -r -e 's/\<(nptl|linuxthreads)\>/ /g;' \
# Remove duplicate, leading and trailing separators -e 's/ +/,/g; s/^,+//; s/,+$//;' \
addons_config="--enable-add-ons=$(echo "${addons_list}" |sed -r -e 's/,+/,/; s/^,//; s/,$//g;')" )"
extra_config="${addons_config} $(do_libc_min_kernel_config)" extra_config+=("--enable-add-ons=${addons_list}")
extra_config+=("${addons_config}")
extra_config+=("$(do_libc_min_kernel_config)")
# Pre-seed the configparms file with values from the config option # Pre-seed the configparms file with values from the config option
echo "${CT_LIBC_GLIBC_CONFIGPARMS}" > configparms echo "${CT_LIBC_GLIBC_CONFIGPARMS}" > configparms
cross_cc=$(CT_Which "${CT_TARGET}-gcc") cross_cc=$(CT_Which "${CT_TARGET}-gcc")
CT_DoLog DEBUG "Using gcc for target: '${cross_cc}'" CT_DoLog DEBUG "Using gcc for target: '${cross_cc}'"
CT_DoLog DEBUG "Extra config passed : '${extra_config}'" CT_DoLog DEBUG "Extra config passed : '${extra_config[*]}'"
libc_cv_ppc_machine=yes \ libc_cv_ppc_machine=yes \
CC=${cross_cc} \ CC=${cross_cc} \
@ -150,7 +160,7 @@ do_libc_headers() {
--without-cvs \ --without-cvs \
--disable-sanity-checks \ --disable-sanity-checks \
--enable-hacker-mode \ --enable-hacker-mode \
${extra_config} \ "${extra_config[@]}" \
--without-nptl --without-nptl
CT_DoLog EXTRA "Installing C library headers" CT_DoLog EXTRA "Installing C library headers"
@ -246,6 +256,7 @@ do_libc_headers() {
# Build and install start files # Build and install start files
do_libc_start_files() { do_libc_start_files() {
local cvs local cvs
local -a extra_config
# Needed only in the NPTL case. Otherwise, return. # Needed only in the NPTL case. Otherwise, return.
[ "${CT_THREADS}" = "nptl" ] || return 0 [ "${CT_THREADS}" = "nptl" ] || return 0
@ -260,26 +271,25 @@ do_libc_start_files() {
CT_DoLog EXTRA "Configuring C library" CT_DoLog EXTRA "Configuring C library"
# Add some default glibc config options if not given by user. # Add some default glibc config options if not given by user.
extra_config=
case "${CT_LIBC_GLIBC_EXTRA_CONFIG}" in case "${CT_LIBC_GLIBC_EXTRA_CONFIG}" in
*-tls*) ;; *-tls*) ;;
*) extra_config="${extra_config} --with-tls" *) extra_config+=("--with-tls")
esac esac
case "${CT_SHARED_LIBS}" in case "${CT_SHARED_LIBS}" in
y) extra_config="${extra_config} --enable-shared";; y) extra_config+=("--enable-shared");;
*) extra_config="${extra_config} --disable-shared";; *) extra_config+=("--disable-shared");;
esac esac
case "${CT_ARCH_FLOAT_HW},${CT_ARCH_FLOAT_SW}" in case "${CT_ARCH_FLOAT_HW},${CT_ARCH_FLOAT_SW}" in
y,) extra_config="${extra_config} --with-fp";; y,) extra_config+=("--with-fp");;
,y) extra_config="${extra_config} --without-fp";; ,y) extra_config+=("--without-fp");;
esac esac
# Obviously, we want threads, as we come here only for NPTL # Obviously, we want threads, as we come here only for NPTL
extra_config="${extra_config} --with-__thread" extra_config+=("--with-__thread")
addons_config="--enable-add-ons=$(do_libc_add_ons_list ,)" addons_config="--enable-add-ons=$(do_libc_add_ons_list ,)"
extra_config="${extra_config} ${addons_config}" extra_config+=("${addons_config}")
extra_config="${extra_config} $(do_libc_min_kernel_config)" extra_config+=("$(do_libc_min_kernel_config)")
# Add some default CC args # Add some default CC args
glibc_version_major=$(echo ${CT_LIBC_VERSION} |sed -r -e 's/^([[:digit:]]+).*/\1/') glibc_version_major=$(echo ${CT_LIBC_VERSION} |sed -r -e 's/^([[:digit:]]+).*/\1/')
@ -303,7 +313,7 @@ do_libc_start_files() {
cross_cc=$(CT_Which "${CT_TARGET}-gcc") cross_cc=$(CT_Which "${CT_TARGET}-gcc")
CT_DoLog DEBUG "Using gcc for target : '${cross_cc}'" CT_DoLog DEBUG "Using gcc for target : '${cross_cc}'"
CT_DoLog DEBUG "Configuring with addons : '$(do_libc_add_ons_list ,)'" CT_DoLog DEBUG "Configuring with addons : '$(do_libc_add_ons_list ,)'"
CT_DoLog DEBUG "Extra config args passed: '${extra_config}'" CT_DoLog DEBUG "Extra config args passed: '${extra_config[*]}'"
CT_DoLog DEBUG "Extra CC args passed : '${extra_cc_args}'" CT_DoLog DEBUG "Extra CC args passed : '${extra_cc_args}'"
# Pre-seed the configparms file with values from the config option # Pre-seed the configparms file with values from the config option
@ -330,7 +340,7 @@ do_libc_start_files() {
--without-gd \ --without-gd \
--with-headers="${CT_HEADERS_DIR}" \ --with-headers="${CT_HEADERS_DIR}" \
--cache-file=config.cache \ --cache-file=config.cache \
${extra_config} \ "${extra_config[@]}" \
${CT_LIBC_GLIBC_EXTRA_CONFIG} ${CT_LIBC_GLIBC_EXTRA_CONFIG}
#TODO: should check whether slibdir has been set in configparms to */lib64 #TODO: should check whether slibdir has been set in configparms to */lib64
@ -353,6 +363,7 @@ do_libc_start_files() {
# This function builds and install the full glibc # This function builds and install the full glibc
do_libc() { do_libc() {
local cvs local cvs
local -a extra_config
CT_DoStep INFO "Installing C library" CT_DoStep INFO "Installing C library"
@ -367,34 +378,33 @@ do_libc() {
# We don't need to be conditional on wether the user did set different # We don't need to be conditional on wether the user did set different
# values, as they CT_LIBC_GLIBC_EXTRA_CONFIG is passed after extra_config # values, as they CT_LIBC_GLIBC_EXTRA_CONFIG is passed after extra_config
extra_config=
case "${CT_THREADS}" in case "${CT_THREADS}" in
nptl) extra_config="${extra_config} --with-__thread --with-tls";; nptl) extra_config+=("--with-__thread" "--with-tls");;
linuxthreads) extra_config="${extra_config} --with-__thread --without-tls --without-nptl";; linuxthreads) extra_config+=("--with-__thread" "--without-tls" "--without-nptl");;
none) extra_config="${extra_config} --without-__thread --without-nptl" none) extra_config+=("--without-__thread" "--without-nptl")
case "${CT_LIBC_GLIBC_EXTRA_CONFIG}" in case "${CT_LIBC_GLIBC_EXTRA_CONFIG}" in
*-tls*) ;; *-tls*) ;;
*) extra_config="${extra_config} --without-tls";; *) extra_config+=("--without-tls");;
esac esac
;; ;;
esac esac
case "${CT_SHARED_LIBS}" in case "${CT_SHARED_LIBS}" in
y) extra_config="${extra_config} --enable-shared";; y) extra_config+=("--enable-shared");;
*) extra_config="${extra_config} --disable-shared";; *) extra_config+=("--disable-shared");;
esac esac
case "${CT_ARCH_FLOAT_HW},${CT_ARCH_FLOAT_SW}" in case "${CT_ARCH_FLOAT_HW},${CT_ARCH_FLOAT_SW}" in
y,) extra_config="${extra_config} --with-fp";; y,) extra_config+=("--with-fp";;
,y) extra_config="${extra_config} --without-fp";; ,y) extra_config+=("--without-fp";;
esac esac
case "$(do_libc_add_ons_list ,)" in case "$(do_libc_add_ons_list ,)" in
"") ;; "") ;;
*) extra_config="${extra_config} --enable-add-ons=$(do_libc_add_ons_list ,)";; *) extra_config+=("--enable-add-ons=$(do_libc_add_ons_list ,)");;
esac esac
extra_config="${extra_config} $(do_libc_min_kernel_config)" extra_config+=("$(do_libc_min_kernel_config)")
# Add some default CC args # Add some default CC args
glibc_version_major=$(echo ${CT_LIBC_VERSION} |sed -r -e 's/^([[:digit:]]+).*/\1/') glibc_version_major=$(echo ${CT_LIBC_VERSION} |sed -r -e 's/^([[:digit:]]+).*/\1/')
@ -463,7 +473,7 @@ do_libc() {
--disable-sanity-checks \ --disable-sanity-checks \
--cache-file=config.cache \ --cache-file=config.cache \
--with-headers="${CT_HEADERS_DIR}" \ --with-headers="${CT_HEADERS_DIR}" \
${extra_config} \ "${extra_config[@]}" \
${CT_LIBC_GLIBC_EXTRA_CONFIG} ${CT_LIBC_GLIBC_EXTRA_CONFIG}
if grep -l '^install-lib-all:' "${CT_SRC_DIR}/glibc-${cvs}${CT_LIBC_VERSION}/Makerules" > /dev/null; then if grep -l '^install-lib-all:' "${CT_SRC_DIR}/glibc-${cvs}${CT_LIBC_VERSION}/Makerules" > /dev/null; then