1 dnl Id 2 dnl 3 dnl 4 dnl Check for MIPS/IRIX ABI flags. Sets $abi and $abilibdirext to some 5 dnl value. 6 7 AC_DEFUN([AC_MIPS_ABI], [ 8 AC_ARG_WITH(mips_abi, 9 AS_HELP_STRING([--with-mips-abi=abi],[ABI to use for IRIX (32, n32, or 64)])) 10 11 case "$host_os" in 12 irix*) 13 with_mips_abi="${with_mips_abi:-yes}" 14 if test -n "$GCC"; then 15 16 # GCC < 2.8 only supports the O32 ABI. GCC >= 2.8 has a flag to select 17 # which ABI to use, but only supports (as of 2.8.1) the N32 and 64 ABIs. 18 # 19 # Default to N32, but if GCC doesn't grok -mabi=n32, we assume an old 20 # GCC and revert back to O32. The same goes if O32 is asked for - old 21 # GCCs doesn't like the -mabi option, and new GCCs can't output O32. 22 # 23 # Don't you just love *all* the different SGI ABIs? 24 25 case "${with_mips_abi}" in 26 32|o32) abi='-mabi=32'; abilibdirext='' ;; 27 n32|yes) abi='-mabi=n32'; abilibdirext='32' ;; 28 64) abi='-mabi=64'; abilibdirext='64' ;; 29 no) abi=''; abilibdirext='';; 30 *) AC_MSG_ERROR("Invalid ABI specified") ;; 31 esac 32 if test -n "$abi" ; then 33 ac_foo=krb_cv_gcc_`echo $abi | tr =- __` 34 dnl 35 dnl can't use AC_CACHE_CHECK here, since it doesn't quote CACHE-ID to 36 dnl AC_MSG_RESULT 37 dnl 38 AC_MSG_CHECKING([if $CC supports the $abi option]) 39 AC_CACHE_VAL($ac_foo, [ 40 save_CFLAGS="$CFLAGS" 41 CFLAGS="$CFLAGS $abi" 42 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],[[int x;]])],[eval $ac_foo=yes], [eval $ac_foo=no])dnl 43 CFLAGS="$save_CFLAGS" 44 ]) 45 ac_res=`eval echo \\\$$ac_foo` 46 AC_MSG_RESULT($ac_res) 47 if test $ac_res = no; then 48 # Try to figure out why that failed... 49 case $abi in 50 -mabi=32) 51 save_CFLAGS="$CFLAGS" 52 CFLAGS="$CFLAGS -mabi=n32" 53 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],[[int x;]])],[ac_res=yes],[ac_res=no])dnl 54 CLAGS="$save_CFLAGS" 55 if test $ac_res = yes; then 56 # New GCC 57 AC_MSG_ERROR([$CC does not support the $with_mips_abi ABI]) 58 fi 59 # Old GCC 60 abi='' 61 abilibdirext='' 62 ;; 63 -mabi=n32|-mabi=64) 64 if test $with_mips_abi = yes; then 65 # Old GCC, default to O32 66 abi='' 67 abilibdirext='' 68 else 69 # Some broken GCC 70 AC_MSG_ERROR([$CC does not support the $with_mips_abi ABI]) 71 fi 72 ;; 73 esac 74 fi #if test $ac_res = no; then 75 fi #if test -n "$abi" ; then 76 else 77 case "${with_mips_abi}" in 78 32|o32) abi='-32'; abilibdirext='' ;; 79 n32|yes) abi='-n32'; abilibdirext='32' ;; 80 64) abi='-64'; abilibdirext='64' ;; 81 no) abi=''; abilibdirext='';; 82 *) AC_MSG_ERROR("Invalid ABI specified") ;; 83 esac 84 fi #if test -n "$GCC"; then 85 ;; 86 esac 87 ]) 88