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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gcc-4.2.2/] [gcc/] [config/] [vxworks.h] - Blame information for rev 825

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

Line No. Rev Author Line
1 38 julius
/* Common VxWorks target definitions for GNU compiler.
2
   Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2007
3
   Free Software Foundation, Inc.
4
   Contributed by Wind River Systems.
5
   Rewritten by CodeSourcery, LLC.
6
 
7
This file is part of GCC.
8
 
9
GCC is free software; you can redistribute it and/or modify it under
10
the terms of the GNU General Public License as published by the Free
11
Software Foundation; either version 3, or (at your option) any later
12
version.
13
 
14
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
15
WARRANTY; without even the implied warranty of MERCHANTABILITY or
16
FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
17
for more details.
18
 
19
You should have received a copy of the GNU General Public License
20
along with GCC; see the file COPYING3.  If not see
21
<http://www.gnu.org/licenses/>.  */
22
 
23
/* In kernel mode, VxWorks provides all the libraries itself, as well as
24
   the functionality of startup files, etc.  In RTP mode, it behaves more
25
   like a traditional Unix, with more external files.  Most of our specs
26
   must be aware of the difference.  */
27
 
28
/* The directory containing the VxWorks target headers.  */
29
#define VXWORKS_TARGET_DIR  "/home/tornado/base6/target"
30
 
31
/* Since we provide a default -isystem, expand -isystem on the command
32
   line early.  */
33
#undef VXWORKS_ADDITIONAL_CPP_SPEC
34
#define VXWORKS_ADDITIONAL_CPP_SPEC "                                   \
35
 %{!nostdinc:%{isystem*}}                                               \
36
 %{mrtp: -D__RTP__=1                                                    \
37
         %{!nostdinc:-isystem " VXWORKS_TARGET_DIR "/usr/h}}            \
38
 %{!mrtp:-D_WRS_KERNEL=1                                                \
39
         %{!nostdinc:-isystem " VXWORKS_TARGET_DIR "/h}}"
40
 
41
/* The references to __init and __fini will be satisfied by
42
   libc_internal.a.  */
43
#undef VXWORKS_LIB_SPEC
44
#define VXWORKS_LIB_SPEC                                                \
45
"%{mrtp:%{shared:-u " USER_LABEL_PREFIX "__init -u " USER_LABEL_PREFIX "__fini} \
46
        %{!shared:%{non-static:-u " USER_LABEL_PREFIX "_STI__6__rtld -ldl} \
47
                  --start-group -lc -lgcc -lc_internal -lnet -ldsi      \
48
                  --end-group}}"
49
 
50
/* The no-op spec for "-shared" below is present because otherwise GCC
51
   will treat it as an unrecognized option.  */
52
#undef VXWORKS_LINK_SPEC
53
#define VXWORKS_LINK_SPEC                               \
54
"%{!mrtp:-r}                                            \
55
 %{!shared:                                             \
56
   %{mrtp:-q %{h*}                                      \
57
          %{R*} %{!Wl,-T*: %{!T*: %(link_start) }}      \
58
          %(link_target) %(link_os)}}                   \
59
 %{v:-V}                                                \
60
 %{shared:-shared}                                      \
61
 %{Bstatic:-Bstatic}                                    \
62
 %{Bdynamic:-Bdynamic}                                  \
63
 %{!Xbind-lazy:-z now}                                  \
64
 %{Xbind-now:%{Xbind-lazy:                              \
65
   %e-Xbind-now and -Xbind-lazy are incompatible}}      \
66
 %{mrtp:%{!shared:%{!non-static:-static}                \
67
                  %{non-static:--force-dynamic --export-dynamic}}}"
68
 
69
/* For VxWorks, the system provides libc_internal.a.  This is a superset
70
   of libgcc.a; we want to use it.  Make sure not to dynamically export
71
   any of its symbols, though.  Always look for libgcc.a first so that
72
   we get the latest versions of the GNU intrinsics during our builds.  */
73
#undef VXWORKS_LIBGCC_SPEC
74
#define VXWORKS_LIBGCC_SPEC \
75
  "-lgcc %{mrtp:--exclude-libs=libc_internal,libgcc -lc_internal}"
76
 
77
#undef VXWORKS_STARTFILE_SPEC
78
#define VXWORKS_STARTFILE_SPEC "%{mrtp:%{!shared:crt0.o%s}}"
79
#define VXWORKS_ENDFILE_SPEC ""
80
 
81
/* We can use .ctors/.dtors sections only in RTP mode.
82
   Unfortunately this must be an integer constant expression;
83
   fix up in override_options.  */
84
#undef VXWORKS_OVERRIDE_OPTIONS
85
#define VXWORKS_OVERRIDE_OPTIONS do { \
86
  targetm.have_ctors_dtors = TARGET_VXWORKS_RTP; \
87
} while (0)
88
 
89
/* The VxWorks runtime uses a clever trick to get the sentinel entry
90
   (-1) inserted at the beginning of the .ctors segment.  This trick
91
   will not work if we ever generate any entries in plain .ctors
92
   sections; we must always use .ctors.PRIORITY.  */
93
#define ALWAYS_NUMBER_CTORS_SECTIONS 1
94
 
95
/* The name of the symbol for the table of GOTs in a particular
96
   RTP.  */
97
#define VXWORKS_GOTT_BASE "__GOTT_BASE__"
98
/* The name of the symbol for the index into the table of GOTs for the
99
   GOT associated with the current shared library.  */
100
#define VXWORKS_GOTT_INDEX "__GOTT_INDEX__"
101
 
102
#define VXWORKS_KIND VXWORKS_KIND_NORMAL

powered by: WebSVN 2.1.0

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