|
|
|
@ -3,21 +3,32 @@ CT_DoArchTupleValues() {
|
|
|
|
|
# That's the only thing to override |
|
|
|
|
CT_TARGET_ARCH="sparc${target_bits_64}${CT_ARCH_SUFFIX}" |
|
|
|
|
|
|
|
|
|
# By default, sparc64-*-linux is configured with -mcpu=v9. However, |
|
|
|
|
# according to https://sourceware.org/ml/libc-alpha/2005-12/msg00027.html, |
|
|
|
|
# "There is no Linux sparc64 port that runs on non-UltraSPARC-I+ ISA CPUs." |
|
|
|
|
# There is a patch that would change the default to -mcpu=ultrasparc for |
|
|
|
|
# sparc64-*-linux configuration: https://patchwork.ozlabs.org/patch/409424/ |
|
|
|
|
# but that patch has not been integrated (yet). One concern raised about |
|
|
|
|
# this patch was that -mcpu=ultrasparc can suboptimally schedule instructions |
|
|
|
|
# for newer SPARC CPUs. So, override to -mcpu=ultrasparc and warn the user. |
|
|
|
|
if [ "${CT_KERNEL}" = "linux" -a "${CT_ARCH_64}" = "y" -a -z "${CT_ARCH_CPU}" ]; then |
|
|
|
|
CT_DoLog WARN "Setting CPU to UltraSPARC-I for sparc64-linux. Set CT_ARCH_CPU if a different CPU is desired." |
|
|
|
|
CT_ARCH_WITH_CPU="--with-cpu=ultrasparc" |
|
|
|
|
if [ -n "${CT_ARCH_SUPPORTS_WITH_32_64}" -a -n "${CT_MULTILIB}" ]; then |
|
|
|
|
CT_ARCH_WITH_CPU_32="--with-cpu-32=ultrasparc" |
|
|
|
|
CT_ARCH_WITH_CPU_64="--with-cpu-64=ultrasparc" |
|
|
|
|
fi |
|
|
|
|
if [ "${CT_KERNEL}" = "linux" -a -z "${CT_ARCH_CPU}" ]; then |
|
|
|
|
if [ "${CT_ARCH_64}" = "y" ]; then |
|
|
|
|
# By default, sparc64-*-linux is configured with -mcpu=v9. However, |
|
|
|
|
# according to https://sourceware.org/ml/libc-alpha/2005-12/msg00027.html, |
|
|
|
|
# "There is no Linux sparc64 port that runs on non-UltraSPARC-I+ ISA CPUs." |
|
|
|
|
# There is a patch that would change the default to -mcpu=ultrasparc for |
|
|
|
|
# sparc64-*-linux configuration: https://patchwork.ozlabs.org/patch/409424/ |
|
|
|
|
# but that patch has not been integrated (yet). One concern raised about |
|
|
|
|
# this patch was that -mcpu=ultrasparc can suboptimally schedule instructions |
|
|
|
|
# for newer SPARC CPUs. So, override to -mcpu=ultrasparc and warn the user. |
|
|
|
|
CT_DoLog WARN "Setting CPU to UltraSPARC-I for sparc64-linux. Set CT_ARCH_CPU if a different CPU is desired." |
|
|
|
|
CT_ARCH_WITH_CPU="--with-cpu=ultrasparc" |
|
|
|
|
if [ -n "${CT_ARCH_SUPPORTS_WITH_32_64}" -a -n "${CT_MULTILIB}" ]; then |
|
|
|
|
CT_ARCH_WITH_CPU_32="--with-cpu-32=ultrasparc" |
|
|
|
|
CT_ARCH_WITH_CPU_64="--with-cpu-64=ultrasparc" |
|
|
|
|
fi |
|
|
|
|
else |
|
|
|
|
# Similarly, sparc-*-linux defaults to v7. GLIBC 2.31 started to reject |
|
|
|
|
# pre-v8 configurations with 2.31, and default v8 fails a subsequent test for |
|
|
|
|
# using atomics (which are presumably, only available on some v8 CPUs). |
|
|
|
|
# Therefore, default to v9. |
|
|
|
|
if [ -z "${CT_GLIBC_SPARC_ALLOW_V7}" ]; then |
|
|
|
|
CT_DoLog WARN "Setting CPU to V9 for sparc-linux. Set CT_ARCH_CPU if a different CPU is desired." |
|
|
|
|
CT_ARCH_WITH_CPU="--with-cpu=v9" |
|
|
|
|
fi |
|
|
|
|
fi |
|
|
|
|
fi |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|