This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[basic-improvements] 32x64 proposed fix


This is my proposed patch for the 32x64 build failures on the
basic-improvements branch: I overhauled hwint.h so that it actually
knows what's going on, and then I copied the knowledge of whether or
not HOST_WIDE_INT must be 64 bits wide from the various arch.h files
to config.gcc.  That last bit is error-prone; I would appreciate a
careful look-over from architecture maintainers.

A nice side effect of this change is, three xm-host.h files become
unnecessary.

I am testing this patch with another i686-linux bootstrap (all
languages) and an i686-linux -> mips64-elf simulator cross build (C
and C++ only).  That will take all night.  Assuming success, OK to
apply this patch?

zw

        * config.gcc (need_64bit_hwint): New variable.
        (alpha*-*-*, x86_64-*-*, ia64-*-*, mips*-*-*, powerpc*-*-*,
        rs6000*-*-*, sparc64*-*-*, s390*-*-*, sh*-*-*,
        hppa*64*-*-linux, parisc*64*-*-linux, hppa*64*-*-hpux11*,
        sparcv9-*-solaris2*, sparc*-*-solaris2.[789], 
        ultrasparc-*-freebsd*): Set it.
        (powerpc*-*-darwin*): Unset it.
        (alpha-*-interix, alpha64-dec-*vms*, i?86-*-interix3*,
        i?86-*-interix*, sparc64-*-openbsd*): Remove references to
        deleted/nonexistent xm-*.h headers.
        * configure.in: AC_DEFINE NEED_64BIT_HOST_WIDE_INT if the
        target set need_64bit_hwint in config.gcc.
        * configure, config.in: Regenerate.

        * hwint.h: Overhaul.  Don't bother trying int for
        HOST_WIDE_INT.  Do try __int64 if long is not enough.  Base
        decision to force 64-bit HOST_WIDE_INT on
        NEED_64BIT_HOST_WIDE_INT, not (MAX_)LONG_TYPE_SIZE which is
        not visible at this point.  Don't allow prior definition of
        any macro defined by this file.

        * config/alpha/xm-vms.h: Don't define HOST_WIDE_INT or
        HOST_BITS_PER_WIDE_INT.
        * config/c4x/c4x.h: Adjust redefinition of
        HOST_WIDE_INT_PRINT_HEX to match changes to hwint.h.
        * config/alpha/xm-alpha-interix.h, config/alpha/xm-vms64.h,
        config/i386/xm-i386-interix.h: Delete file.

f:
        * target.h: Don't define HOST_WIDE_INT.

===================================================================
Index: config.gcc
--- config.gcc	14 Dec 2002 18:30:49 -0000	1.240.2.17
+++ config.gcc	15 Dec 2002 09:42:30 -0000
@@ -150,6 +150,13 @@
 #
 #  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 iff
+#			MAX_LONG_TYPE_SIZE is 64.  (The code which
+#			determines the underlying integral type for
+#			HOST_WIDE_INT cannot see the definition of
+#			MAX_LONG_TYPE_SIZE.)
 
 # The following variables are used in each case-construct to build up the
 # outgoing variables:
@@ -209,6 +216,7 @@ gas="$gas_flag"
 gnu_ld="$gnu_ld_flag"
 enable_threads=$enable_threads_flag
 target_gtfiles=
+need_64bit_hwint=
 
 # Obsolete configurations.
 case $machine in
@@ -237,6 +245,7 @@ cpu_type=`echo $machine | sed 's/-.*$//'
 case $machine in
 alpha*-*-*)
 	cpu_type=alpha
+	need_64bit_hwint=yes
 	;;
 strongarm*-*-*)
 	cpu_type=arm
@@ -254,9 +263,11 @@ i[34567]86-*-*)
 x86_64-*-*)
 	cpu_type=i386
 	extra_headers="mmintrin.h xmmintrin.h"
+	need_64bit_hwint=yes
 	;;
 ia64-*-*)
 	extra_headers=ia64intrin.h
+	need_64bit_hwint=yes
 	;;
 hppa*-*-* | parisc*-*-*)
 	cpu_type=pa
@@ -270,17 +281,30 @@ m68k-*-*)
 	;;
 mips*-*-*)
 	cpu_type=mips
+	need_64bit_hwint=yes
 	;;
 powerpc*-*-*)
 	cpu_type=rs6000
 	extra_headers="ppc-asm.h altivec.h spe.h"
+	need_64bit_hwint=yes
+	;;
+rs6000*-*-*)
+	need_64bit_hwint=yes
+	;;
+sparc64*-*-*)
+	cpu_type=sparc
+	need_64bit_hwint=yes
 	;;
 sparc*-*-*)
 	cpu_type=sparc
 	;;
+s390*-*-*)
+	need_64bit_hwint=yes
+	;;
 # Note the 'l'; we need to be able to match e.g. "shle" or "shl".
 sh[123456789l]*-*-*)
 	cpu_type=sh
+	need_64bit_hwint=yes
 	;;
 tic4x-*-*)
         cpu_type=c4x
@@ -478,7 +502,6 @@ alpha-*-interix)
 	target_cpu_default="MASK_GAS|MASK_IEEE_CONFORMANT"
 
 	xm_defines=POSIX
-	xm_file="alpha/xm-alpha-interix.h"
 	tmake_file="alpha/t-alpha t-interix alpha/t-interix alpha/t-ieee"
 	if test x$enable_threads = xyes ; then
 		thread_file='posix'
@@ -565,7 +588,7 @@ alpha*-dec-osf[45]*)
 alpha64-dec-*vms*)
 	xm_defines=POSIX
 	tm_file="${tm_file} alpha/vms.h alpha/vms64.h"
-	xm_file="alpha/xm-vms.h alpha/xm-vms64.h"
+	xm_file="alpha/xm-vms.h"
 	tmake_file="alpha/t-alpha alpha/t-vms alpha/t-vms64 alpha/t-ieee"
 	xmake_file=alpha/x-vms
 	exeext=.exe
@@ -741,6 +764,7 @@ hppa*64*-*-linux* | parisc*64*-*-linux*)
 		 pa/pa-linux.h pa/pa64-regs.h pa/pa-64.h pa/pa64-linux.h"
 	tmake_file=pa/t-linux64
 	gas=yes gnu_ld=yes
+	need_64bit_hwint=yes
 	;;
 hppa*-*-linux* | parisc*-*-linux*)
 	target_cpu_default="MASK_PA_11"
@@ -881,6 +905,7 @@ hppa*64*-*-hpux11*)
 			 pa/pa64-regs.h pa/long_double.h pa/pa-hpux.h \
 			 pa/pa-hpux11.h pa/pa-64.h pa/pa64-hpux.h"
 	fi
+	need_64bit_hwint=yes
 	tmake_file="pa/t-pa64 pa/t-pa-hpux"
 	xmake_file="pa/x-ada"
 	target_cpu_default="(MASK_PA_11|MASK_PA_20|MASK_GAS)"
@@ -1309,7 +1334,6 @@ i[34567]86-*-uwin*)
 	;;
 i[34567]86-*-interix3*)
 	tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/i386-interix.h i386/i386-interix3.h interix.h interix3.h"
-	xm_file="i386/xm-i386-interix.h"
 	xm_defines=POSIX
 	tmake_file="t-interix i386/t-interix"
 	extra_objs=winnt.o
@@ -1323,7 +1347,6 @@ i[34567]86-*-interix3*)
 	;;
 i[34567]86-*-interix*)
 	tm_file="${tm_file} i386/unix.h i386/bsd.h i386/gas.h i386/i386-interix.h interix.h"
-	xm_file="i386/xm-i386-interix.h"
 	xm_defines=POSIX
 	tmake_file="t-interix i386/t-interix"
 	extra_objs=winnt.o
@@ -1943,10 +1966,11 @@ powerpc-*-darwin*)
 	# Darwin linker does collect2 functionality
 	use_collect2=no
 	extra_headers=altivec.h
+	# override ppc default
+	need_64bit_hwint=
 	;;
 powerpc*-*-freebsd*)
 	tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} rs6000/sysv4.h rs6000/freebsd.h"
-	xm_file=rs6000/xm-sysv4.h
 	out_file=rs6000/rs6000.c
 	tmake_file="rs6000/t-ppcos ${tmake_file} rs6000/t-ppccomm"
 	;;
@@ -2284,7 +2308,6 @@ sparc-*-openbsd*)
 	;;
 sparc64-*-openbsd*)
 	tm_file="sparc/openbsd1-64.h sparc/sparc.h elfos.h svr4.h sparc/sysv4.h sparc/sol2.h sparc/sp64-elf.h openbsd.h sparc/openbsd64.h"
-	xm_file=sparc/xm-sp64.h
 	gas=yes gnu_ld=yes
 	with_cpu=ultrasparc
 	;;
@@ -2371,6 +2394,7 @@ sparc64-*-solaris2* | sparcv9-*-solaris2
 		thread_file='solaris'
 	    fi
 	fi
+	need_64bit_hwint=yes
 	;;
 sparc-hal-solaris2*)
         xm_defines=POSIX
@@ -2411,6 +2435,7 @@ sparc-*-solaris2*)
 			tm_file="${tm_file} sparc/sol2-gas-bi.h"
 		fi
 		tmake_file="$tmake_file sparc/t-sol2-64"
+		need_64bit_hwint=yes
 		;;
 	esac
 	xm_defines=POSIX
@@ -2494,6 +2519,7 @@ sparc64-*-freebsd*|ultrasparc-*-freebsd*
 		x) with_cpu=ultrasparc ;;
 		*) echo "$with_cpu not supported for freebsd target"; exit 1 ;;
 	esac
+	need_64bit_hwint=yes
 	;;
 sparc64-*-linux*)		# 64-bit SPARC's running GNU/Linux
 	tmake_file="t-slibgcc-elf-ver t-linux sparc/t-linux64 sparc/t-crtfm"
===================================================================
Index: configure.in
--- configure.in	3 Dec 2002 17:34:49 -0000	1.617.4.11
+++ configure.in	15 Dec 2002 09:42:30 -0000
@@ -907,6 +907,10 @@ 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).])
+
 count=a
 for f in $host_xm_file; do
 	count=${count}x
===================================================================
Index: hwint.h
--- hwint.h	3 Dec 2002 17:34:56 -0000	1.13.4.1
+++ hwint.h	15 Dec 2002 09:42:30 -0000
@@ -15,152 +15,111 @@
 #define HOST_BITS_PER_INT   (CHAR_BIT * SIZEOF_INT)
 #define HOST_BITS_PER_LONG  (CHAR_BIT * SIZEOF_LONG)
 
+/* If HAVE_LONG_LONG and SIZEOF_LONG_LONG aren't defined, but
+   GCC_VERSION >= 3000, assume this is the second or later stage of a
+   bootstrap, we do have long long, and it's 64 bits.  (This is
+   required by C99; we do have some ports that violate that assumption
+   but they're all cross-compile-only.)  Just in case, force a
+   constraint violation if that assumption is incorrect.  */
+#if !defined HAVE_LONG_LONG
+# if GCC_VERSION >= 3000
+#  define HAVE_LONG_LONG 1
+#  define SIZEOF_LONG_LONG 8
+extern char sizeof_long_long_must_be_8[sizeof(long long) == 8 ? 1 : -1];
+# endif
+#endif
+
 #ifdef HAVE_LONG_LONG
 # define HOST_BITS_PER_LONGLONG (CHAR_BIT * SIZEOF_LONG_LONG)
-#else
+#endif
 #ifdef HAVE___INT64
-# define HOST_BITS_PER_LONGLONG (CHAR_BIT * SIZEOF___INT64)
-#else
-/* If we're here and we're GCC, assume this is stage 2+ of a bootstrap
-   and 'long long' has the width of the *target*'s long long.  */
-# if GCC_VERSION > 3000
-#  define HOST_BITS_PER_LONGLONG LONG_LONG_TYPE_SIZE
-# endif /* gcc */
-#endif
-#endif /* no long long */
-
-/* Find the largest host integer type and set its size and type.  */
-
-/* Use long long on the host if the target has a wider long type than
-   the host.  */
-
-#if ! defined HOST_BITS_PER_WIDE_INT \
-    && defined HOST_BITS_PER_LONGLONG \
-    && (HOST_BITS_PER_LONGLONG > HOST_BITS_PER_LONG) \
-    && (defined (LONG_LONG_MAX) || defined (LONGLONG_MAX) \
-        || defined (LLONG_MAX) || defined (__GNUC__))
+# define HOST_BITS_PER___INT64 (CHAR_BIT * SIZEOF___INT64)
+#endif
 
-# ifdef MAX_LONG_TYPE_SIZE
-#  if MAX_LONG_TYPE_SIZE > HOST_BITS_PER_LONG
-#   define HOST_BITS_PER_WIDE_INT HOST_BITS_PER_LONGLONG
-#   define HOST_WIDE_INT long long
-#  endif
-# else
-#  if LONG_TYPE_SIZE > HOST_BITS_PER_LONG
+/* 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 || !defined NEED_64BIT_HOST_WIDE_INT
+#   define HOST_BITS_PER_WIDE_INT HOST_BITS_PER_LONG
+#   define HOST_WIDE_INT long
+#else
+# if HOST_BITS_PER_LONGLONG >= 64
 #   define HOST_BITS_PER_WIDE_INT HOST_BITS_PER_LONGLONG
 #   define HOST_WIDE_INT long long
-#  endif
-# endif
-
-#endif
-
-#ifndef HOST_BITS_PER_WIDE_INT
-
-# if HOST_BITS_PER_LONG > HOST_BITS_PER_INT
-#  define HOST_BITS_PER_WIDE_INT HOST_BITS_PER_LONG
-#  define HOST_WIDE_INT long
 # else
-#  define HOST_BITS_PER_WIDE_INT HOST_BITS_PER_INT
-#  define HOST_WIDE_INT int
-# endif
-
-#endif /* ! HOST_BITS_PER_WIDE_INT */
-
-/* Provide defaults for the way to print a HOST_WIDE_INT
-   in various manners.  */
-
-#ifndef HOST_WIDE_INT_PRINT_DEC
-# if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_INT
-#  define HOST_WIDE_INT_PRINT_DEC "%d"
-#  define HOST_WIDE_INT_PRINT_DEC_C "%d"
-#  define HOST_WIDE_INT_PRINT_DEC_SPACE "% *d"
-# else
-#  if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG
-#   define HOST_WIDE_INT_PRINT_DEC "%ld"
-#   define HOST_WIDE_INT_PRINT_DEC_C "%ldL"
-#   define HOST_WIDE_INT_PRINT_DEC_SPACE "% *ld"
-#  else
-#   define HOST_WIDE_INT_PRINT_DEC "%lld"
-#   define HOST_WIDE_INT_PRINT_DEC_C "%lldLL"
-#   define HOST_WIDE_INT_PRINT_DEC_SPACE "% *lld"
-#  endif
-# endif
-#endif /* ! HOST_WIDE_INT_PRINT_DEC */
-
-#ifndef HOST_WIDE_INT_PRINT_UNSIGNED
-# if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_INT
-#  define HOST_WIDE_INT_PRINT_UNSIGNED "%u"
-#  define HOST_WIDE_INT_PRINT_UNSIGNED_SPACE "% *u"
-# else
-#  if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG
-#   define HOST_WIDE_INT_PRINT_UNSIGNED "%lu"
-#   define HOST_WIDE_INT_PRINT_UNSIGNED_SPACE "% *lu"
+#  if HOST_BITS_PER___INT64 >= 64
+#   define HOST_BITS_PER_WIDE_INT HOST_BITS_PER___INT64
+#   define HOST_WIDE_INT __int64
 #  else
-#   define HOST_WIDE_INT_PRINT_UNSIGNED "%llu"
-#   define HOST_WIDE_INT_PRINT_UNSIGNED_SPACE "% *llu"
+    #error "Unable to find a suitable type for HOST_WIDE_INT"
 #  endif
 # endif
-#endif /* ! HOST_WIDE_INT_PRINT_UNSIGNED */
+#endif
 
-#ifndef HOST_WIDE_INT_PRINT_HEX
-# if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_INT
-#  define HOST_WIDE_INT_PRINT_HEX "0x%x"
-# else
-#  if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG
-#   define HOST_WIDE_INT_PRINT_HEX "0x%lx"
-#  else
-#   define HOST_WIDE_INT_PRINT_HEX "0x%llx"
-#  endif
-# endif
-#endif /* ! HOST_WIDE_INT_PRINT_HEX */
+/* Various printf format strings for HOST_WIDE_INT.  */
 
-#ifndef HOST_WIDE_INT_PRINT_DOUBLE_HEX
+#if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG
+# define HOST_WIDE_INT_PRINT_DEC "%ld"
+# define HOST_WIDE_INT_PRINT_DEC_C "%ldL"
+# define HOST_WIDE_INT_PRINT_DEC_SPACE "% *ld"
+# define HOST_WIDE_INT_PRINT_UNSIGNED "%lu"
+# define HOST_WIDE_INT_PRINT_UNSIGNED_SPACE "% *lu"
+# define HOST_WIDE_INT_PRINT_HEX "0x%lx"
+  /* 'long' might be 32 or 64 bits, and the number of leading zeroes
+     must be tweaked accordingly.  */
 # if HOST_BITS_PER_WIDE_INT == 64
-#  if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_INT
-#   define HOST_WIDE_INT_PRINT_DOUBLE_HEX "0x%x%016x"
-#  else
-#   if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG
-#    define HOST_WIDE_INT_PRINT_DOUBLE_HEX "0x%lx%016lx"
-#   else
-#    define HOST_WIDE_INT_PRINT_DOUBLE_HEX "0x%llx%016llx"
-#   endif
-#  endif
+#  define HOST_WIDE_INT_PRINT_DOUBLE_HEX "0x%lx%016lx"
 # else
-#  if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_INT
-#   define HOST_WIDE_INT_PRINT_DOUBLE_HEX "0x%x%08x"
-#  else
-#   if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG
-#    define HOST_WIDE_INT_PRINT_DOUBLE_HEX "0x%lx%08lx"
-#   else
-#    define HOST_WIDE_INT_PRINT_DOUBLE_HEX "0x%llx%08llx"
-#   endif
-#  endif
+#  define HOST_WIDE_INT_PRINT_DOUBLE_HEX "0x%lx%08lx"
 # endif
-#endif /* ! HOST_WIDE_INT_PRINT_DOUBLE_HEX */
+#else
+# define HOST_WIDE_INT_PRINT_DEC "%lld"
+# define HOST_WIDE_INT_PRINT_DEC_C "%lldLL"
+# define HOST_WIDE_INT_PRINT_DEC_SPACE "% *lld"
+# define HOST_WIDE_INT_PRINT_UNSIGNED "%llu"
+# define HOST_WIDE_INT_PRINT_UNSIGNED_SPACE "% *llu"
+# define HOST_WIDE_INT_PRINT_HEX "0x%llx"
+  /* We can assume that 'long long' is at least 64 bits.  */
+# define HOST_WIDE_INT_PRINT_DOUBLE_HEX "0x%llx%016llx"
+#endif
 
-/* Find HOST_WIDEST_INT and set its bit size, type and print macros.
-   It will be the largest integer mode supported by the host which may
-   (or may not) be larger than HOST_WIDE_INT.  */
-
-#ifndef HOST_WIDEST_INT
-#if defined HOST_BITS_PER_LONGLONG \
-    && HOST_BITS_PER_LONGLONG > HOST_BITS_PER_LONG
-#   define HOST_BITS_PER_WIDEST_INT HOST_BITS_PER_LONGLONG
-#   define HOST_WIDEST_INT long long
-#   define HOST_WIDEST_INT_PRINT_DEC "%lld"
-#   define HOST_WIDEST_INT_PRINT_DEC_SPACE "% *lld"
-#   define HOST_WIDEST_INT_PRINT_UNSIGNED "%llu"
-#   define HOST_WIDEST_INT_PRINT_UNSIGNED_SPACE "% *llu"
-#   define HOST_WIDEST_INT_PRINT_HEX "0x%llx"
-#  else
-#   define HOST_BITS_PER_WIDEST_INT HOST_BITS_PER_LONG
-#   define HOST_WIDEST_INT long
-#   define HOST_WIDEST_INT_PRINT_DEC "%ld"
-#   define HOST_WIDEST_INT_PRINT_DEC_SPACE "% *ld"
-#   define HOST_WIDEST_INT_PRINT_UNSIGNED "%lu"
-#   define HOST_WIDEST_INT_PRINT_UNSIGNED_SPACE "% *lu"
-#   define HOST_WIDEST_INT_PRINT_HEX "0x%lx"
-# endif /* long long wider than long */
-#endif /* ! HOST_WIDEST_INT */
+/* Set HOST_WIDEST_INT.  Unlike HOST_WIDE_INT, this must always be
+   at least 64 bits wide.  */
+
+#if HOST_BITS_PER_WIDE_INT >= 64
+# define HOST_WIDEST_INT		      HOST_WIDE_INT
+# define HOST_BITS_PER_WIDEST_INT	      HOST_BITS_PER_WIDE_INT
+# 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_DEC_SPACE      HOST_WIDE_INT_PRINT_DEC_SPACE
+# define HOST_WIDEST_INT_PRINT_UNSIGNED	      HOST_WIDE_INT_PRINT_UNSIGNED
+# define HOST_WIDEST_INT_PRINT_UNSIGNED_SPACE HOST_WIDE_INT_PRINT_UNSIGNED_SPACE
+# define HOST_WIDEST_INT_PRINT_HEX	      HOST_WIDE_INT_PRINT_HEX
+# define HOST_WIDEST_INT_PRINT_DOUBLE_HEX     HOST_WIDE_INT_PRINT_DOUBLE_HEX
+#else
+# if HOST_BITS_PER_LONGLONG >= 64
+#  define HOST_BITS_PER_WIDEST_INT	      HOST_BITS_PER_LONGLONG
+#  define HOST_WIDEST_INT		      long long
+# else
+#  if HOST_BITS_PER___INT64 >= 64
+#   define HOST_BITS_PER_WIDEST_INT	      HOST_BITS_PER___INT64
+#   define HOST_WIDEST_INT		      __int64
+#  else
+    #error "Unable to find a suitable type for HOST_WIDEST_INT"
+#  endif
+# endif
+# define HOST_WIDEST_INT_PRINT_DEC	      "%lld"
+# define HOST_WIDEST_INT_PRINT_DEC_C	      "%lldLL"
+# define HOST_WIDEST_INT_PRINT_DEC_SPACE      "% *lld"
+# define HOST_WIDEST_INT_PRINT_UNSIGNED	      "%llu"
+# define HOST_WIDEST_INT_PRINT_UNSIGNED_SPACE "% *llu"
+# define HOST_WIDEST_INT_PRINT_HEX	      "0x%llx"
+# define HOST_WIDEST_INT_PRINT_DOUBLE_HEX     "0x%llx%016llx"
+#endif
 
 #endif /* ! GCC_HWINT_H */
===================================================================
Index: config/alpha/xm-alpha-interix.h
--- config/alpha/xm-alpha-interix.h	14 Mar 2001 00:58:25 -0000	1.4
+++ config/alpha/xm-alpha-interix.h	1 Jan 1970 00:00:00 -0000
@@ -1,39 +0,0 @@
-/* Configuration for GNU compiler
-   for an DEC/Compaq Alpha
-   Copyright (C) 1999, 2001 Free Software Foundation, Inc.
-   Donn Terry, Softway Systems, Inc.
-     derived from code by Douglas B. Rupp (drupp@cs.washington.edu)
-
-This file is part of GNU CC.
-
-GNU CC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU CC is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING.  If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
-
-#define HOST_BITS_PER_WIDE_INT 64
-#ifdef __GNUC__
-#   define HOST_WIDE_INT long long
-#else
-#   define HOST_WIDE_INT __int64
-#endif
-
-#define HOST_BITS_PER_WIDEST_INT HOST_BITS_PER_LONGLONG
-#ifdef __GNUC__
-#   define HOST_WIDEST_INT long long
-#else
-#   define HOST_WIDEST_INT __int64
-#endif
-#define HOST_WIDEST_INT_PRINT_DEC "%lld"
-#define HOST_WIDEST_INT_PRINT_UNSIGNED "%llu"
-#define HOST_WIDEST_INT_PRINT_HEX "0x%llx"
===================================================================
Index: config/alpha/xm-vms.h
--- config/alpha/xm-vms.h	11 Mar 2002 13:14:12 -0000	1.19
+++ config/alpha/xm-vms.h	15 Dec 2002 09:42:31 -0000
@@ -19,9 +19,6 @@ along with GNU CC; see the file COPYING.
 the Free Software Foundation, 59 Temple Place - Suite 330,
 Boston, MA 02111-1307, USA.  */
 
-#define HOST_WIDE_INT long long
-#define HOST_BITS_PER_WIDE_INT 64
-
 /* A couple of conditionals for execution machine are controlled here.  */
 #ifndef VMS
 #define VMS
===================================================================
Index: config/alpha/xm-vms64.h
--- config/alpha/xm-vms64.h	14 Dec 2001 12:55:07 -0000	1.1
+++ config/alpha/xm-vms64.h	1 Jan 1970 00:00:00 -0000
@@ -1,29 +0,0 @@
-/* Configuration for GNU C-compiler for openVMS/Alpha.
-   Copyright (C) 2001 Free Software Foundation, Inc.
-   Contributed by Douglas Rupp (rupp@gnat.com).
-
-This file is part of GNU CC.
-
-GNU CC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU CC is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING.  If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
-
-#undef HOST_WIDE_INT
-
-/* Since DEC C long != Gnu C long */
-#define HOST_PTR_PRINTF "%llx"
-#define HOST_WIDE_INT_PRINT_DEC "%lld"
-#define HOST_WIDE_INT_PRINT_UNSIGNED "%llu"
-#define HOST_WIDE_INT_PRINT_HEX "0x%llx"
-#define HOST_WIDE_INT_PRINT_DOUBLE_HEX "0x%llx%016llx"
===================================================================
Index: config/c4x/c4x.h
--- config/c4x/c4x.h	17 Sep 2002 22:58:54 -0000	1.114.2.4
+++ config/c4x/c4x.h	15 Dec 2002 09:42:31 -0000
@@ -1651,17 +1651,11 @@ fini_section ()							\
 /* The TI assembler wants to have hex numbers this way.  */
 
 #undef HOST_WIDE_INT_PRINT_HEX
-#ifndef HOST_WIDE_INT_PRINT_HEX
-# if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_INT
-#  define HOST_WIDE_INT_PRINT_HEX "0%xh"
-# else
-#  if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG
-#   define HOST_WIDE_INT_PRINT_HEX "0%lxh"
-#  else
-#   define HOST_WIDE_INT_PRINT_HEX "0%llxh"
-#  endif
-# endif
-#endif /* ! HOST_WIDE_INT_PRINT_HEX */
+#if HOST_BITS_PER_WIDE_INT == HOST_BITS_PER_LONG
+# define HOST_WIDE_INT_PRINT_HEX "0%lxh"
+#else
+# define HOST_WIDE_INT_PRINT_HEX "0%llxh"
+#endif
 
 /* Overall Framework of an Assembler File.  */
 /* We need to have a data section we can identify so that we can set
===================================================================
Index: config/i386/xm-i386-interix.h
--- config/i386/xm-i386-interix.h	9 Mar 2001 20:53:53 -0000	1.3
+++ config/i386/xm-i386-interix.h	1 Jan 1970 00:00:00 -0000
@@ -1,32 +0,0 @@
-/* Configuration for GNU compiler
-   for an Intel i386 or later processor running Interix.
-   Copyright (C) 1999 Free Software Foundation, Inc.
-   Contributed by Donn Terry (donn@interix.com)
-     Derived from code by Douglas B. Rupp (drupp@cs.washington.edu)
-
-This file is part of GNU CC.
-
-GNU CC is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2, or (at your option)
-any later version.
-
-GNU CC is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
-
-You should have received a copy of the GNU General Public License
-along with GNU CC; see the file COPYING.  If not, write to
-the Free Software Foundation, 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.  */
-
-#define HOST_BITS_PER_WIDEST_INT HOST_BITS_PER_LONGLONG
-#ifdef __GNUC__
-#   define HOST_WIDEST_INT long long
-#else
-#   define HOST_WIDEST_INT __int64
-#endif
-#define HOST_WIDEST_INT_PRINT_DEC "%lld"
-#define HOST_WIDEST_INT_PRINT_UNSIGNED "%llu"
-#define HOST_WIDEST_INT_PRINT_HEX "0x%llx"
===================================================================
Index: f/target.h
--- f/target.h	21 Oct 2002 17:53:04 -0000	1.16.8.3
+++ f/target.h	15 Dec 2002 09:42:32 -0000
@@ -30,12 +30,8 @@ the Free Software Foundation, 59 Temple 
 #ifndef GCC_F_TARGET_H
 #define GCC_F_TARGET_H
 
-#ifdef FFE_STANDALONE
-#define HOST_WIDE_INT long
-#else
 #ifndef TREE_CODE
 #include "tree.h"
-#endif
 #endif
 
 /* Simple definitions and enumerations. */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]