--- gmp-6.3.0/configure.ac.orig 2023-07-29 15:42:16.000000000 +0200 +++ gmp-6.3.0/configure.ac 2023-09-03 19:25:28.172771749 +0200 @@ -277,8 +277,12 @@ if test $enable_fake_cpuid = yes && test AC_MSG_ERROR([--enable-fake-cpuid requires --enable-fat]) fi - -tmp_host=`echo $host_cpu | sed 's/\./_/'` +AC_ARG_WITH(cpu, +AC_HELP_STRING([--with-cpu], + [specify CPU type [[default=host_cpu]]]), +[gmp_cpu=$withval], [gmp_cpu=$host_cpu]) + +tmp_host=`echo $gmp_cpu | sed 's/\./_/'` AC_DEFINE_UNQUOTED(HAVE_HOST_CPU_$tmp_host) GMP_DEFINE_RAW("define_not_for_expansion(\`HAVE_HOST_CPU_$tmp_host')", POST) @@ -480,7 +484,7 @@ case $host in alpha*-*-*) AC_DEFINE(HAVE_HOST_CPU_FAMILY_alpha) - case $host_cpu in + case $gmp_cpu in alphaev5* | alphapca5*) path="alpha/ev5 alpha" ;; alphaev67 | alphaev68 | alphaev7*) @@ -507,7 +511,7 @@ case $host in # compiler errors too easily and is rejected by GMP_PROG_CC_WORKS. Each # -mcpu=ev6 below has a fallback to -mcpu=ev56 for this reason. # - case $host_cpu in + case $gmp_cpu in alpha) gcc_cflags_cpu="-mcpu=ev4" ;; alphaev5) gcc_cflags_cpu="-mcpu=ev5" ;; alphaev56) gcc_cflags_cpu="-mcpu=ev56" ;; @@ -540,7 +544,7 @@ case $host in # Insns like ctlz which were never available as macros are always # accepted and always generate their plain code. # - case $host_cpu in + case $gmp_cpu in alpha) gcc_cflags_asm="-Wa,-arch,ev4 -Wa,-mev4" ;; alphaev5) gcc_cflags_asm="-Wa,-arch,ev5 -Wa,-mev5" ;; alphaev56) gcc_cflags_asm="-Wa,-arch,ev56 -Wa,-mev56" ;; @@ -575,7 +579,7 @@ case $host in # DEC C V5.9-005 knows ev4, ev5, ev56, pca56, ev6. # Compaq C V6.3-029 adds ev67. # - case $host_cpu in + case $gmp_cpu in alpha) cc_cflags_cpu="-arch~ev4~-tune~ev4" ;; alphaev5) cc_cflags_cpu="-arch~ev5~-tune~ev5" ;; alphaev56) cc_cflags_cpu="-arch~ev56~-tune~ev56" ;; @@ -643,7 +647,7 @@ case $host in # FIXME: We make mandatory compiler options optional here. We should # either enforce them, or organise to strip paths as the corresponding # options fail. - case $host_cpu in + case $gmp_cpu in armxscale | arm7ej | arm9te | arm9e* | arm10* | armv5*) path="arm/v5 arm" gcc_cflags_arch="-march=armv5" @@ -828,7 +832,7 @@ case $host in # (Can't remember why this isn't done already, have to check what .asm # files are available in each and how they run on a typical 2.0 cpu.) # - case $host_cpu in + case $gmp_cpu in hppa1.0*) path="pa32" ;; hppa7000*) path="pa32/hppa1_1 pa32" ;; hppa2.0* | hppa64) @@ -846,13 +850,13 @@ case $host in # probably be safe, but let's not take the chance. In any case, a # configuration like --host=hppa2.0 ABI=1.0 is far from optimal. # - case $host_cpu in + case $gmp_cpu in hppa1.0*) gcc_cflags_arch="-mpa-risc-1-0" ;; *) # default to 7100 gcc_cflags_arch="-mpa-risc-1-1" ;; esac - case $host_cpu in + case $gmp_cpu in hppa1.0*) cc_cflags="+O2" ;; *) # default to 7100 cc_cflags="+DA1.1 +O2" ;; @@ -913,7 +917,7 @@ case $host in SPEED_CYCLECOUNTER_OBJ=ia64.lo any_32_testlist="sizeof-long-4" - case $host_cpu in + case $gmp_cpu in itanium) path="ia64/itanium ia64" ;; itanium2) path="ia64/itanium2 ia64" ;; *) path="ia64" ;; @@ -923,7 +927,7 @@ case $host in gcc_32_cflags_optlist=$gcc_64_cflags_optlist # gcc pre-release 3.4 adds -mtune itanium and itanium2 - case $host_cpu in + case $gmp_cpu in itanium) gcc_cflags_tune="-mtune=itanium" ;; itanium2) gcc_cflags_tune="-mtune=itanium2" ;; esac @@ -986,7 +990,7 @@ case $host in # gcc 2.95 adds -mcpu32, -m68060. # FIXME: Maybe "-m68020 -mnobitfield" would suit cpu32 on 2.7.2. # - case $host_cpu in + case $gmp_cpu in m68020) gcc_cflags_arch="-m68020" ;; m68030) gcc_cflags_arch="-m68030" ;; m68040) gcc_cflags_arch="-m68040" ;; @@ -998,7 +1002,7 @@ case $host in # FIXME: m68k/mc68020 looks like it's ok for cpu32, but this wants to be # tested. Will need to introduce an m68k/cpu32 if m68k/mc68020 ever uses # the bitfield instructions. - case $host_cpu in + case $gmp_cpu in [m680[234]0 | m68360]) path="m68k/mc68020 m68k" ;; *) path="m68k" ;; esac @@ -1118,7 +1122,7 @@ case $host in SPEED_CYCLECOUNTER_OBJ=powerpc.lo cyclecounter_size=0 - case $host_cpu in + case $gmp_cpu in powerpc740 | powerpc750) path="powerpc32/750 powerpc32" ;; powerpc7400 | powerpc7410) @@ -1129,7 +1133,7 @@ case $host in path="powerpc32" ;; esac - case $host_cpu in + case $gmp_cpu in powerpc401) gcc_cflags_cpu="-mcpu=401" ;; powerpc403) gcc_cflags_cpu="-mcpu=403" xlc_cflags_arch="-qarch=403 -qarch=ppc" ;; @@ -1381,7 +1385,7 @@ case $host in gcc_32_cflags_maybe="-m31" unset cpu - case $host_cpu in + case $gmp_cpu in s390) ;; z900 | z900esa) @@ -1471,7 +1475,7 @@ case $host in any_testlist="sizeof-long-4" GMP_INCLUDE_MPN(sparc32/sparc-defs.m4) - case $host_cpu in + case $gmp_cpu in sparcv8 | microsparc | turbosparc) path="sparc32/v8 sparc32" ;; supersparc) @@ -1507,7 +1511,7 @@ case $host in # plain -m forms will disappear. # gcc 3.3 adds ultrasparc3. # - case $host_cpu in + case $gmp_cpu in supersparc*) gcc_cflags_cpu="-mcpu=supersparc -msupersparc" gcc_cflags_asm="-Wa,-Av8 -Wa,-xarch=v8";; @@ -1555,7 +1559,7 @@ case $host in # SunOS cc doesn't know -xarch, apparently always generating v7 # code, so make this optional - case $host_cpu in + case $gmp_cpu in sparcv8 | microsparc* | supersparc* | turbosparc | hypersparc*) cc_cflags_arch="-xarch=v8";; [ultrasparct[345]]) @@ -1571,7 +1575,7 @@ case $host in # micro2, hyper, hyper2, powerup, ultra, ultra2, ultra2i. # SunPRO cc 6 adds -xchip=ultra2e, ultra3cu. # - case $host_cpu in + case $gmp_cpu in supersparc*) cc_cflags_cpu="-xchip=super" ;; microsparc*) cc_cflags_cpu="-xchip=micro" ;; turbosparc) cc_cflags_cpu="-xchip=micro2" ;; @@ -1590,7 +1594,7 @@ case $host in esac esac - case $host_cpu in + case $gmp_cpu in sparc64 | sparcv9* | ultrasparc*) case $host in # Solaris 6 and earlier cannot run ABI=64 since it doesn't save @@ -1617,7 +1621,7 @@ case $host in *) abilist="64 32" ;; esac - case $host_cpu in + case $gmp_cpu in ultrasparc | ultrasparc2 | ultrasparc2i) path_64="sparc64/ultrasparc1234 sparc64" ;; [ultrasparc[34]]) @@ -1661,7 +1665,7 @@ case $host in # cclist_64="$cclist_64 cc" cc_64_cflags_optlist="cpu" - case $host_cpu in + case $gmp_cpu in [ultrasparct[345]]) cc_64_cflags="$cc_64_cflags -xO3 -xarch=v9d" ;; *) @@ -1709,7 +1713,7 @@ case $host in # # -m32 forces 32-bit mode on a bi-arch 32/64 amd64 build of gcc. -m64 is # the default in such a build (we think), so -m32 is essential for ABI=32. - # This is, of course, done for any $host_cpu, not just x86_64, so we can + # This is, of course, done for any $gmp_cpu, not just x86_64, so we can # get such a gcc into the right mode to cross-compile to say i486-*-*. # # -m32 is not available in gcc 2.95 and earlier, hence cflags_maybe to use @@ -1772,7 +1776,7 @@ case $host in # like k8 for x86_64, then it can be the -mtune at the start, no need to # duplicate anything. # - case $host_cpu in + case $gmp_cpu in i386*) gcc_cflags_cpu="-mtune=i386 -mcpu=i386 -m386" gcc_cflags_arch="-march=i386"