aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog19
-rw-r--r--gcc/c-cppbuiltin.c9
-rw-r--r--gcc/config/alpha/netbsd.h3
-rw-r--r--gcc/config/ia64/ia64.h7
-rw-r--r--gcc/config/netbsd.h8
-rw-r--r--gcc/config/pa/pa.h5
-rw-r--r--gcc/config/sh/netbsd-elf.h4
-rw-r--r--gcc/config/sparc/netbsd-elf.h3
-rw-r--r--gcc/doc/cpp.texi6
9 files changed, 38 insertions, 26 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index f7a12d4..6a235c9 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,22 @@
+2003-03-12 Andreas Jaeger <aj@suse.de>
+
+ * c-cppbuiltin.c (cb_register_builtins): Define LP64 builtins for
+ LP64 targets.
+
+ * doc/cpp.texi (Common Predefined Macros): Document __LP64__ and
+ _LP64.
+
+ * config/ia64/ia64.h (TARGET_CPU_CPP_BUILTINS): Do not define
+ _LP64 macros here.
+ * config/pa/pa.h (TARGET_CPU_CPP_BUILTINS): Likewise.
+
+ * config/alpha/netbsd.h (TARGET_OS_CPP_BUILTINS): Remove call to
+ NETBSD_OS_CPP_BUILTINS_LP64.
+ * config/sh/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Likewise.
+ * config/sparc/netbsd-elf.h (TARGET_OS_CPP_BUILTINS): Likewise.
+
+ * config/netbsd.h (NETBSD_OS_CPP_BUILTINS_LP64): Remove.
+
Wed Mar 12 19:04:39 CET 2003 Jan Hubicka <jh@suse.cz>
* i386.c (ix86_setup_incoming_varargs): Set stack_alignment_needed to 128.
diff --git a/gcc/c-cppbuiltin.c b/gcc/c-cppbuiltin.c
index 35c1645..a396b6b 100644
--- a/gcc/c-cppbuiltin.c
+++ b/gcc/c-cppbuiltin.c
@@ -339,6 +339,15 @@ cb_register_builtins (pfile)
/* Misc. */
builtin_define_with_value ("__VERSION__", version_string, 1);
+ /* Definitions for LP64 model. */
+ if (TYPE_PRECISION (long_integer_type_node) == 64
+ && POINTER_SIZE == 64
+ && TYPE_PRECISION (integer_type_node) == 32)
+ {
+ cpp_define (pfile, "_LP64");
+ cpp_define (pfile, "__LP64__");
+ }
+
/* Other target-independent built-ins determined by command-line
options. */
if (optimize_size)
diff --git a/gcc/config/alpha/netbsd.h b/gcc/config/alpha/netbsd.h
index e1da9cf..117ce3d 100644
--- a/gcc/config/alpha/netbsd.h
+++ b/gcc/config/alpha/netbsd.h
@@ -1,6 +1,6 @@
/* Definitions of target machine for GNU compiler,
for Alpha NetBSD systems.
- Copyright (C) 1998, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2002, 2003 Free Software Foundation, Inc.
This file is part of GNU CC.
@@ -25,7 +25,6 @@ Boston, MA 02111-1307, USA. */
#define TARGET_OS_CPP_BUILTINS() \
do { \
NETBSD_OS_CPP_BUILTINS_ELF(); \
- NETBSD_OS_CPP_BUILTINS_LP64(); \
} while (0)
diff --git a/gcc/config/ia64/ia64.h b/gcc/config/ia64/ia64.h
index a94fbf8..116aec4 100644
--- a/gcc/config/ia64/ia64.h
+++ b/gcc/config/ia64/ia64.h
@@ -1,5 +1,5 @@
/* Definitions of target machine GNU compiler. IA-64 version.
- Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+ Copyright (C) 1999, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
Contributed by James E. Wilson <wilson@cygnus.com> and
David Mosberger <davidm@hpl.hp.com>.
@@ -40,11 +40,6 @@ do { \
builtin_define("__ia64__"); \
builtin_define("__itanium__"); \
builtin_define("__ELF__"); \
- if (!TARGET_ILP32) \
- { \
- builtin_define("_LP64"); \
- builtin_define("__LP64__"); \
- } \
if (TARGET_BIG_ENDIAN) \
builtin_define("__BIG_ENDIAN__"); \
} while (0)
diff --git a/gcc/config/netbsd.h b/gcc/config/netbsd.h
index 0441389..602f831 100644
--- a/gcc/config/netbsd.h
+++ b/gcc/config/netbsd.h
@@ -29,14 +29,6 @@ Boston, MA 02111-1307, USA. */
} \
while (0)
-/* TARGET_OS_CPP_BUILTINS() common to all LP64 NetBSD targets. */
-#define NETBSD_OS_CPP_BUILTINS_LP64() \
- do \
- { \
- builtin_define ("_LP64"); \
- } \
- while (0)
-
/* CPP_SPEC parts common to all NetBSD targets. */
#define NETBSD_CPP_SPEC \
"%{posix:-D_POSIX_SOURCE} \
diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h
index ba533ff..8659058 100644
--- a/gcc/config/pa/pa.h
+++ b/gcc/config/pa/pa.h
@@ -356,11 +356,6 @@ do { \
builtin_assert("machine=hppa"); \
builtin_define("__hppa"); \
builtin_define("__hppa__"); \
- if (TARGET_64BIT) \
- { \
- builtin_define("_LP64"); \
- builtin_define("__LP64__"); \
- } \
if (TARGET_PA_20) \
builtin_define("_PA_RISC2_0"); \
else if (TARGET_PA_11) \
diff --git a/gcc/config/sh/netbsd-elf.h b/gcc/config/sh/netbsd-elf.h
index 513b39f..d6ccfe0 100644
--- a/gcc/config/sh/netbsd-elf.h
+++ b/gcc/config/sh/netbsd-elf.h
@@ -1,5 +1,5 @@
/* Definitions for SH running NetBSD using ELF
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003 Free Software Foundation, Inc.
Contributed by Wasabi Systems, Inc.
This file is part of GNU CC.
@@ -52,8 +52,6 @@ Boston, MA 02111-1307, USA. */
do \
{ \
NETBSD_OS_CPP_BUILTINS_ELF(); \
- if (TARGET_SHMEDIA64) \
- NETBSD_OS_CPP_BUILTINS_LP64(); \
builtin_define ("__NO_LEADING_UNDERSCORES__"); \
} \
while (0)
diff --git a/gcc/config/sparc/netbsd-elf.h b/gcc/config/sparc/netbsd-elf.h
index 7e0d70d..65901c8 100644
--- a/gcc/config/sparc/netbsd-elf.h
+++ b/gcc/config/sparc/netbsd-elf.h
@@ -1,6 +1,6 @@
/* Definitions of target machine for GNU compiler, for ELF on NetBSD/sparc
and NetBSD/sparc64.
- Copyright (C) 2002 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003 Free Software Foundation, Inc.
Contributed by Matthew Green (mrg@eterna.com.au).
This file is part of GNU CC.
@@ -26,7 +26,6 @@ Boston, MA 02111-1307, USA. */
NETBSD_OS_CPP_BUILTINS_ELF(); \
if (TARGET_ARCH64) \
{ \
- NETBSD_OS_CPP_BUILTINS_LP64(); \
builtin_define ("__sparc64__"); \
builtin_define ("__sparc_v9__"); \
} \
diff --git a/gcc/doc/cpp.texi b/gcc/doc/cpp.texi
index a6d6fb0..cf962c4 100644
--- a/gcc/doc/cpp.texi
+++ b/gcc/doc/cpp.texi
@@ -2031,6 +2031,12 @@ This macro is defined, with value 1, if (and only if) the NeXT runtime
(as in @option{-fnext-runtime}) is in use for Objective-C. If the GNU
runtime is used, this macro is not defined, so that you can use this
macro to determine which runtime (NeXT or GNU) is being used.
+
+@item __LP64__
+@item _LP64
+These macros are defined, with value 1, if (and only if) the compilation
+is for a target where @code{long int} and pointer both use 64-bits and
+@code{int} uses 32-bit.
@end table
@node System-specific Predefined Macros