From 712b617a744aa941b99d32d9ff6d9126c77382fb Mon Sep 17 00:00:00 2001 From: Alexey Neyman Date: Tue, 15 Mar 2016 12:39:03 -0700 Subject: Unbreak sparc-unknown-linux-gnu. GLIBC 2.23 dropped support for pre-v9 SPARC in pthreads. Pass host triplet with s/sparc/sparcv9/ replacement for 2.23. Signed-off-by: Alexey Neyman diff --git a/config/libc/glibc.in b/config/libc/glibc.in index fc7c85b..96879cc 100644 --- a/config/libc/glibc.in +++ b/config/libc/glibc.in @@ -74,7 +74,7 @@ choice config LIBC_GLIBC_V_2_23 bool prompt "2.23" - select LIBC_GLIBC_2_20_or_later + select LIBC_GLIBC_2_23_or_later config LIBC_GLIBC_V_2_22 bool @@ -109,6 +109,11 @@ endchoice endif # ! LIBC_GLIBC_CUSTOM +# Checked by SPARC build: SPARCv8 is dropped in 2.23. +config LIBC_GLIBC_2_23_or_later + select LIBC_GLIBC_2_20_or_later + bool + # DeMark 2.20 as no longer needs to set NPTL as an addon. # It is no longer possible to build glibc without pthread! config LIBC_GLIBC_2_20_or_later diff --git a/scripts/build/libc/glibc.sh b/scripts/build/libc/glibc.sh index 0a09cbd..013c6eb 100644 --- a/scripts/build/libc/glibc.sh +++ b/scripts/build/libc/glibc.sh @@ -73,6 +73,7 @@ do_libc_backend() { local multi_dir local multi_flags local extra_dir + local target local libc_headers libc_startfiles libc_full local hdr local arg @@ -136,11 +137,24 @@ do_libc_backend() { CT_mkdir_pushd "${CT_BUILD_DIR}/build-libc-${libc_mode}${extra_dir//\//_}" + target=${CT_TARGET} + case "${target}" in + # SPARC quirk: glibc 2.23 and newer dropped support for SPARCv8 and + # earlier (corresponding pthread barrier code is missing). Until this + # support is reintroduced, configure as sparcv9. + sparc-*) + if [ "${CT_LIBC_GLIBC_2_23_or_later}" = y ]; then + target=${target/#sparc-/sparcv9-} + fi + ;; + esac + do_libc_backend_once extra_dir="${extra_dir}" \ extra_flags="${extra_flags}" \ libc_headers="${libc_headers}" \ libc_startfiles="${libc_startfiles}" \ - libc_full="${libc_full}" + libc_full="${libc_full}" \ + target="${target}" CT_Popd @@ -192,6 +206,7 @@ do_libc_backend_once() { local glibc_cflags local float_extra local endian_extra + local target local arg for arg in "$@"; do @@ -341,7 +356,7 @@ do_libc_backend_once() { "${src_dir}/configure" \ --prefix=/usr \ --build=${CT_BUILD} \ - --host=${CT_TARGET} \ + --host=${target} \ --cache-file="$(pwd)/config.cache" \ --without-cvs \ --disable-profile \ -- cgit v0.10.2-6-g49f6