]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
config.gcc: Remove need_64bit_hwint.
authorRichard Biener <rguenther@suse.de>
Tue, 20 May 2014 08:01:32 +0000 (08:01 +0000)
committerRichard Biener <rguenth@gcc.gnu.org>
Tue, 20 May 2014 08:01:32 +0000 (08:01 +0000)
2014-05-20  Richard Biener  <rguenther@suse.de>

gcc/
* config.gcc: Remove need_64bit_hwint.
* configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
* hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
it to be true.
* config.in: Regenerate.
* configure: Likewise.

libcpp/
* configure.ac: Copy gcc logic of detecting a 64bit type.
Remove HOST_WIDE_INT define.
* include/cpplib.h: typedef cpp_num_part to a 64bit type,
similar to how hwint.h does it.
* config.in: Regenerate.
* configure: Likewise.

From-SVN: r210632

gcc/ChangeLog
gcc/config.gcc
gcc/config.in
gcc/configure
gcc/configure.ac
gcc/hwint.h
libcpp/ChangeLog
libcpp/config.in
libcpp/configure
libcpp/configure.ac
libcpp/include/cpplib.h

index 91369fc43cc0afeb4f112d4e5cd6bdaffa617217..16c7f518f40645d5793a6965ec16757d9b09a112 100644 (file)
@@ -1,3 +1,12 @@
+2014-05-20  Richard Biener  <rguenther@suse.de>
+
+       * config.gcc: Remove need_64bit_hwint.
+       * configure.ac: Do not define NEED_64BIT_HOST_WIDE_INT.
+       * hwint.h: Do not check NEED_64BIT_HOST_WIDE_INT but assume
+       it to be true.
+       * config.in: Regenerate.
+       * configure: Likewise.
+
 2014-05-19  David Wohlferd <dw@LimeGreenSocks.com>
 
        * doc/extend.texi: Create Label Attributes section,
index bc1e4c56843c9589027977d7881cbf93579cc291..de010da7c1f43b4ec3505f4dea8472dbb5d8c815 100644 (file)
 #  gas                 Set to yes or no depending on whether the target
 #                      system normally uses GNU as.
 #
-#  need_64bit_hwint    Set to yes if HOST_WIDE_INT must be 64 bits wide
-#                      for this target.  This is true if this target
-#                      supports "long" or "wchar_t" wider than 32 bits,
-#                      or BITS_PER_WORD is wider than 32 bits.
-#                      The setting made here must match the one made in
-#                      other locations such as libcpp/configure.ac
-#
 #  configure_default_options
 #                      Set to an initializer for configure_default_options
 #                      in configargs.h, based on --with-cpu et cetera.
@@ -233,7 +226,6 @@ gnu_ld="$gnu_ld_flag"
 default_use_cxa_atexit=no
 default_gnu_indirect_function=no
 target_gtfiles=
-need_64bit_hwint=yes
 need_64bit_isa=
 native_system_header_dir=/usr/include
 target_type_format_char='@'
@@ -310,14 +302,12 @@ m32c*-*-*)
         ;;
 aarch64*-*-*)
        cpu_type=aarch64
-       need_64bit_hwint=yes
        extra_headers="arm_neon.h"
        extra_objs="aarch64-builtins.o aarch-common.o"
        target_has_targetm_common=yes
        ;;
 alpha*-*-*)
        cpu_type=alpha
-       need_64bit_hwint=yes
        extra_options="${extra_options} g.opt"
        ;;
 am33_2.0-*-linux*)
@@ -333,7 +323,6 @@ arm*-*-*)
        target_type_format_char='%'
        c_target_objs="arm-c.o"
        cxx_target_objs="arm-c.o"
-       need_64bit_hwint=yes
        extra_options="${extra_options} arm/arm-tables.opt"
        ;;
 avr-*-*)
@@ -363,7 +352,6 @@ i[34567]86-*-*)
        cpu_type=i386
        c_target_objs="i386-c.o"
        cxx_target_objs="i386-c.o"
-       need_64bit_hwint=yes
        extra_options="${extra_options} fused-madd.opt"
        extra_headers="cpuid.h mmintrin.h mm3dnow.h xmmintrin.h emmintrin.h
                       pmmintrin.h tmmintrin.h ammintrin.h smmintrin.h
@@ -395,11 +383,9 @@ x86_64-*-*)
                       avx512cdintrin.h avx512erintrin.h avx512pfintrin.h
                       shaintrin.h clflushoptintrin.h xsavecintrin.h
                       xsavesintrin.h"
-       need_64bit_hwint=yes
        ;;
 ia64-*-*)
        extra_headers=ia64intrin.h
-       need_64bit_hwint=yes
        extra_options="${extra_options} g.opt fused-madd.opt"
        ;;
 hppa*-*-*)
@@ -422,7 +408,6 @@ microblaze*-*-*)
         ;;
 mips*-*-*)
        cpu_type=mips
-       need_64bit_hwint=yes
        extra_headers="loongson.h"
        extra_options="${extra_options} g.opt mips/mips-tables.opt"
        ;;
@@ -440,7 +425,6 @@ picochip-*-*)
 powerpc*-*-*)
        cpu_type=rs6000
        extra_headers="ppc-asm.h altivec.h spe.h ppu_intrinsics.h paired.h spu2vmx.h vec_types.h si2vmx.h htmintrin.h htmxlintrin.h"
-       need_64bit_hwint=yes
        case x$with_cpu in
            xpowerpc64|xdefault64|x6[23]0|x970|xG5|xpower[345678]|xpower6x|xrs64a|xcell|xa2|xe500mc64|xe5500|Xe6500)
                cpu_is_64bit=yes
@@ -449,7 +433,6 @@ powerpc*-*-*)
        extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
        ;;
 rs6000*-*-*)
-       need_64bit_hwint=yes
        extra_options="${extra_options} g.opt fused-madd.opt rs6000/rs6000-tables.opt"
        ;;
 score*-*-*)
@@ -461,22 +444,18 @@ sparc*-*-*)
        c_target_objs="sparc-c.o"
        cxx_target_objs="sparc-c.o"
        extra_headers="visintrin.h"
-       need_64bit_hwint=yes
        ;;
 spu*-*-*)
        cpu_type=spu
-       need_64bit_hwint=yes
        ;;
 s390*-*-*)
        cpu_type=s390
-       need_64bit_hwint=yes
        extra_options="${extra_options} fused-madd.opt"
        extra_headers="s390intrin.h htmintrin.h htmxlintrin.h"
        ;;
 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
 sh[123456789lbe]*-*-* | sh-*-*)
        cpu_type=sh
-       need_64bit_hwint=yes
        extra_options="${extra_options} fused-madd.opt"
        extra_objs="${extra_objs} sh_treg_combine.o sh-mem.o sh_optimize_sett_clrt.o"
        ;;
@@ -493,11 +472,9 @@ xtensa*-*-*)
        ;;
 tilegx*-*-*)
        cpu_type=tilegx
-       need_64bit_hwint=yes
        ;;
 tilepro*-*-*)
        cpu_type=tilepro
-       need_64bit_hwint=yes
        ;;
 esac
 
@@ -685,7 +662,6 @@ case ${target} in
     *)
       default_use_cxa_atexit=yes;;
   esac
-  # need_64bit_hwint=yes # system compiler has this for all arch!
   use_gcc_stdint=wrap
   ;;
 *-*-linux* | frv-*-*linux* | *-*-kfreebsd*-gnu | *-*-knetbsd*-gnu | *-*-gnu* | *-*-kopensolaris*-gnu)
@@ -1186,7 +1162,6 @@ hppa*64*-*-linux*)
                 glibc-stdint.h pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h \
                 pa/pa64-linux.h"
        gas=yes gnu_ld=yes
-       need_64bit_hwint=yes
        ;;
 hppa*-*-linux*)
        target_cpu_default="MASK_PA_11|MASK_NO_SPACE_REGS"
@@ -1261,7 +1236,6 @@ hppa*64*-*-hpux11*)
        esac
        extra_options="${extra_options} pa/pa-hpux.opt \
                       pa/pa-hpux1010.opt pa/pa64-hpux.opt hpux11.opt"
-       need_64bit_hwint=yes
        tmake_file="t-slibgcc"
        case x${enable_threads} in
        x | xyes | xposix )
@@ -2094,7 +2068,6 @@ mipstx39-*-elf* | mipstx39el-*-elf*)
        ;;
 mmix-knuth-mmixware)
        tm_file="${tm_file} newlib-stdint.h"
-       need_64bit_hwint=yes
        use_gcc_stdint=wrap
        ;;
 mn10300-*-*)
index c0ba36ea98b140f0db192d85990fef9e0f98932d..f03ed8288a143ac616acc0c140cbe5a94558d181 100644 (file)
 #endif
 
 
-/* Define to 1 if HOST_WIDE_INT must be 64 bits wide (see hwint.h). */
-#ifndef USED_FOR_TARGET
-#undef NEED_64BIT_HOST_WIDE_INT
-#endif
-
-
 /* Define to the address where bug reports for this package should be sent. */
 #ifndef USED_FOR_TARGET
 #undef PACKAGE_BUGREPORT
index f4db0a03656000ebb2566972aee195d6ffd4cd32..127dceeef7318af4dc5b406abf2a79c65ce0e588 100755 (executable)
@@ -11150,12 +11150,6 @@ else
        done
 fi
 
-if test x$need_64bit_hwint = xyes; then
-
-$as_echo "#define NEED_64BIT_HOST_WIDE_INT 1" >>confdefs.h
-
-fi
-
 if test x$use_long_long_for_widest_fast_int = xyes; then
 
 $as_echo "#define USE_LONG_LONG_FOR_WIDEST_FAST_INT 1" >>confdefs.h
@@ -17994,7 +17988,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 17997 "configure"
+#line 17991 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -18100,7 +18094,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<_LT_EOF
-#line 18103 "configure"
+#line 18097 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
index 8f17dfb42bbdcba65af174bb495d131ef18cd8d3..a339a0f54d8d2fbe6d2a297ee73c63b7bb9f0b3b 100644 (file)
@@ -1372,11 +1372,6 @@ else
        done
 fi
 
-if test x$need_64bit_hwint = xyes; then
-       AC_DEFINE(NEED_64BIT_HOST_WIDE_INT, 1,
-[Define to 1 if HOST_WIDE_INT must be 64 bits wide (see hwint.h).])
-fi
-
 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
index ac9c9a295b43bbe1b3a2b1bfebd64a66987dbe41..4cc4614b4ead9d2fb739c54a4f49b91950d8549e 100644 (file)
@@ -56,7 +56,7 @@ extern char sizeof_long_long_must_be_8[sizeof (long long) == 8 ? 1 : -1];
    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 || !defined NEED_64BIT_HOST_WIDE_INT
+#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
index 619dfd8308aac752f8afec06c258953d2237a789..e767aa518db730c26104aeb4a1ae381db6fed90d 100644 (file)
@@ -1,3 +1,12 @@
+2014-05-20  Richard Biener  <rguenther@suse.de>
+
+       * configure.ac: Copy gcc logic of detecting a 64bit type.
+       Remove HOST_WIDE_INT define.
+       * include/cpplib.h: typedef cpp_num_part to a 64bit type,
+       similar to how hwint.h does it.
+       * config.in: Regenerate.
+       * configure: Likewise.
+
 2014-05-09  Joey Ye  <joey.ye@arm.com>
 
        * files.c (find_file_in_dir): Always try to shorten for DOS
index 1b0b25555cf0136bece11c3a94d043c01fc8ad84..1d69a75a2dffb5b3ef047da7769a40e0d7cb7f07 100644 (file)
 /* 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
 
 /* Define to 1 if you have the <unistd.h> header file. */
 #undef HAVE_UNISTD_H
 
-/* Define to the widest efficient host integer type at least as wide as the
-   target's size_t type. */
-#undef HOST_WIDE_INT
+/* 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
 /* 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.
index a9472f37c3ad7752d85e6795b5a5d2df367a38fa..6b0f6dc4a7279ab137e87cef7cb4dd758170ffe7 100755 (executable)
@@ -5564,6 +5564,92 @@ cat >>confdefs.h <<_ACEOF
 #define ptrdiff_t int
 _ACEOF
 
+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
@@ -7151,41 +7237,6 @@ $as_echo "#define ENABLE_CANONICAL_SYSTEM_HEADERS 1" >>confdefs.h
 
 fi
 
-
-case $target in
-       aarch64*-*-* | \
-       alpha*-*-* | \
-       arm*-*-* | \
-       x86_64-*-* | \
-       ia64-*-* | \
-       hppa*64*-*-* | \
-       i[34567]86-*-* | x86_64-*-solaris2.1[0-9]* | \
-       mips*-*-* | \
-       mmix-*-* | \
-       powerpc*-*-* | \
-       rs6000*-*-* | \
-       s390*-*-* | \
-       sparc*-*-* | \
-       spu-*-* | \
-       sh[123456789lbe]*-*-* | sh-*-* | \
-       tilegx*-*-* | tilepro*-*-* )
-               need_64bit_hwint=yes ;;
-       *)
-               need_64bit_hwint=yes ;;
-esac
-
-case $need_64bit_hwint:$ac_cv_sizeof_long in
-       *:8 | no:*) host_wide_int=long ;;
-       *) host_wide_int='long long' ;;
-esac
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define HOST_WIDE_INT $host_wide_int
-_ACEOF
-
-
 case $target in
   i?86-* | x86_64-*)
     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
index f2bca1fbd526a46b40ec8690ba7c237dc056874d..93616add3bd15d5c85ad23337b37e058e2be3ecc 100644 (file)
@@ -64,6 +64,8 @@ AC_TYPE_SIZE_T
 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)
@@ -180,39 +182,6 @@ if test $enable_canonical_system_headers != no; then
             1, [Define to enable system headers canonicalization.])
 fi
 
-m4_changequote(,)
-case $target in
-       aarch64*-*-* | \
-       alpha*-*-* | \
-       arm*-*-* | \
-       x86_64-*-* | \
-       ia64-*-* | \
-       hppa*64*-*-* | \
-       i[34567]86-*-* | x86_64-*-solaris2.1[0-9]* | \
-       mips*-*-* | \
-       mmix-*-* | \
-       powerpc*-*-* | \
-       rs6000*-*-* | \
-       s390*-*-* | \
-       sparc*-*-* | \
-       spu-*-* | \
-       sh[123456789lbe]*-*-* | sh-*-* | \
-       tilegx*-*-* | tilepro*-*-* )
-               need_64bit_hwint=yes ;;
-       *)
-               need_64bit_hwint=yes ;;
-esac
-
-case $need_64bit_hwint:$ac_cv_sizeof_long in
-       *:8 | no:*) host_wide_int=long ;;
-       *) host_wide_int='long long' ;;
-esac
-m4_changequote([,])
-
-AC_DEFINE_UNQUOTED(HOST_WIDE_INT, $host_wide_int,
-[Define to the widest efficient host integer type at least
-   as wide as the target's size_t type.])
-
 case $target in
   i?86-* | x86_64-*)
     AC_TRY_COMPILE([], [asm ("pcmpestri %0, %%xmm0, %%xmm1" : : "i"(0))],
index a9db7abbd2674dcde95faba02235450e80f33841..594c89940dff144af29a5835980b81ca146db0a8 100644 (file)
@@ -819,7 +819,24 @@ extern int cpp_defined (cpp_reader *, const unsigned char *, int);
 
 /* A preprocessing number.  Code assumes that any unused high bits of
    the double integer are set to zero.  */
-typedef unsigned HOST_WIDE_INT cpp_num_part;
+
+/* 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
 {