The following changes the configury to insist on [u]int64_t being available and removes the very old __int64 case. Autoconf doesn't check for it, support came in via a big merge in Dec 2002, r60174, and it was never used on the libcpp side until I fixed that with the last patch of this series, so we couldn't have relied on it at least since libcpp was introduced.
Both libcpp and vmsdbg.h now use [u]int64_t, switching HOST_WIDE_INT to literally use int64_t has to be done with the grand renaming of all users due to us using 'unsigned HOST_WIDE_INT'. Btw, I couldn't find any "standard" way of writing [u]int64_t literals (substitution for HOST_WIDE_INT_C) nor one for printf formats (substitutions for HOST_WIDE_INT_PRINT and friends). I'll consider doing s/HOST_WIDE_INT/[U]INT64/ there if nobody comes up with a better plan. Unfortunately any followup will be the whole renaming game at once due to the 'unsigned' issue. I'll make sure to propose a hwint.h-only patch with a renaming guide for review and expect the actual renaming to take place using a script. Bootstrap and regtest running on x86_64-unknown-linux-gnu, ok? After this patch you may use [u]int64_t freely in host sources (lto-plugin already does that - heh). Thanks, Richard. 2014-05-23 Richard Biener <rguent...@suse.de> libcpp/ * configure.ac: Remove long long and __int64 type checks, add check for uint64_t and fail if that wasn't found. * include/cpplib.h (cpp_num_part): Use uint64_t. * config.in: Regenerate. * configure: Likewise. gcc/ * configure.ac: Drop __int64 type check. Insist that we found uint64_t and int64_t. * hwint.h (HOST_BITS_PER___INT64): Remove. (HOST_BITS_PER_WIDE_INT): Define to 64 and remove __int64 case. (HOST_WIDE_INT_PRINT_*): Remove 32bit case. (HOST_WIDEST_INT*): Define to HOST_WIDE_INT*. (HOST_WIDEST_FAST_INT): Remove __int64 case. * vmsdbg.h (struct _DST_SRC_COMMAND): Use int64_t for dst_q_src_df_rms_cdt. * configure: Regenerate. * config.in: Likewise. Index: libcpp/config.in =================================================================== *** libcpp/config.in (revision 210847) --- libcpp/config.in (working copy) *************** *** 180,188 **** /* Define to 1 if you have the <locale.h> header file. */ #undef HAVE_LOCALE_H - /* Define to 1 if the system has the type `long long'. */ - #undef HAVE_LONG_LONG - /* Define to 1 if you have the <memory.h> header file. */ #undef HAVE_MEMORY_H --- 180,185 ---- *************** *** 231,239 **** /* Define to 1 if you have the <unistd.h> header file. */ #undef HAVE_UNISTD_H - /* Define to 1 if the system has the type `__int64'. */ - #undef HAVE___INT64 - /* Define as const if the declaration of iconv() needs const. */ #undef ICONV_CONST --- 228,233 ---- *************** *** 264,275 **** /* The size of `long', as computed by sizeof. */ #undef SIZEOF_LONG - /* The size of `long long', as computed by sizeof. */ - #undef SIZEOF_LONG_LONG - - /* The size of `__int64', as computed by sizeof. */ - #undef SIZEOF___INT64 - /* If using the C implementation of alloca, define if you know the direction of stack growth for your system; otherwise it will be automatically deduced at runtime. --- 258,263 ---- *************** *** 340,345 **** --- 328,338 ---- /* Define to 1 if you need to in order for `stat' and other things to work. */ #undef _POSIX_SOURCE + /* Define for Solaris 2.5.1 so the uint64_t typedef from <sys/synch.h>, + <pthread.h>, or <semaphore.h> is not used. If the typedef were allowed, the + #define below would cause a syntax error. */ + #undef _UINT64_T + /* Define to empty if `const' does not conform to ANSI C. */ #undef const *************** *** 361,366 **** --- 354,363 ---- /* Define to `int' if <sys/types.h> does not define. */ #undef ssize_t + /* Define to the type of an unsigned integer type of width exactly 64 bits if + such a type exists and the standard includes do not define it. */ + #undef uint64_t + /* Define to the type of an unsigned integer type wide enough to hold a pointer, if such a type exists, and if the system does not define it. */ #undef uintptr_t Index: libcpp/configure =================================================================== *** libcpp/configure (revision 210847) --- libcpp/configure (working copy) *************** $as_echo "$ac_res" >&6; } *** 1822,1827 **** --- 1822,1879 ---- } # ac_fn_c_check_type + # ac_fn_c_find_uintX_t LINENO BITS VAR + # ------------------------------------ + # Finds an unsigned integer type with width BITS, setting cache variable VAR + # accordingly. + ac_fn_c_find_uintX_t () + { + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uint$2_t" >&5 + $as_echo_n "checking for uint$2_t... " >&6; } + if { as_var=$3; eval "test \"\${$as_var+set}\" = set"; }; then : + $as_echo_n "(cached) " >&6 + else + eval "$3=no" + for ac_type in uint$2_t 'unsigned int' 'unsigned long int' \ + 'unsigned long long int' 'unsigned short int' 'unsigned char'; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext + /* end confdefs.h. */ + $ac_includes_default + int + main () + { + static int test_array [1 - 2 * !(($ac_type) -1 >> ($2 - 1) == 1)]; + test_array [0] = 0 + + ; + return 0; + } + _ACEOF + if ac_fn_c_try_compile "$LINENO"; then : + case $ac_type in #( + uint$2_t) : + eval "$3=yes" ;; #( + *) : + eval "$3=\$ac_type" ;; + esac + fi + rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + eval as_val=\$$3 + if test "x$as_val" = x""no; then : + + else + break + fi + done + fi + eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 + $as_echo "$ac_res" >&6; } + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + + } # ac_fn_c_find_uintX_t + # ac_fn_c_compute_int LINENO EXPR VAR INCLUDES # -------------------------------------------- # Tries to find the compile-time value of EXPR in a program that includes *************** _ACEOF *** 5566,5657 **** fi ! ac_fn_c_check_type "$LINENO" "long long" "ac_cv_type_long_long" "$ac_includes_default" ! if test "x$ac_cv_type_long_long" = x""yes; then : ! ! cat >>confdefs.h <<_ACEOF ! #define HAVE_LONG_LONG 1 ! _ACEOF ! ! # The cast to long int works around a bug in the HP C Compiler ! # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects ! # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. ! # This bug is HP SR number 8606223364. ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5 ! $as_echo_n "checking size of long long... " >&6; } ! if test "${ac_cv_sizeof_long_long+set}" = set; then : ! $as_echo_n "(cached) " >&6 ! else ! if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"; then : ! ! else ! if test "$ac_cv_type_long_long" = yes; then ! { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ! { as_fn_set_status 77 ! as_fn_error "cannot compute sizeof (long long) ! See \`config.log' for more details." "$LINENO" 5; }; } ! else ! ac_cv_sizeof_long_long=0 ! fi ! fi ! ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5 ! $as_echo "$ac_cv_sizeof_long_long" >&6; } ! ! ! ! cat >>confdefs.h <<_ACEOF ! #define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long ! _ACEOF ! ! ! fi ! ! ac_fn_c_check_type "$LINENO" "__int64" "ac_cv_type___int64" "$ac_includes_default" ! if test "x$ac_cv_type___int64" = x""yes; then : ! ! cat >>confdefs.h <<_ACEOF ! #define HAVE___INT64 1 ! _ACEOF ! ! # The cast to long int works around a bug in the HP C Compiler ! # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects ! # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. ! # This bug is HP SR number 8606223364. ! { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of __int64" >&5 ! $as_echo_n "checking size of __int64... " >&6; } ! if test "${ac_cv_sizeof___int64+set}" = set; then : ! $as_echo_n "(cached) " >&6 ! else ! if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (__int64))" "ac_cv_sizeof___int64" "$ac_includes_default"; then : ! ! else ! if test "$ac_cv_type___int64" = yes; then ! { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 ! $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} ! { as_fn_set_status 77 ! as_fn_error "cannot compute sizeof (__int64) ! See \`config.log' for more details." "$LINENO" 5; }; } ! else ! ac_cv_sizeof___int64=0 ! fi ! fi ! ! fi ! { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof___int64" >&5 ! $as_echo "$ac_cv_sizeof___int64" >&6; } cat >>confdefs.h <<_ACEOF ! #define SIZEOF___INT64 $ac_cv_sizeof___int64 _ACEOF ! fi - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } if test "${ac_cv_struct_tm+set}" = set; then : --- 5618,5640 ---- fi ! ac_fn_c_find_uintX_t "$LINENO" "64" "ac_cv_c_uint64_t" ! case $ac_cv_c_uint64_t in #( ! no|yes) ;; #( ! *) + $as_echo "#define _UINT64_T 1" >>confdefs.h cat >>confdefs.h <<_ACEOF ! #define uint64_t $ac_cv_c_uint64_t _ACEOF + ;; + esac ! if test x"$ac_cv_c_uint64_t" = x"no"; then ! as_fn_error "uint64_t not found" "$LINENO" 5 fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether struct tm is in sys/time.h or time.h" >&5 $as_echo_n "checking whether struct tm is in sys/time.h or time.h... " >&6; } if test "${ac_cv_struct_tm+set}" = set; then : Index: libcpp/configure.ac =================================================================== *** libcpp/configure.ac (revision 210847) --- libcpp/configure.ac (working copy) *************** AC_TYPE_SIZE_T *** 64,71 **** AC_TYPE_SSIZE_T AC_TYPE_UINTPTR_T AC_CHECK_TYPE(ptrdiff_t, int) ! AC_CHECK_TYPES([long long], [AC_CHECK_SIZEOF(long long)]) ! AC_CHECK_TYPES([__int64], [AC_CHECK_SIZEOF(__int64)]) AC_STRUCT_TM AC_CHECK_SIZEOF(int) AC_CHECK_SIZEOF(long) --- 64,73 ---- AC_TYPE_SSIZE_T AC_TYPE_UINTPTR_T AC_CHECK_TYPE(ptrdiff_t, int) ! AC_TYPE_UINT64_T ! if test x"$ac_cv_c_uint64_t" = x"no"; then ! AC_MSG_ERROR([uint64_t not found]) ! fi AC_STRUCT_TM AC_CHECK_SIZEOF(int) AC_CHECK_SIZEOF(long) Index: libcpp/include/cpplib.h =================================================================== *** libcpp/include/cpplib.h (revision 210847) --- libcpp/include/cpplib.h (working copy) *************** extern int cpp_defined (cpp_reader *, co *** 820,842 **** /* A preprocessing number. Code assumes that any unused high bits of the double integer are set to zero. */ ! /* Find a type with at least 64bit precision, mimicking hwint.h. ! This type has to be equal to unsigned HOST_WIDE_INT, see gcc/c-family/c-lex.c. */ ! #if SIZEOF_LONG >= 8 ! typedef unsigned long cpp_num_part; ! #else ! # if SIZEOF_LONG_LONG >= 8 ! typedef unsigned long long cpp_num_part; ! # else ! # if SIZEOF___INT64 >= 8 ! typedef unsigned __int64 cpp_num_part; ! # else ! #error "This line should be impossible to reach" ! # endif ! # endif ! #endif ! typedef struct cpp_num cpp_num; struct cpp_num { --- 820,828 ---- /* A preprocessing number. Code assumes that any unused high bits of the double integer are set to zero. */ ! /* This type has to be equal to unsigned HOST_WIDE_INT, see gcc/c-family/c-lex.c. */ ! typedef uint64_t cpp_num_part; typedef struct cpp_num cpp_num; struct cpp_num { Index: gcc/configure.ac =================================================================== *** gcc/configure.ac (revision 210847) --- gcc/configure.ac (working copy) *************** AC_CHECK_SIZEOF(short) *** 311,318 **** AC_CHECK_SIZEOF(int) AC_CHECK_SIZEOF(long) AC_CHECK_TYPES([long long], [AC_CHECK_SIZEOF(long long)]) - AC_CHECK_TYPES([__int64], [AC_CHECK_SIZEOF(__int64)]) GCC_STDINT_TYPES # --------------------- # Warnings and checking --- 311,320 ---- AC_CHECK_SIZEOF(int) AC_CHECK_SIZEOF(long) AC_CHECK_TYPES([long long], [AC_CHECK_SIZEOF(long long)]) GCC_STDINT_TYPES + if test x"$ac_cv_c_uint64_t" = x"no" -o x"$ac_cv_c_int64_t" = x"no"; then + AC_MSG_ERROR([uint64_t or int64_t not found]) + fi # --------------------- # Warnings and checking *************** fi *** 1374,1380 **** if test x$use_long_long_for_widest_fast_int = xyes; then AC_DEFINE(USE_LONG_LONG_FOR_WIDEST_FAST_INT, 1, ! [Define to 1 if the 'long long' (or '__int64') is wider than 'long' but still efficiently supported by the host hardware.]) fi --- 1376,1382 ---- if test x$use_long_long_for_widest_fast_int = xyes; then AC_DEFINE(USE_LONG_LONG_FOR_WIDEST_FAST_INT, 1, ! [Define to 1 if the 'long long' type is wider than 'long' but still efficiently supported by the host hardware.]) fi Index: gcc/hwint.h =================================================================== *** gcc/hwint.h (revision 210847) --- gcc/hwint.h (working copy) *************** extern char sizeof_long_long_must_be_8[s *** 44,83 **** #ifdef HAVE_LONG_LONG # define HOST_BITS_PER_LONGLONG (CHAR_BIT * SIZEOF_LONG_LONG) #endif - #ifdef HAVE___INT64 - # define HOST_BITS_PER___INT64 (CHAR_BIT * SIZEOF___INT64) - #endif ! /* Set HOST_WIDE_INT. This should be the widest efficient host ! integer type. It can be 32 or 64 bits, except that if we are ! targeting a machine with 64-bit size_t then it has to be 64 bits. With a sane ABI, 'long' is the largest efficient host integer type. ! Thus, we use that unless we have to use 'long long' or '__int64' ! because we're targeting a 64-bit machine from a 32-bit host. */ ! #if HOST_BITS_PER_LONG >= 64 ! # define HOST_BITS_PER_WIDE_INT HOST_BITS_PER_LONG # define HOST_WIDE_INT long # define HOST_WIDE_INT_C(X) X ## L #else ! # if HOST_BITS_PER_LONGLONG >= 64 ! # define HOST_BITS_PER_WIDE_INT HOST_BITS_PER_LONGLONG # define HOST_WIDE_INT long long # define HOST_WIDE_INT_C(X) X ## LL # else ! # if HOST_BITS_PER___INT64 >= 64 ! # define HOST_BITS_PER_WIDE_INT HOST_BITS_PER___INT64 ! # define HOST_WIDE_INT __int64 ! # define HOST_WIDE_INT_C(X) X ## i64 ! # else ! #error "Unable to find a suitable type for HOST_WIDE_INT" ! # endif # endif #endif /* Print support for half a host wide int. */ ! #define HOST_BITS_PER_HALF_WIDE_INT (HOST_BITS_PER_WIDE_INT / 2) #if HOST_BITS_PER_HALF_WIDE_INT == HOST_BITS_PER_LONG # define HOST_HALF_WIDE_INT long # define HOST_HALF_WIDE_INT_PRINT HOST_LONG_FORMAT --- 44,71 ---- #ifdef HAVE_LONG_LONG # define HOST_BITS_PER_LONGLONG (CHAR_BIT * SIZEOF_LONG_LONG) #endif ! /* Set HOST_WIDE_INT, this should be always 64 bits. With a sane ABI, 'long' is the largest efficient host integer type. ! Thus, we use that unless we have to use 'long long' ! because we're on a 32-bit host. */ ! #define HOST_BITS_PER_WIDE_INT 64 ! #if HOST_BITS_PER_LONG == 64 # define HOST_WIDE_INT long # define HOST_WIDE_INT_C(X) X ## L #else ! # if HOST_BITS_PER_LONGLONG == 64 # define HOST_WIDE_INT long long # define HOST_WIDE_INT_C(X) X ## LL # else ! #error "Unable to find a suitable type for HOST_WIDE_INT" # endif #endif /* Print support for half a host wide int. */ ! #define HOST_BITS_PER_HALF_WIDE_INT 32 #if HOST_BITS_PER_HALF_WIDE_INT == HOST_BITS_PER_LONG # define HOST_HALF_WIDE_INT long # define HOST_HALF_WIDE_INT_PRINT HOST_LONG_FORMAT *************** typedef HOST_WIDE_INT __gcc_host_wide_in *** 126,148 **** #if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG # define HOST_WIDE_INT_PRINT HOST_LONG_FORMAT # define HOST_WIDE_INT_PRINT_C "L" ! /* 'long' might be 32 or 64 bits, and the number of leading zeroes ! must be tweaked accordingly. */ ! # if HOST_BITS_PER_WIDE_INT == 64 ! # define HOST_WIDE_INT_PRINT_DOUBLE_HEX \ ! "0x%" HOST_LONG_FORMAT "x%016" HOST_LONG_FORMAT "x" ! # define HOST_WIDE_INT_PRINT_PADDED_HEX \ ! "%016" HOST_LONG_FORMAT "x" ! # else ! # define HOST_WIDE_INT_PRINT_DOUBLE_HEX \ ! "0x%" HOST_LONG_FORMAT "x%08" HOST_LONG_FORMAT "x" ! # define HOST_WIDE_INT_PRINT_PADDED_HEX \ ! "%08" HOST_LONG_FORMAT "x" ! # endif #else # define HOST_WIDE_INT_PRINT HOST_LONG_LONG_FORMAT # define HOST_WIDE_INT_PRINT_C "LL" ! /* We can assume that 'long long' is at least 64 bits. */ # define HOST_WIDE_INT_PRINT_DOUBLE_HEX \ "0x%" HOST_LONG_LONG_FORMAT "x%016" HOST_LONG_LONG_FORMAT "x" # define HOST_WIDE_INT_PRINT_PADDED_HEX \ --- 114,128 ---- #if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG # define HOST_WIDE_INT_PRINT HOST_LONG_FORMAT # define HOST_WIDE_INT_PRINT_C "L" ! /* HOST_BITS_PER_WIDE_INT is 64 bits. */ ! # define HOST_WIDE_INT_PRINT_DOUBLE_HEX \ ! "0x%" HOST_LONG_FORMAT "x%016" HOST_LONG_FORMAT "x" ! # define HOST_WIDE_INT_PRINT_PADDED_HEX \ ! "%016" HOST_LONG_FORMAT "x" #else # define HOST_WIDE_INT_PRINT HOST_LONG_LONG_FORMAT # define HOST_WIDE_INT_PRINT_C "LL" ! /* HOST_BITS_PER_WIDE_INT is 64 bits. */ # define HOST_WIDE_INT_PRINT_DOUBLE_HEX \ "0x%" HOST_LONG_LONG_FORMAT "x%016" HOST_LONG_LONG_FORMAT "x" # define HOST_WIDE_INT_PRINT_PADDED_HEX \ *************** typedef HOST_WIDE_INT __gcc_host_wide_in *** 155,196 **** #define HOST_WIDE_INT_PRINT_HEX "%#" HOST_WIDE_INT_PRINT "x" #define HOST_WIDE_INT_PRINT_HEX_PURE "%" HOST_WIDE_INT_PRINT "x" ! /* Set HOST_WIDEST_INT. This is a 64-bit type unless the compiler ! in use has no 64-bit type at all; in that case it's 32 bits. */ ! #if HOST_BITS_PER_WIDE_INT >= 64 \ ! || (HOST_BITS_PER_LONGLONG < 64 && HOST_BITS_PER___INT64 < 64) ! # define HOST_WIDEST_INT HOST_WIDE_INT ! # define HOST_BITS_PER_WIDEST_INT HOST_BITS_PER_WIDE_INT ! # define HOST_WIDEST_INT_PRINT HOST_WIDE_INT_PRINT ! # define HOST_WIDEST_INT_PRINT_DEC HOST_WIDE_INT_PRINT_DEC ! # define HOST_WIDEST_INT_PRINT_DEC_C HOST_WIDE_INT_PRINT_DEC_C ! # define HOST_WIDEST_INT_PRINT_UNSIGNED HOST_WIDE_INT_PRINT_UNSIGNED ! # define HOST_WIDEST_INT_PRINT_HEX HOST_WIDE_INT_PRINT_HEX ! # define HOST_WIDEST_INT_PRINT_DOUBLE_HEX HOST_WIDE_INT_PRINT_DOUBLE_HEX ! # define HOST_WIDEST_INT_C(X) HOST_WIDE_INT (X) ! #else ! # if HOST_BITS_PER_LONGLONG >= 64 ! # define HOST_BITS_PER_WIDEST_INT HOST_BITS_PER_LONGLONG ! # define HOST_WIDEST_INT long long ! # define HOST_WIDEST_INT_C(X) X ## LL ! # else ! # if HOST_BITS_PER___INT64 >= 64 ! # define HOST_BITS_PER_WIDEST_INT HOST_BITS_PER___INT64 ! # define HOST_WIDEST_INT __int64 ! # define HOST_WIDEST_INT_C(X) X ## i64 ! # else ! #error "This line should be impossible to reach" ! # endif ! # endif ! # define HOST_WIDEST_INT_PRINT HOST_LONG_LONG_FORMAT ! # define HOST_WIDEST_INT_PRINT_DEC "%" HOST_LONG_LONG_FORMAT "d" ! # define HOST_WIDEST_INT_PRINT_DEC_C "%" HOST_LONG_LONG_FORMAT "dLL" ! # define HOST_WIDEST_INT_PRINT_UNSIGNED "%" HOST_LONG_LONG_FORMAT "u" ! # define HOST_WIDEST_INT_PRINT_HEX "%#" HOST_LONG_LONG_FORMAT "x" ! # define HOST_WIDEST_INT_PRINT_DOUBLE_HEX \ ! "0x%" HOST_LONG_LONG_FORMAT "x%016" HOST_LONG_LONG_FORMAT "x" ! #endif /* Define HOST_WIDEST_FAST_INT to the widest integer type supported efficiently in hardware. (That is, the widest integer type that fits --- 135,151 ---- #define HOST_WIDE_INT_PRINT_HEX "%#" HOST_WIDE_INT_PRINT "x" #define HOST_WIDE_INT_PRINT_HEX_PURE "%" HOST_WIDE_INT_PRINT "x" ! /* Set HOST_WIDEST_INT. This is a 64-bit type. */ ! #define HOST_WIDEST_INT HOST_WIDE_INT ! #define HOST_BITS_PER_WIDEST_INT HOST_BITS_PER_WIDE_INT ! #define HOST_WIDEST_INT_PRINT HOST_WIDE_INT_PRINT ! #define HOST_WIDEST_INT_PRINT_DEC HOST_WIDE_INT_PRINT_DEC ! #define HOST_WIDEST_INT_PRINT_DEC_C HOST_WIDE_INT_PRINT_DEC_C ! #define HOST_WIDEST_INT_PRINT_UNSIGNED HOST_WIDE_INT_PRINT_UNSIGNED ! #define HOST_WIDEST_INT_PRINT_HEX HOST_WIDE_INT_PRINT_HEX ! #define HOST_WIDEST_INT_PRINT_DOUBLE_HEX HOST_WIDE_INT_PRINT_DOUBLE_HEX ! #define HOST_WIDEST_INT_C(X) HOST_WIDE_INT (X) /* Define HOST_WIDEST_FAST_INT to the widest integer type supported efficiently in hardware. (That is, the widest integer type that fits *************** typedef HOST_WIDE_INT __gcc_host_wide_in *** 203,214 **** # ifdef HAVE_LONG_LONG # define HOST_WIDEST_FAST_INT long long # define HOST_BITS_PER_WIDEST_FAST_INT HOST_BITS_PER_LONGLONG - # elif defined (HAVE___INT64) - # define HOST_WIDEST_FAST_INT __int64 - # define HOST_BITS_PER_WIDEST_FAST_INT HOST_BITS_PER___INT64 # else ! # error "Your host said it wanted to use long long or __int64 but neither" ! # error "exist" # endif #else # define HOST_WIDEST_FAST_INT long --- 158,165 ---- # ifdef HAVE_LONG_LONG # define HOST_WIDEST_FAST_INT long long # define HOST_BITS_PER_WIDEST_FAST_INT HOST_BITS_PER_LONGLONG # else ! # error "Your host said it wanted to use long long but that does not exist" # endif #else # define HOST_WIDEST_FAST_INT long Index: gcc/vmsdbg.h =================================================================== *** gcc/vmsdbg.h (revision 210847) --- gcc/vmsdbg.h (working copy) *************** typedef struct _DST_SRC_COMMAND *** 216,228 **** unsigned char dst_b_src_df_length; unsigned char dst_b_src_df_flags; unsigned short int dst_w_src_df_fileid; ! #ifdef HAVE_LONG_LONG ! long long dst_q_src_df_rms_cdt; ! #else ! #ifdef HAVE___INT64 ! __int64 dst_q_src_df_rms_cdt; ! #endif ! #endif unsigned int dst_l_src_df_rms_ebk; unsigned short int dst_w_src_df_rms_ffb; unsigned char dst_b_src_df_rms_rfo; --- 216,222 ---- unsigned char dst_b_src_df_length; unsigned char dst_b_src_df_flags; unsigned short int dst_w_src_df_fileid; ! int64_t dst_q_src_df_rms_cdt; unsigned int dst_l_src_df_rms_ebk; unsigned short int dst_w_src_df_rms_ffb; unsigned char dst_b_src_df_rms_rfo; Index: gcc/configure =================================================================== *** gcc/configure (revision 210847) --- gcc/configure (working copy) *************** _ACEOF *** 5862,5910 **** fi - ac_fn_c_check_type "$LINENO" "__int64" "ac_cv_type___int64" "$ac_includes_default" - if test "x$ac_cv_type___int64" = x""yes; then : - - cat >>confdefs.h <<_ACEOF - #define HAVE___INT64 1 - _ACEOF - - # The cast to long int works around a bug in the HP C Compiler - # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects - # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. - # This bug is HP SR number 8606223364. - { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of __int64" >&5 - $as_echo_n "checking size of __int64... " >&6; } - if test "${ac_cv_sizeof___int64+set}" = set; then : - $as_echo_n "(cached) " >&6 - else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (__int64))" "ac_cv_sizeof___int64" "$ac_includes_default"; then : - - else - if test "$ac_cv_type___int64" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 - $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { as_fn_set_status 77 - as_fn_error "cannot compute sizeof (__int64) - See \`config.log' for more details." "$LINENO" 5; }; } - else - ac_cv_sizeof___int64=0 - fi - fi - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof___int64" >&5 - $as_echo "$ac_cv_sizeof___int64" >&6; } - - - - cat >>confdefs.h <<_ACEOF - #define SIZEOF___INT64 $ac_cv_sizeof___int64 - _ACEOF - - - fi - ac_fn_c_find_intX_t "$LINENO" "8" "ac_cv_c_int8_t" case $ac_cv_c_int8_t in #( no|yes) ;; #( --- 5862,5867 ---- *************** fi *** 6269,6274 **** --- 6226,6234 ---- + if test x"$ac_cv_c_uint64_t" = x"no" -o x"$ac_cv_c_int64_t" = x"no"; then + as_fn_error "uint64_t or int64_t not found" "$LINENO" 5 + fi # --------------------- # Warnings and checking *************** else *** 17988,17994 **** lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 17991 "configure" #include "confdefs.h" #if HAVE_DLFCN_H --- 17948,17954 ---- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 17951 "configure" #include "confdefs.h" #if HAVE_DLFCN_H *************** else *** 18094,18100 **** lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 18097 "configure" #include "confdefs.h" #if HAVE_DLFCN_H --- 18054,18060 ---- lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF ! #line 18057 "configure" #include "confdefs.h" #if HAVE_DLFCN_H Index: gcc/config.in =================================================================== *** gcc/config.in (revision 210847) --- gcc/config.in (working copy) *************** *** 1655,1666 **** #endif - /* Define to 1 if the system has the type `__int64'. */ - #ifndef USED_FOR_TARGET - #undef HAVE___INT64 - #endif - - /* Define if cloog is in use. */ #ifndef USED_FOR_TARGET #undef HAVE_cloog --- 1655,1660 ---- *************** *** 1807,1818 **** #endif - /* The size of `__int64', as computed by sizeof. */ - #ifndef USED_FOR_TARGET - #undef SIZEOF___INT64 - #endif - - /* Define to 1 if you have the ANSI C header files. */ #ifndef USED_FOR_TARGET #undef STDC_HEADERS --- 1801,1806 ---- *************** *** 1866,1873 **** #endif ! /* Define to 1 if the 'long long' (or '__int64') is wider than 'long' but ! still efficiently supported by the host hardware. */ #ifndef USED_FOR_TARGET #undef USE_LONG_LONG_FOR_WIDEST_FAST_INT #endif --- 1854,1861 ---- #endif ! /* Define to 1 if the 'long long' type is wider than 'long' but still ! efficiently supported by the host hardware. */ #ifndef USED_FOR_TARGET #undef USE_LONG_LONG_FOR_WIDEST_FAST_INT #endif