Skip to content

Commit

Permalink
Unbreak sparc-unknown-linux-gnu.
Browse files Browse the repository at this point in the history
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 <stilor@att.net>
  • Loading branch information
stilor committed Apr 2, 2016
1 parent 7ac327d commit 712b617
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 3 deletions.
7 changes: 6 additions & 1 deletion config/libc/glibc.in
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand Down
19 changes: 17 additions & 2 deletions scripts/build/libc/glibc.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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 \
Expand Down

0 comments on commit 712b617

Please sign in to comment.