aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorJakub Jelinek <jakub@redhat.com>2020-10-22 09:32:08 +0200
committerJakub Jelinek <jakub@redhat.com>2020-10-22 09:32:08 +0200
commit552ed3ea761324bdd42c1a40d4bbef91432da29a (patch)
tree356d49875c60fdf4a6162d174b206ffd71e5df4d /gcc
parent74c9882b80bda50b37c9555498de7123c6bdb9e4 (diff)
downloadgcc-552ed3ea761324bdd42c1a40d4bbef91432da29a.zip
gcc-552ed3ea761324bdd42c1a40d4bbef91432da29a.tar.gz
gcc-552ed3ea761324bdd42c1a40d4bbef91432da29a.tar.bz2
x86: Allow configuring with --with-arch_64=x86-64-v[234]
> + {"x86-64", PROCESSOR_K8, CPU_K8, PTA_X86_64_BASELINE, 0, P_NONE}, > + {"x86-64-v2", PROCESSOR_K8, CPU_GENERIC, PTA_X86_64_V2 | PTA_NO_TUNE, > + 0, P_NONE}, > + {"x86-64-v3", PROCESSOR_K8, CPU_GENERIC, PTA_X86_64_V3 | PTA_NO_TUNE, > + 0, P_NONE}, > + {"x86-64-v4", PROCESSOR_K8, CPU_GENERIC, PTA_X86_64_V4 | PTA_NO_TUNE, > + 0, P_NONE}, > {"eden-x2", PROCESSOR_K8, CPU_K8, > PTA_64BIT | PTA_MMX | PTA_SSE | PTA_SSE2 | PTA_SSE3 | PTA_FXSR, > 0, P_NONE}, I have noticed that one can't configure gcc to default to these. I've also found various other 32-bit or 64-bit -march= arguments for which it wasn't possible to configure gcc to default to those. The x86-64-v* the patch only allows in --with-arch_64=, because otherwise it fails build miserably - as ./xgcc -B ./ -S -march=x86-64-v2 -m32 test.c cc1: error: ‘x86-64-v2’ architecture level is only defined for the x86-64 psABI when building 32-bit multilibs. Even if multilibs are disallowed, I think the compiler still supports -m32 and so --with-arch_64= seems to be the only option in which we can support that. 2020-10-22 Jakub Jelinek <jakub@redhat.com> * config.gcc (x86_archs): Add samuel-2, nehemiah, c7 and esther. (x86_64_archs): Add eden-x2, nano, nano-1000, nano-2000, nano-3000, nano-x2, eden-x4, nano-x4, x86-64-v2, x86-64-v3 and x86-64-v4. (i[34567]86-*-* | x86_64-*-*): Only allow x86-64-v* as argument to --with-arch_64=.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config.gcc17
1 files changed, 15 insertions, 2 deletions
diff --git a/gcc/config.gcc b/gcc/config.gcc
index 03d89d7..411200d 100644
--- a/gcc/config.gcc
+++ b/gcc/config.gcc
@@ -662,7 +662,8 @@ tm_defines="$tm_defines LIBC_GLIBC=1 LIBC_UCLIBC=2 LIBC_BIONIC=3 LIBC_MUSL=4"
x86_archs="athlon athlon-4 athlon-fx athlon-mp athlon-tbird \
athlon-xp k6 k6-2 k6-3 geode c3 c3-2 winchip-c6 winchip2 i386 i486 \
i586 i686 pentium pentium-m pentium-mmx pentium2 pentium3 pentium3m \
-pentium4 pentium4m pentiumpro prescott lakemont"
+pentium4 pentium4m pentiumpro prescott lakemont samuel-2 nehemiah \
+c7 esther"
# 64-bit x86 processors supported by --with-arch=. Each processor
# MUST be separated by exactly one space.
@@ -672,7 +673,8 @@ opteron-sse3 nocona core2 corei7 corei7-avx core-avx-i core-avx2 atom \
slm nehalem westmere sandybridge ivybridge haswell broadwell bonnell \
silvermont knl knm skylake-avx512 cannonlake icelake-client icelake-server \
skylake goldmont goldmont-plus tremont cascadelake tigerlake cooperlake \
-sapphirerapids alderlake x86-64 native"
+sapphirerapids alderlake eden-x2 nano nano-1000 nano-2000 nano-3000 \
+nano-x2 eden-x4 nano-x4 x86-64 x86-64-v2 x86-64-v3 x86-64-v4 native"
# Additional x86 processors supported by --with-cpu=. Each processor
# MUST be separated by exactly one space.
@@ -4479,6 +4481,17 @@ case "${target}" in
if test x${val} != x; then
case " $x86_64_archs " in
*" ${val} "*)
+ # Disallow x86-64-v* for --with-cpu=/--with-tune=
+ # or --with-arch= or --with-arch_32=
+ # It can be only specified in --with-arch_64=
+ case "x$which$val" in
+ xcpu*x86-64-v*|xtune*x86-64-v*|xarchx86-64-v*|xarch_32x86-64-v*)
+ echo "Unknown CPU given in --with-$which=$val." 1>&2
+ exit 1
+ ;;
+ *)
+ ;;
+ esac
# OK
;;
*)