+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.
/* 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)
/* 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.
#define TARGET_OS_CPP_BUILTINS() \
do { \
NETBSD_OS_CPP_BUILTINS_ELF(); \
- NETBSD_OS_CPP_BUILTINS_LP64(); \
} while (0)
/* 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>.
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)
} \
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} \
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) \
/* 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.
do \
{ \
NETBSD_OS_CPP_BUILTINS_ELF(); \
- if (TARGET_SHMEDIA64) \
- NETBSD_OS_CPP_BUILTINS_LP64(); \
builtin_define ("__NO_LEADING_UNDERSCORES__"); \
} \
while (0)
/* 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.
NETBSD_OS_CPP_BUILTINS_ELF(); \
if (TARGET_ARCH64) \
{ \
- NETBSD_OS_CPP_BUILTINS_LP64(); \
builtin_define ("__sparc64__"); \
builtin_define ("__sparc_v9__"); \
} \
(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