netbsd.h revision 132718
1/* Definitions of target machine for GNU compiler, 2 for PowerPC NetBSD systems. 3 Copyright 2002, 2003 Free Software Foundation, Inc. 4 Contributed by Wasabi Systems, Inc. 5 6 This file is part of GCC. 7 8 GCC is free software; you can redistribute it and/or modify it 9 under the terms of the GNU General Public License as published 10 by the Free Software Foundation; either version 2, or (at your 11 option) any later version. 12 13 GCC is distributed in the hope that it will be useful, but WITHOUT 14 ANY WARRANTY; without even the implied warranty of MERCHANTABILITY 15 or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public 16 License for more details. 17 18 You should have received a copy of the GNU General Public License 19 along with GCC; see the file COPYING. If not, write to the 20 Free Software Foundation, 59 Temple Place - Suite 330, Boston, 21 MA 02111-1307, USA. */ 22 23#undef TARGET_OS_CPP_BUILTINS /* FIXME: sysv4.h should not define this! */ 24#define TARGET_OS_CPP_BUILTINS() \ 25 do \ 26 { \ 27 NETBSD_OS_CPP_BUILTINS_ELF(); \ 28 builtin_define ("__powerpc__"); \ 29 builtin_assert ("cpu=powerpc"); \ 30 builtin_assert ("machine=powerpc"); \ 31 } \ 32 while (0) 33 34/* Override the default from rs6000.h to avoid conflicts with macros 35 defined in NetBSD header files. */ 36 37#undef RS6000_CPU_CPP_ENDIAN_BUILTINS 38#define RS6000_CPU_CPP_ENDIAN_BUILTINS() \ 39 do \ 40 { \ 41 if (BYTES_BIG_ENDIAN) \ 42 { \ 43 builtin_define ("__BIG_ENDIAN__"); \ 44 builtin_assert ("machine=bigendian"); \ 45 } \ 46 else \ 47 { \ 48 builtin_define ("__LITTLE_ENDIAN__"); \ 49 builtin_assert ("machine=littleendian"); \ 50 } \ 51 } \ 52 while (0) 53 54/* Make GCC agree with <machine/ansi.h>. */ 55 56#undef SIZE_TYPE 57#define SIZE_TYPE "unsigned int" 58 59#undef PTRDIFF_TYPE 60#define PTRDIFF_TYPE "int" 61 62/* Undo the spec mess from sysv4.h, and just define the specs 63 the way NetBSD systems actually expect. */ 64 65#undef CPP_SPEC 66#define CPP_SPEC NETBSD_CPP_SPEC 67 68#undef LINK_SPEC 69#define LINK_SPEC \ 70 "%{!msdata=none:%{G*}} %{msdata=none:-G0} \ 71 %(netbsd_link_spec)" 72 73#define NETBSD_ENTRY_POINT "_start" 74 75#undef STARTFILE_SPEC 76#define STARTFILE_SPEC NETBSD_STARTFILE_SPEC 77 78#undef ENDFILE_SPEC 79#define ENDFILE_SPEC \ 80 "crtsavres%O%s %(netbsd_endfile_spec)" 81 82#undef LIB_SPEC 83#define LIB_SPEC NETBSD_LIB_SPEC 84 85#undef SUBTARGET_EXTRA_SPECS 86#define SUBTARGET_EXTRA_SPECS \ 87 { "netbsd_link_spec", NETBSD_LINK_SPEC_ELF }, \ 88 { "netbsd_entry_point", NETBSD_ENTRY_POINT }, \ 89 { "netbsd_endfile_spec", NETBSD_ENDFILE_SPEC }, 90 91 92#undef TARGET_VERSION 93#define TARGET_VERSION fprintf (stderr, " (NetBSD/powerpc ELF)"); 94