190075Sobrien/* Definitions for rtems targeting a PowerPC using elf.
2169689Skan   Copyright (C) 1996, 1997, 2000, 2001, 2002, 2003, 2004, 2005
3146895Skan   Free Software Foundation, Inc.
490075Sobrien   Contributed by Joel Sherrill (joel@OARcorp.com).
590075Sobrien
6132718Skan   This file is part of GCC.
790075Sobrien
8132718Skan   GCC is free software; you can redistribute it and/or modify it
9132718Skan   under the terms of the GNU General Public License as published
10132718Skan   by the Free Software Foundation; either version 2, or (at your
11132718Skan   option) any later version.
1290075Sobrien
13132718Skan   GCC is distributed in the hope that it will be useful, but WITHOUT
14132718Skan   ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
15132718Skan   or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
16132718Skan   License for more details.
1790075Sobrien
18132718Skan   You should have received a copy of the GNU General Public License
19132718Skan   along with GCC; see the file COPYING.  If not, write to the
20169689Skan   Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston,
21169689Skan   MA 02110-1301, USA.  */
2290075Sobrien
2390075Sobrien/* Specify predefined symbols in preprocessor.  */
2490075Sobrien
25117395Skan#undef TARGET_OS_CPP_BUILTINS
26117395Skan#define TARGET_OS_CPP_BUILTINS()          \
27117395Skan  do                                      \
28117395Skan    {                                     \
29117395Skan      builtin_define_std ("PPC");         \
30117395Skan      builtin_define ("__rtems__");       \
31146895Skan      builtin_define ("__USE_INIT_FINI__"); \
32117395Skan      builtin_assert ("system=rtems");    \
33117395Skan      builtin_assert ("cpu=powerpc");     \
34117395Skan      builtin_assert ("machine=powerpc"); \
35132718Skan      TARGET_OS_SYSV_CPP_BUILTINS ();     \
36117395Skan    }                                     \
37117395Skan  while (0)
38110611Skan
39110611Skan#undef CPP_OS_DEFAULT_SPEC
40110611Skan#define CPP_OS_DEFAULT_SPEC "%(cpp_os_rtems)"
41146895Skan
42146895Skan#define CPP_OS_RTEMS_SPEC "\
43146895Skan%{!mcpu*:  %{!Dppc*: %{!Dmpc*: -Dmpc750} } }\
44146895Skan%{mcpu=403:  %{!Dppc*: %{!Dmpc*: -Dppc403}  } } \
45146895Skan%{mcpu=505:  %{!Dppc*: %{!Dmpc*: -Dmpc505}  } } \
46146895Skan%{mcpu=601:  %{!Dppc*: %{!Dmpc*: -Dppc601}  } } \
47146895Skan%{mcpu=602:  %{!Dppc*: %{!Dmpc*: -Dppc602}  } } \
48146895Skan%{mcpu=603:  %{!Dppc*: %{!Dmpc*: -Dppc603}  } } \
49146895Skan%{mcpu=603e: %{!Dppc*: %{!Dmpc*: -Dppc603e} } } \
50146895Skan%{mcpu=604:  %{!Dppc*: %{!Dmpc*: -Dmpc604}  } } \
51146895Skan%{mcpu=750:  %{!Dppc*: %{!Dmpc*: -Dmpc750}  } } \
52146895Skan%{mcpu=821:  %{!Dppc*: %{!Dmpc*: -Dmpc821}  } } \
53146895Skan%{mcpu=860:  %{!Dppc*: %{!Dmpc*: -Dmpc860}  } }"
54146895Skan
55146895Skan#undef  SUBSUBTARGET_EXTRA_SPECS
56146895Skan#define SUBSUBTARGET_EXTRA_SPECS \
57146895Skan  { "cpp_os_rtems",		CPP_OS_RTEMS_SPEC }
58