AC_MSG_CHECKING(for the minimal structure boundary of $1)
AC_CACHE_VAL(GRAS_STRUCT_BOUNDARY_RES,
- [for ac_size in 1 2 4 8 16 32 64 ; do # List sizes in rough order of prevalence.
+ [for ac_size in 1 2 4 8 16 32 64 3 ; do # List sizes in rough order of prevalence.
AC_COMPILE_IFELSE(AC_LANG_PROGRAM([#include "confdefs.h"
#include <sys/types.h>
struct s { char c; $1 i; };
# big32_2 means that all data are aligned on a 2 bytes boundary. (ARM)
# big32_8_4 means that some or them are aligned on 8 bytes, some are on 4 bytes (AIX)
case $trace in
- l_C:1/1:_I:2/2:4/4:4/4:8/8:_P:4/4:4/4:_D:4/4:8/8:) gras_arch=0; gras_arch_name=little32;;
- l_C:1/1:_I:2/2:4/4:4/4:8/4:_P:4/4:4/4:_D:4/4:8/4:) gras_arch=1; gras_arch_name=little32_4;;
+ l_C:1/1:_I:2/1:4/1:4/1:8/1:_P:4/1:4/1:_D:4/1:8/1:) gras_arch=0; gras_arch_name=little32_1;;
+ l_C:1/1:_I:2/2:4/2:4/2:8/2:_P:4/2:4/2:_D:4/2:8/2:) gras_arch=1; gras_arch_name=little32_2;;
+ l_C:1/1:_I:2/2:4/4:4/4:8/4:_P:4/4:4/4:_D:4/4:8/4:) gras_arch=2; gras_arch_name=little32_4;;
+ l_C:1/1:_I:2/2:4/4:4/4:8/8:_P:4/4:4/4:_D:4/4:8/8:) gras_arch=3; gras_arch_name=little32_8;;
- l_C:1/1:_I:2/2:4/4:8/8:8/8:_P:8/8:8/8:_D:4/4:8/8:) gras_arch=2; gras_arch_name=little64;;
+ l_C:1/1:_I:2/2:4/4:8/8:8/8:_P:8/8:8/8:_D:4/4:8/8:) gras_arch=4; gras_arch_name=little64;;
- B_C:1/1:_I:2/2:4/4:4/4:8/8:_P:4/4:4/4:_D:4/4:8/8:) gras_arch=3; gras_arch_name=big32;;
- B_C:1/1:_I:2/2:4/4:4/4:8/8:_P:4/4:4/4:_D:4/4:8/4:) gras_arch=4; gras_arch_name=big32_8_4;;
- B_C:1/1:_I:2/2:4/4:4/4:8/4:_P:4/4:4/4:_D:4/4:8/4:) gras_arch=5; gras_arch_name=big32_4;;
- B_C:1/1:_I:2/2:4/2:4/2:8/2:_P:4/2:4/2:_D:4/2:8/2:) gras_arch=6; gras_arch_name=big32_2;;
+ B_C:1/1:_I:2/2:4/4:4/4:8/8:_P:4/4:4/4:_D:4/4:8/8:) gras_arch=5; gras_arch_name=big32;;
+ B_C:1/1:_I:2/2:4/4:4/4:8/8:_P:4/4:4/4:_D:4/4:8/4:) gras_arch=6; gras_arch_name=big32_8_4;;
+ B_C:1/1:_I:2/2:4/4:4/4:8/4:_P:4/4:4/4:_D:4/4:8/4:) gras_arch=7; gras_arch_name=big32_4;;
+ B_C:1/1:_I:2/2:4/2:4/2:8/2:_P:4/2:4/2:_D:4/2:8/2:) gras_arch=8; gras_arch_name=big32_2;;
- B_C:1/1:_I:2/2:4/4:8/8:8/8:_P:8/8:8/8:_D:4/4:8/8:) gras_arch=7; gras_arch_name=big64;;
+ B_C:1/1:_I:2/2:4/4:8/8:8/8:_P:8/8:8/8:_D:4/4:8/8:) gras_arch=9; gras_arch_name=big64;;
+ B_C:1/1:_I:2/2:4/4:8/8:8/8:_P:8/8:8/8:_D:4/4:8/4:) gras_arch=10;gras_arch_name=big64_8_4;;
esac
if test x$gras_arch = xunknown ; then
AC_MSG_RESULT([damnit ($trace)])
echo "$as_me:$LINENO: GRAS trace of this machine: $trace" >&AS_MESSAGE_LOG_FD
AC_DEFINE_UNQUOTED(GRAS_THISARCH,$gras_arch,[defines the GRAS architecture signature of this machine])
AC_MSG_RESULT($gras_arch ($gras_arch_name))
+
+AC_MSG_CHECKING(the maximal size of scalar)
+ac_cv_sizeof_max=0
+for s in $ac_cv_sizeof_char \
+ $ac_cv_sizeof_short_int $ac_cv_sizeof_int $ac_cv_sizeof_long_int $ac_cv_sizeof_long_long_int \
+ $ac_cv_sizeof_void_p $ac_cv_sizeof_void_LpR_LvoidR \
+ 4 8; do
+
+ if test $ac_cv_sizeof_max -lt $s ; then
+ ac_cv_sizeof_max=$s
+ fi
+done
+AC_MSG_RESULT($ac_cv_sizeof_max)
+AC_DEFINE_UNQUOTED([SIZEOF_MAX],$ac_cv_sizeof_max,[The maximal size of any scalar on this arch])
+
])
# END OF GRAS ARCH CHECK