remove unused files
[platform/upstream/gcc48.git] / gcc / config / arm / vxworks.h
1 /* Definitions of target machine for GCC,
2    for ARM with targeting the VXWorks run time environment. 
3    Copyright (C) 1999-2013 Free Software Foundation, Inc.
4
5    Contributed by: Mike Stump <mrs@wrs.com>
6    Brought up to date by CodeSourcery, LLC.
7    
8 This file is part of GCC.
9
10 GCC is free software; you can redistribute it and/or modify
11 it under the terms of the GNU General Public License as published by
12 the Free Software Foundation; either version 3, or (at your option)
13 any later version.
14
15 GCC is distributed in the hope that it will be useful,
16 but WITHOUT ANY WARRANTY; without even the implied warranty of
17 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 GNU General Public License for more details.
19
20 You should have received a copy of the GNU General Public License
21 along with GCC; see the file COPYING3.  If not see
22 <http://www.gnu.org/licenses/>.  */
23
24
25 #define TARGET_OS_CPP_BUILTINS()                \
26   do {                                          \
27     if (TARGET_BIG_END)                         \
28       builtin_define ("ARMEB");                 \
29     else                                        \
30       builtin_define ("ARMEL");                 \
31                                                 \
32     if (arm_arch_xscale)                        \
33       builtin_define ("CPU=XSCALE");            \
34     else if (arm_arch5)                         \
35       builtin_define ("CPU=ARMARCH5");          \
36     else if (arm_arch4)                         \
37       {                                         \
38         if (thumb_code)                         \
39           builtin_define ("CPU=ARMARCH4_T");    \
40         else                                    \
41           builtin_define ("CPU=ARMARCH4");      \
42       }                                         \
43     VXWORKS_OS_CPP_BUILTINS ();                 \
44   } while (0)
45
46 #undef SUBTARGET_OVERRIDE_OPTIONS
47 #define SUBTARGET_OVERRIDE_OPTIONS VXWORKS_OVERRIDE_OPTIONS
48
49 /* Subsume the arm/elf.h definition, and add RTP hooks.  */
50 #undef SUBTARGET_CPP_SPEC
51 #define SUBTARGET_CPP_SPEC "-D__ELF__" VXWORKS_ADDITIONAL_CPP_SPEC
52
53 #undef  CC1_SPEC
54 #define CC1_SPEC                                                        \
55 "%{tstrongarm:-mlittle-endian -mcpu=strongarm ;                         \
56    t4:        -mlittle-endian -march=armv4 ;                            \
57    t4be:      -mbig-endian -march=armv4 ;                               \
58    t4t:       -mthumb -mthumb-interwork -mlittle-endian -march=armv4t ; \
59    t4tbe:     -mthumb -mthumb-interwork -mbig-endian -march=armv4t ;    \
60    t5:        -mlittle-endian -march=armv5 ;                            \
61    t5be:      -mbig-endian -march=armv5 ;                               \
62    t5t:       -mthumb -mthumb-interwork -mlittle-endian -march=armv5 ;  \
63    t5tbe:     -mthumb -mthumb-interwork -mbig-endian -march=armv5 ;     \
64    txscale:   -mlittle-endian -mcpu=xscale ;                            \
65    txscalebe: -mbig-endian -mcpu=xscale ;                               \
66             : -march=armv4}"
67
68 /* Pass -EB for big-endian targets.  */
69 #define VXWORKS_ENDIAN_SPEC \
70   "%{mbig-endian|t4be|t4tbe|t5be|t5tbe|txscalebe:-EB}"
71
72 #undef SUBTARGET_EXTRA_ASM_SPEC
73 #define SUBTARGET_EXTRA_ASM_SPEC VXWORKS_ENDIAN_SPEC
74
75 #undef LINK_SPEC
76 #define LINK_SPEC VXWORKS_LINK_SPEC " " VXWORKS_ENDIAN_SPEC
77
78 #undef LIB_SPEC
79 #define LIB_SPEC VXWORKS_LIB_SPEC
80
81 #undef STARTFILE_SPEC
82 #define STARTFILE_SPEC VXWORKS_STARTFILE_SPEC
83
84 #undef ENDFILE_SPEC
85 #define ENDFILE_SPEC VXWORKS_ENDFILE_SPEC
86
87 /* There is no default multilib.  */
88 #undef MULTILIB_DEFAULTS
89
90 #define FPUTYPE_DEFAULT "vfp"
91
92 #undef FUNCTION_PROFILER
93 #define FUNCTION_PROFILER VXWORKS_FUNCTION_PROFILER
94
95 /* We want to be compatible with a version of "2.96" at one point in
96    the past before this macro was changed.  */
97 #undef DEFAULT_STRUCTURE_SIZE_BOUNDARY
98 #define DEFAULT_STRUCTURE_SIZE_BOUNDARY 8
99
100 /* The kernel loader does not allow relocations to overflow, so we
101    cannot allow arbitrary relocation addends in kernel modules or RTP
102    executables.  Also, the dynamic loader uses the resolved relocation
103    value to distinguish references to the text and data segments, so we
104    cannot allow arbitrary offsets for shared libraries either.  */
105 #undef ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P
106 #define ARM_OFFSETS_MUST_BE_WITHIN_SECTIONS_P 1
107
108 #undef TARGET_DEFAULT_WORD_RELOCATIONS
109 #define TARGET_DEFAULT_WORD_RELOCATIONS 1