sys-libs/glibc: Drop SPARC CHOST mangling

Before "multiarch" support in glibc, picking a different CHOST would
select which optimized paths were built. Multiarch support was added in
glibc commit 3afd5a3b5556 (sparc: Add multiarch support for
memset/bzero/memcpy.) in 2010 before glibc-2.12.

Before glibc-2.30 glibc dropped support for SPARC v7 in commit
5d9b7b9fa734 (Remove 32 bit sparc v7 support) and in the process cleaned
up some configuration logic that accepted a wide variety of (now unused
CHOST values), thus causing the build to fail for us when we select a
now unknown CHOST.

Simply drop this logic, since it shouldn't be needed for any glibc since
2.11.

Signed-off-by: Matt Turner <mattst88@gentoo.org>
This commit is contained in:
Matt Turner
2020-03-25 14:34:07 -07:00
parent 698fb8eb41
commit 7daa036090
3 changed files with 18 additions and 168 deletions

View File

@@ -301,77 +301,27 @@ setup_target_flags() {
filter-flags "-fcall-used-g7"
append-flags "-fcall-used-g6"
# If the CHOST is the basic one (e.g. not sparcv9-xxx already),
# try to pick a better one so glibc can use cpu-specific .S files.
# We key off the CFLAGS to get a good value. Also need to handle
# version skew.
# We can't force users to set their CHOST to their exact machine
# as many of these are not recognized by config.sub/gcc and such :(.
# Note: If the mcpu values don't scale, we might try probing CPP defines.
# Note: Should we factor in -Wa,-AvXXX flags too ? Or -mvis/etc... ?
local cpu
case ${CTARGET} in
sparc64-*)
cpu="sparc64"
case $(get-flag mcpu) in
niagara[234])
if ver_test -ge 2.8 ; then
cpu="sparc64v2"
elif ver_test -ge 2.4 ; then
cpu="sparc64v"
elif ver_test -ge 2.2.3 ; then
cpu="sparc64b"
fi
;;
niagara)
if ver_test -ge 2.4 ; then
cpu="sparc64v"
elif ver_test -ge 2.2.3 ; then
cpu="sparc64b"
fi
;;
ultrasparc3)
cpu="sparc64b"
;;
*)
v9)
# We need to force at least v9a because the base build doesn't
# work with just v9.
# https://sourceware.org/bugzilla/show_bug.cgi?id=19477
[[ -z ${cpu} ]] && append-flags "-Wa,-xarch=v9a"
append-flags "-Wa,-xarch=v9a"
;;
esac
;;
sparc-*)
case $(get-flag mcpu) in
niagara[234])
if ver_test -ge 2.8 ; then
cpu="sparcv9v2"
elif ver_test -ge 2.4 ; then
cpu="sparcv9v"
elif ver_test -ge 2.2.3 ; then
cpu="sparcv9b"
else
cpu="sparcv9"
fi
;;
niagara)
if ver_test -ge 2.4 ; then
cpu="sparcv9v"
elif ver_test -ge 2.2.3 ; then
cpu="sparcv9b"
else
cpu="sparcv9"
fi
;;
ultrasparc3)
cpu="sparcv9b"
;;
v9|ultrasparc)
cpu="sparcv9"
;;
v8|supersparc|hypersparc|leon|leon3)
cpu="sparcv8"
;;
*)
cpu="sparcv9"
;;
esac
;;
esac

View File

@@ -292,77 +292,27 @@ setup_target_flags() {
filter-flags "-fcall-used-g7"
append-flags "-fcall-used-g6"
# If the CHOST is the basic one (e.g. not sparcv9-xxx already),
# try to pick a better one so glibc can use cpu-specific .S files.
# We key off the CFLAGS to get a good value. Also need to handle
# version skew.
# We can't force users to set their CHOST to their exact machine
# as many of these are not recognized by config.sub/gcc and such :(.
# Note: If the mcpu values don't scale, we might try probing CPP defines.
# Note: Should we factor in -Wa,-AvXXX flags too ? Or -mvis/etc... ?
local cpu
case ${CTARGET} in
sparc64-*)
cpu="sparc64"
case $(get-flag mcpu) in
niagara[234])
if ver_test -ge 2.8 ; then
cpu="sparc64v2"
elif ver_test -ge 2.4 ; then
cpu="sparc64v"
elif ver_test -ge 2.2.3 ; then
cpu="sparc64b"
fi
;;
niagara)
if ver_test -ge 2.4 ; then
cpu="sparc64v"
elif ver_test -ge 2.2.3 ; then
cpu="sparc64b"
fi
;;
ultrasparc3)
cpu="sparc64b"
;;
*)
v9)
# We need to force at least v9a because the base build doesn't
# work with just v9.
# https://sourceware.org/bugzilla/show_bug.cgi?id=19477
[[ -z ${cpu} ]] && append-flags "-Wa,-xarch=v9a"
append-flags "-Wa,-xarch=v9a"
;;
esac
;;
sparc-*)
case $(get-flag mcpu) in
niagara[234])
if ver_test -ge 2.8 ; then
cpu="sparcv9v2"
elif ver_test -ge 2.4 ; then
cpu="sparcv9v"
elif ver_test -ge 2.2.3 ; then
cpu="sparcv9b"
else
cpu="sparcv9"
fi
;;
niagara)
if ver_test -ge 2.4 ; then
cpu="sparcv9v"
elif ver_test -ge 2.2.3 ; then
cpu="sparcv9b"
else
cpu="sparcv9"
fi
;;
ultrasparc3)
cpu="sparcv9b"
;;
v9|ultrasparc)
cpu="sparcv9"
;;
v8|supersparc|hypersparc|leon|leon3)
cpu="sparcv8"
;;
*)
cpu="sparcv9"
;;
esac
;;
esac

View File

@@ -291,77 +291,27 @@ setup_target_flags() {
filter-flags "-fcall-used-g7"
append-flags "-fcall-used-g6"
# If the CHOST is the basic one (e.g. not sparcv9-xxx already),
# try to pick a better one so glibc can use cpu-specific .S files.
# We key off the CFLAGS to get a good value. Also need to handle
# version skew.
# We can't force users to set their CHOST to their exact machine
# as many of these are not recognized by config.sub/gcc and such :(.
# Note: If the mcpu values don't scale, we might try probing CPP defines.
# Note: Should we factor in -Wa,-AvXXX flags too ? Or -mvis/etc... ?
local cpu
case ${CTARGET} in
sparc64-*)
cpu="sparc64"
case $(get-flag mcpu) in
niagara[234])
if ver_test -ge 2.8 ; then
cpu="sparc64v2"
elif ver_test -ge 2.4 ; then
cpu="sparc64v"
elif ver_test -ge 2.2.3 ; then
cpu="sparc64b"
fi
;;
niagara)
if ver_test -ge 2.4 ; then
cpu="sparc64v"
elif ver_test -ge 2.2.3 ; then
cpu="sparc64b"
fi
;;
ultrasparc3)
cpu="sparc64b"
;;
*)
v9)
# We need to force at least v9a because the base build doesn't
# work with just v9.
# https://sourceware.org/bugzilla/show_bug.cgi?id=19477
[[ -z ${cpu} ]] && append-flags "-Wa,-xarch=v9a"
append-flags "-Wa,-xarch=v9a"
;;
esac
;;
sparc-*)
case $(get-flag mcpu) in
niagara[234])
if ver_test -ge 2.8 ; then
cpu="sparcv9v2"
elif ver_test -ge 2.4 ; then
cpu="sparcv9v"
elif ver_test -ge 2.2.3 ; then
cpu="sparcv9b"
else
cpu="sparcv9"
fi
;;
niagara)
if ver_test -ge 2.4 ; then
cpu="sparcv9v"
elif ver_test -ge 2.2.3 ; then
cpu="sparcv9b"
else
cpu="sparcv9"
fi
;;
ultrasparc3)
cpu="sparcv9b"
;;
v9|ultrasparc)
cpu="sparcv9"
;;
v8|supersparc|hypersparc|leon|leon3)
cpu="sparcv8"
;;
*)
cpu="sparcv9"
;;
esac
;;
esac