X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/fc6485562c7f11b39a3a41e7d4504e4f5c40890a..de06d16ffe51a0f739ffc8d5e8259788c79fd16d:/acmacro/gras_arch.m4 diff --git a/acmacro/gras_arch.m4 b/acmacro/gras_arch.m4 index c6aeeb122b..c10677c1d6 100644 --- a/acmacro/gras_arch.m4 +++ b/acmacro/gras_arch.m4 @@ -114,7 +114,7 @@ AC_DEFUN([GRAS_STRUCT_BOUNDARY], 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 struct s { char c; $1 i; }; @@ -181,18 +181,20 @@ trace="${trace}_D:4/${ac_cv_struct_boundary_float}:8/${ac_cv_struct_boundary_dou # 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/2:4/4:8/8:8/8:_P:8/8:8/8:_D:4/4:8/8:) gras_arch=2; 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: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/4:) gras_arch=8; gras_arch_name=big64_8_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_size=32; 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_size=32; 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_size=32; 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_size=32; 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=4; gras_size=64; 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=5; gras_size=32; 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_size=32; 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_size=32; 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_size=32; 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=9; gras_size=64; 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_size=64; gras_arch_name=big64_8_4;; esac if test x$gras_arch = xunknown ; then AC_MSG_RESULT([damnit ($trace)]) @@ -202,6 +204,23 @@ fi 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)) + +AM_CONDITIONAL(GRAS_ARCH_32_BITS,[test "$gras_size" = 32]) + +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