config.gcc: Remove need_64bit_hwint.

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
This commit is contained in:
Richard Biener 2014-05-20 08:01:32 +00:00 committed by Richard Biener
parent 74145685ed
commit 54da09ee20
11 changed files with 138 additions and 119 deletions

View 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,

View File

@ -164,13 +164,6 @@
# 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-*-*)

View File

@ -1729,12 +1729,6 @@
#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

10
gcc/configure vendored
View File

@ -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

View 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

View 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

View 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

View File

@ -180,6 +180,9 @@
/* 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
@ -228,9 +231,8 @@
/* 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
@ -262,6 +264,12 @@
/* 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.

121
libcpp/configure vendored
View File

@ -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

View 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))],

View 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
{