From e558dc44eed43437c97f4ed195f2e84abe7c714c Mon Sep 17 00:00:00 2001 From: naruse Date: Fri, 14 Mar 2008 01:47:02 +0000 Subject: * configure.in (int8_t, uint8_t, int16_t, uint16_t int32_t, uint32_t int64_t, uint64_t, int128_t, uint128_t, intptr_t, uintptr_t): check if defined. * win32/Makefile.sub: follow configure.in. * ext/digest/defs.h: remove checks for uint8_t, uint32_t and uint64_t. git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@15772 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- configure.in | 43 ++++++++++++++++++++++++++++++++----------- 1 file changed, 32 insertions(+), 11 deletions(-) (limited to 'configure.in') diff --git a/configure.in b/configure.in index 45011a720..16066f3e2 100644 --- a/configure.in +++ b/configure.in @@ -620,18 +620,39 @@ AC_CHECK_TYPES(struct timespec) AC_CHECK_TYPE(fd_mask, [AC_DEFINE(HAVE_RB_FD_INIT, 1)]) -test ${rb_cv_type_uint32_t+set} && ac_cv_type_uint32_t=yes -AC_CHECK_TYPE(uint32_t) -if test ${ac_cv_type_uint32_t} != yes; then - AC_CACHE_CHECK([unsigned 32bit int], - rb_cv_type_uint32_t, - [for type in short int long; do - type="unsigned $type" - AC_COMPILE_IFELSE(AC_LANG_BOOL_COMPILE_TRY([], [sizeof($type) == 4]), - [rb_cv_type_uint32_t=$type; break], []) - done]) - AC_DEFINE_UNQUOTED(uint32_t, $rb_cv_type_uint32_t) +dnl RUBY_DEFINT [typename] [size] [signed] +AC_DEFUN([RUBY_DEFINT], [dnl +AC_CACHE_CHECK([for $1], [rb_cv_type_$1], +[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT([$4]) +typedef $1 t; int s = sizeof(t) == 42;])], + [rb_cv_type_$1=yes], + [case m4_bmatch([$2], [^[1-9][0-9]*$], $2, [$ac_cv_sizeof_]AS_TR_SH($2)) in + "1") rb_cv_type_$1="m4_if([$3], [], [signed ], [$3 ])char";; + "$ac_cv_sizeof_short") rb_cv_type_$1="m4_if([$3], [], [], [$3 ])short";; + "$ac_cv_sizeof_int") rb_cv_type_$1="m4_if([$3], [], [], [$3 ])int";; + "$ac_cv_sizeof_long") rb_cv_type_$1="m4_if([$3], [], [], [$3 ])long";; + "$ac_cv_sizeof_long_long") rb_cv_type_$1="m4_if([$3], [], [], [$3 ])long long";; + "$ac_cv_sizeof___int64") rb_cv_type_$1="m4_if([$3], [], [], [$3 ])__int64";; + *) rb_cv_type_$1=no;; + esac])]) +if test "${rb_cv_type_$1}" != no; then + AC_DEFINE([HAVE_]AS_TR_CPP($1), 1) + test "${rb_cv_type_$1}" = yes || AC_DEFINE_UNQUOTED($1, [$rb_cv_type_$1]) fi +]) + +RUBY_DEFINT(int8_t, 1) +RUBY_DEFINT(uint8_t, 1, unsigned) +RUBY_DEFINT(int16_t, 2) +RUBY_DEFINT(uint16_t, 2, unsigned) +RUBY_DEFINT(int32_t, 4) +RUBY_DEFINT(uint32_t, 4, unsigned) +RUBY_DEFINT(int64_t, 8) +RUBY_DEFINT(uint64_t, 8, unsigned) +RUBY_DEFINT(int128_t, 16) +RUBY_DEFINT(uint128_t, 16, unsigned) +RUBY_DEFINT(intptr_t, void*) +RUBY_DEFINT(uintptr_t, void*, unsigned) AC_CACHE_CHECK(for stack end address, rb_cv_stack_end_address, [rb_cv_stack_end_address=no -- cgit