OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [config/] [arm/] [vxworks.h] - Blame information for rev 737

Go to most recent revision | Details | Compare with Previous | View Log

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

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.