Gentoo uses ABI env var already --- gmp-4.2.1.p12/patches/fastgcd/configure +++ gmp-4.2.1.p12/patches/fastgcd/configure @@ -489,7 +489,7 @@ # include #endif" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT WANT_MPBSD_TRUE WANT_MPBSD_FALSE GMP_NAIL_BITS ABI HAVE_HOST_CPU_FAMILY_power HAVE_HOST_CPU_FAMILY_powerpc GMP_LDFLAGS LIBGMP_LDFLAGS LIBGMPXX_LDFLAGS SPEED_CYCLECOUNTER_OBJ CALLING_CONVENTIONS_OBJS DEFN_LONG_LONG_LIMB CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP CC_FOR_BUILD CPP_FOR_BUILD EXEEXT_FOR_BUILD U_FOR_BUILD LIBM_FOR_BUILD CCAS CXX CXXFLAGS ac_ct_CXX WANT_CXX_TRUE WANT_CXX_FALSE CXXCPP EGREP U ANSI2KNR AR ac_ct_AR LIBGMP_DLL LN_S ECHO RANLIB ac_ct_RANLIB DLLTOOL ac_ct_DLLTOOL AS ac_ct_AS OBJDUMP ac_ct_OBJDUMP LIBTOOL ENABLE_STATIC_TRUE ENABLE_STATIC_FALSE LIBM TAL_OBJECT M4 BITS_PER_MP_LIMB mpn_objs_in_libmp mpn_objects mpn_objs_in_libgmp gmp_srclinks TUNE_SQR_OBJ HAVE_CLOCK_01 HAVE_CPUTIME_01 HAVE_GETRUSAGE_01 HAVE_GETTIMEOFDAY_01 HAVE_SIGACTION_01 HAVE_SIGALTSTACK_01 HAVE_SIGSTACK_01 HAVE_SYS_RESOURCE_H_01 HAVE_STACK_T_01 LIBCURSES WITH_READLINE_01 LIBREADLINE YACC LEX LEXLIB LEX_OUTPUT_ROOT LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT WANT_MPBSD_TRUE WANT_MPBSD_FALSE GMP_NAIL_BITS GMPABI HAVE_HOST_CPU_FAMILY_power HAVE_HOST_CPU_FAMILY_powerpc GMP_LDFLAGS LIBGMP_LDFLAGS LIBGMPXX_LDFLAGS SPEED_CYCLECOUNTER_OBJ CALLING_CONVENTIONS_OBJS DEFN_LONG_LONG_LIMB CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT CPP CC_FOR_BUILD CPP_FOR_BUILD EXEEXT_FOR_BUILD U_FOR_BUILD LIBM_FOR_BUILD CCAS CXX CXXFLAGS ac_ct_CXX WANT_CXX_TRUE WANT_CXX_FALSE CXXCPP EGREP U ANSI2KNR AR ac_ct_AR LIBGMP_DLL LN_S ECHO RANLIB ac_ct_RANLIB DLLTOOL ac_ct_DLLTOOL AS ac_ct_AS OBJDUMP ac_ct_OBJDUMP LIBTOOL ENABLE_STATIC_TRUE ENABLE_STATIC_FALSE LIBM TAL_OBJECT M4 BITS_PER_MP_LIMB mpn_objs_in_libmp mpn_objects mpn_objs_in_libgmp gmp_srclinks TUNE_SQR_OBJ HAVE_CLOCK_01 HAVE_CPUTIME_01 HAVE_GETRUSAGE_01 HAVE_GETTIMEOFDAY_01 HAVE_SIGACTION_01 HAVE_SIGALTSTACK_01 HAVE_SIGSTACK_01 HAVE_SYS_RESOURCE_H_01 HAVE_STACK_T_01 LIBCURSES WITH_READLINE_01 LIBREADLINE YACC LEX LEXLIB LEX_OUTPUT_ROOT LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -930,10 +930,10 @@ ac_env_target_alias_value=$target_alias ac_cv_env_target_alias_set=${target_alias+set} ac_cv_env_target_alias_value=$target_alias -ac_env_ABI_set=${ABI+set} -ac_env_ABI_value=$ABI -ac_cv_env_ABI_set=${ABI+set} -ac_cv_env_ABI_value=$ABI +ac_env_GMPABI_set=${GMPABI+set} +ac_env_GMPABI_value=$GMPABI +ac_cv_env_GMPABI_set=${GMPABI+set} +ac_cv_env_GMPABI_value=$GMPABI ac_env_CC_set=${CC+set} ac_env_CC_value=$CC ac_cv_env_CC_set=${CC+set} @@ -1091,7 +1091,7 @@ include additional configurations [automatic] Some influential environment variables: - ABI desired ABI (for processors supporting more than one ABI) + GMPABI desired ABI (for processors supporting more than one ABI) CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a @@ -2670,7 +2670,7 @@ # (64-bit), but not both, so there's no option to choose the desired # mode, we must instead detect which of the two it is. This is done by # checking sizeof(long), either 4 or 8 bytes respectively. Do this in - # ABI=1.0 too, in case someone tries to build that with a 2.0w gcc. + # GMPABI=1.0 too, in case someone tries to build that with a 2.0w gcc. # gcc_cflags="-O2" gcc_cflags_optlist="arch" @@ -2694,11 +2694,11 @@ # gcc 2.7.2.3 knows -mpa-risc-1-0 and -mpa-risc-1-1 # gcc 2.95 adds -mpa-risc-2-0, plus synonyms -march=1.0, 1.1 and 2.0 # - # We don't use -mpa-risc-2-0 in ABI=1.0 because 64-bit registers may not + # We don't use -mpa-risc-2-0 in GMPABI=1.0 because 64-bit registers may not # be saved by the kernel on an old system. Actually gcc (as of 3.2) # only adds a few float instructions with -mpa-risc-2-0, so it would # 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. + # configuration like --host=hppa2.0 GMPABI=1.0 is far from optimal. # case $host_cpu in hppa1.0*) gcc_cflags_arch="-mpa-risc-1-0" ;; @@ -2733,9 +2733,9 @@ cc_20n_cflags="+DA2.0 +e +O2 -Wl,+vnocompatwarnings" cc_20n_testlist="hpc-hppa-2-0" - # ABI=2.0w is available for hppa2.0w and hppa2.0, but not for + # GMPABI=2.0w is available for hppa2.0w and hppa2.0, but not for # hppa2.0n, on the assumption that that the latter indicates a - # desire for ABI=2.0n. + # desire for GMPABI=2.0n. case $host in hppa2.0n-*-*) ;; *) @@ -3203,7 +3203,7 @@ # mode, but not set our ABI. For some reason it's sparc where this # keeps coming up, presumably users there are accustomed to driving the # compiler mode that way. The effect of our testlist setting is to - # reject ABI=64 in favour of ABI=32 if the user has forced the flags to + # reject GMPABI=64 in favour of GMPABI=32 if the user has forced the flags to # 32-bit mode. # abilist="32" @@ -3308,12 +3308,12 @@ case $host_cpu in sparc64 | sparcv9* | ultrasparc*) case $host in - # Solaris 6 and earlier cannot run ABI=64 since it doesn't save - # registers properly, so ABI=32 is left as the only choice. + # Solaris 6 and earlier cannot run GMPABI=64 since it doesn't save + # registers properly, so GMPABI=32 is left as the only choice. # *-*-solaris2.[0-6] | *-*-solaris2.[0-6].*) ;; - # BSD sparc64 ports are 64-bit-only systems, so ABI=64 is the only + # BSD sparc64 ports are 64-bit-only systems, so GMPABI=64 is the only # choice. In fact they need no special compiler flags, gcc -m64 # is the default, but it doesn't hurt to add it. v9 CPUs always # use the sparc64 port, since the plain 32-bit sparc ports don't @@ -3399,7 +3399,7 @@ # -O, but lets assume that's no longer true. # # -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. + # the default in such a build (we think), so -m32 is essential for GMPABI=32. # This is, of course, done for any $host_cpu, not just x86_64, so we can # get such a gcc into the right mode to cross-compile to say i486-*-*. # @@ -3639,7 +3639,7 @@ cat >&5 <&5 -echo "$as_me: error: ABI=$ABI is not among the following valid choices: $abilist" >&2;} + { { echo "$as_me:$LINENO: error: GMPABI=$GMPABI is not among the following valid choices: $abilist" >&5 +echo "$as_me: error: GMPABI=$GMPABI is not among the following valid choices: $abilist" >&2;} { (exit 1); exit 1; }; } fi - abilist="$ABI" + abilist="$GMPABI" fi found_compiler=no for abi in $abilist; do - echo "checking ABI=$abi" + echo "checking GMPABI=$abi" # Suppose abilist="64 32", then for abi=64, will have abi1="_64" and # abi2="_64". For abi=32, will have abi1="_32" and abi2="". This is how @@ -5128,7 +5128,7 @@ # For -march settings which enable SSE2 we exclude certain bad # gcc versions and we need an OS knowing how to save xmm regs. # - # This is only for ABI=32, any 64-bit gcc is good and any OS + # This is only for GMPABI=32, any 64-bit gcc is good and any OS # knowing x86_64 will know xmm. # # -march=k8 was only introduced in gcc 3.3, so we shouldn't need @@ -6368,16 +6368,16 @@ done fi - ABI="$abi" + GMPABI="$abi" CC="$cc" CFLAGS="$cflags" CPPFLAGS="$cppflags" # Could easily have this in config.h too, if desired. - ABI_nodots=`echo $ABI | sed 's/\./_/'` + GMPABI_nodots=`echo $GMPABI | sed 's/\./_/'` -echo "define_not_for_expansion(\`HAVE_ABI_$ABI_nodots')" >> $gmp_tmpconfigm4p +echo "define_not_for_expansion(\`HAVE_ABI_$GMPABI_nodots')" >> $gmp_tmpconfigm4p @@ -8830,12 +8830,12 @@ # If there's any sse2 or mmx in the path, check whether the assembler # supports it, and remove if not. # -# We only need this in ABI=32, for ABI=64 on x86_64 we can assume a new +# We only need this in GMPABI=32, for GMPABI=64 on x86_64 we can assume a new # enough assembler. # case $host in i?86*-*-* | k[5-8]*-*-* | pentium*-*-* | athlon-*-* | viac3*-*-* | x86_64-*-*) - if test "$ABI" = 32; then + if test "$GMPABI" = 32; then case "$path $fat_path" in *mmx*) echo "$as_me:$LINENO: checking if the assembler knows about MMX instructions" >&5 echo $ECHO_N "checking if the assembler knows about MMX instructions... $ECHO_C" >&6 @@ -9019,7 +9019,7 @@ cat >&5 <> $gmp_tmpconfigm4i ;; @@ -30015,7 +30015,7 @@ esac ;; *-*-linux* | *-*-*bsd*) - case $ABI in + case $GMPABI in mode64) echo "include_mpn(\`powerpc64/elf.m4')" >> $gmp_tmpconfigm4i ;; @@ -30025,7 +30025,7 @@ esac ;; *-*-darwin*) - case $ABI in + case $GMPABI in mode64) echo "include_mpn(\`powerpc64/darwin.m4')" >> $gmp_tmpconfigm4i ;; @@ -30048,7 +30048,7 @@ ;; sparcv9*-*-* | ultrasparc*-*-* | sparc64-*-*) - case $ABI in + case $GMPABI in 64) echo "$as_me:$LINENO: checking if the assembler accepts \".register\"" >&5 @@ -30130,7 +30130,7 @@ echo "define(,<$gmp_cv_asm_align_fill_0x90>)" >> $gmp_tmpconfigm4 - case $ABI in + case $GMPABI in 32) echo "include_mpn(\`x86/x86-defs.m4')" >> $gmp_tmpconfigm4i @@ -34032,7 +34032,7 @@ s,@WANT_MPBSD_TRUE@,$WANT_MPBSD_TRUE,;t t s,@WANT_MPBSD_FALSE@,$WANT_MPBSD_FALSE,;t t s,@GMP_NAIL_BITS@,$GMP_NAIL_BITS,;t t -s,@ABI@,$ABI,;t t +s,@GMPABI@,$GMPABI,;t t s,@HAVE_HOST_CPU_FAMILY_power@,$HAVE_HOST_CPU_FAMILY_power,;t t s,@HAVE_HOST_CPU_FAMILY_powerpc@,$HAVE_HOST_CPU_FAMILY_powerpc,;t t s,@GMP_LDFLAGS@,$GMP_LDFLAGS,;t t --- gmp-4.2.1.p12/spkg-install.orig 2008-02-09 20:01:28.000000000 +1300 +++ gmp-4.2.1.p12/spkg-install 2008-02-09 20:02:47.000000000 +1300 @@ -146,6 +146,14 @@ { SAGE_CONF_OPTS="--enable-shared --disable-static" + + # ABI mappings (needs all architectures supported) [lifted from Gentoo] + case ${ABI} in + 32|x86) export GMPABI=32;; + 64|amd64|n64) export GMPABI=64;; + o32|n32) export GMPABI=${ABI};; + esac + case $UNAME in Darwin)