xref: /netbsd-src/external/gpl3/gcc.old/dist/gcc/config/rs6000/rtems.h (revision fa28c6faa16e0b00edee7acdcaf4899797043def)
1 /* Definitions for rtems targeting a PowerPC using elf.
2    Copyright (C) 1996-2013 Free Software Foundation, Inc.
3    Contributed by Joel Sherrill (joel@OARcorp.com).
4 
5    This file is part of GCC.
6 
7    GCC is free software; you can redistribute it and/or modify it
8    under the terms of the GNU General Public License as published
9    by the Free Software Foundation; either version 3, or (at your
10    option) any later version.
11 
12    GCC is distributed in the hope that it will be useful, but WITHOUT
13    ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
14    or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public
15    License for more details.
16 
17    You should have received a copy of the GNU General Public License
18    along with GCC; see the file COPYING3.  If not see
19    <http://www.gnu.org/licenses/>.  */
20 
21 /* Specify predefined symbols in preprocessor.  */
22 
23 #undef TARGET_OS_CPP_BUILTINS
24 #define TARGET_OS_CPP_BUILTINS()          \
25   do                                      \
26     {                                     \
27       builtin_define_std ("PPC");         \
28       builtin_define ("__rtems__");       \
29       builtin_define ("__USE_INIT_FINI__"); \
30       builtin_assert ("system=rtems");    \
31       builtin_assert ("cpu=powerpc");     \
32       builtin_assert ("machine=powerpc"); \
33       TARGET_OS_SYSV_CPP_BUILTINS ();     \
34     }                                     \
35   while (0)
36 
37 #undef TARGET_LIBGCC_SDATA_SECTION
38 #define TARGET_LIBGCC_SDATA_SECTION ".sdata"
39 
40 #undef CPP_OS_DEFAULT_SPEC
41 #define CPP_OS_DEFAULT_SPEC "%(cpp_os_rtems)"
42 
43 #define CPP_OS_RTEMS_SPEC "\
44 %{!mcpu*:  %{!Dppc*: %{!Dmpc*: -Dmpc750} } }\
45 %{mcpu=403:  %{!Dppc*: %{!Dmpc*: -Dppc403}  } } \
46 %{mcpu=505:  %{!Dppc*: %{!Dmpc*: -Dmpc505}  } } \
47 %{mcpu=601:  %{!Dppc*: %{!Dmpc*: -Dppc601}  } } \
48 %{mcpu=602:  %{!Dppc*: %{!Dmpc*: -Dppc602}  } } \
49 %{mcpu=603:  %{!Dppc*: %{!Dmpc*: -Dppc603}  } } \
50 %{mcpu=603e: %{!Dppc*: %{!Dmpc*: -Dppc603e} } } \
51 %{mcpu=604:  %{!Dppc*: %{!Dmpc*: -Dmpc604}  } } \
52 %{mcpu=750:  %{!Dppc*: %{!Dmpc*: -Dmpc750}  } } \
53 %{mcpu=821:  %{!Dppc*: %{!Dmpc*: -Dmpc821}  } } \
54 %{mcpu=860:  %{!Dppc*: %{!Dmpc*: -Dmpc860}  } } \
55 %{mcpu=8540: %{!Dppc*: %{!Dmpc*: -Dppc8540}  } }"
56 
57 #undef  SUBSUBTARGET_EXTRA_SPECS
58 #define SUBSUBTARGET_EXTRA_SPECS \
59   { "cpp_os_rtems",		CPP_OS_RTEMS_SPEC }
60