]>
Commit | Line | Data |
---|---|---|
2eab15c9 | 1 | /* Common VxWorks AE target definitions for GNU compiler. |
8d9254fc | 2 | Copyright (C) 2004-2020 Free Software Foundation, Inc. |
2eab15c9 PE |
3 | Contributed by CodeSourcery, LLC. |
4 | ||
5 | This file is part of GCC. | |
6 | ||
7 | GCC is free software; you can redistribute it and/or modify it under | |
8 | the terms of the GNU General Public License as published by the Free | |
2f83c7d6 | 9 | Software Foundation; either version 3, or (at your option) any later |
2eab15c9 PE |
10 | version. |
11 | ||
12 | GCC is distributed in the hope that it will be useful, but WITHOUT ANY | |
13 | WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
14 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
15 | for more details. | |
16 | ||
17 | You should have received a copy of the GNU General Public License | |
2f83c7d6 NC |
18 | along with GCC; see the file COPYING3. If not see |
19 | <http://www.gnu.org/licenses/>. */ | |
2eab15c9 PE |
20 | |
21 | /* This header should be included after including vx-common.h. */ | |
22 | ||
23 | /* Most of the definitions below this point are versions of the | |
24 | vxworks.h definitions, without the -mrtp bits. */ | |
25 | ||
2dbf5066 OH |
26 | /* Resolve subdirectory of VxWorks AE target headers. */ |
27 | #define VXWORKSAE_TARGET_DIR(SUBDIR) "%:getenv(WIND_BASE /target" SUBDIR ")" | |
2eab15c9 PE |
28 | |
29 | /* Include target/vThreads/h or target/h (depending on the compilation | |
30 | mode), and then target/val/h (in either mode). The macros defined | |
31 | are in the user's namespace, but the VxWorks headers require | |
32 | them. */ | |
33 | #undef VXWORKS_ADDITIONAL_CPP_SPEC | |
34 | #define VXWORKS_ADDITIONAL_CPP_SPEC " \ | |
35 | %{!nostdinc:%{isystem*}} \ | |
36 | %{mvthreads:-DVTHREADS=1 \ | |
2dbf5066 | 37 | %{!nostdinc:-isystem " VXWORKSAE_TARGET_DIR("/vThreads/h") "}} \ |
2eab15c9 | 38 | %{!mvthreads:-DAE653_BUILD=1 \ |
2dbf5066 OH |
39 | %{!nostdinc:-isystem " VXWORKSAE_TARGET_DIR("/h") "}} \ |
40 | %{!nostdinc:-isystem " VXWORKSAE_TARGET_DIR("/val/h") "}" | |
2eab15c9 PE |
41 | |
42 | #undef VXWORKS_LIB_SPEC | |
43 | #define VXWORKS_LIB_SPEC "" | |
44 | ||
45 | #undef VXWORKS_LINK_SPEC | |
46 | #define VXWORKS_LINK_SPEC \ | |
47 | "-r %{v:-V}" | |
48 | ||
49 | #undef VXWORKS_LIBGCC_SPEC | |
50 | #define VXWORKS_LIBGCC_SPEC \ | |
51 | "-lgcc" | |
52 | ||
59019b15 JL |
53 | /* The VxWorks AE ports features are restricted on purpose. No RTPs, |
54 | for example. */ | |
55 | ||
56 | #undef TARGET_VXWORKS_HAVE_CTORS_DTORS | |
57 | #define TARGET_VXWORKS_HAVE_CTORS_DTORS 0 | |
58 | ||
2eab15c9 PE |
59 | #undef VXWORKS_STARTFILE_SPEC |
60 | #define VXWORKS_STARTFILE_SPEC "" | |
61 | ||
62 | #define VXWORKS_KIND VXWORKS_KIND_AE | |
bcee41ff | 63 | |
9c0c4ec7 JM |
64 | /* Both kernels and RTPs have the facilities required by this macro. */ |
65 | #define TARGET_POSIX_IO | |
66 | ||
bcee41ff OH |
67 | /* A VxWorks 653 implementation of TARGET_OS_CPP_BUILTINS. */ |
68 | #define VXWORKS_OS_CPP_BUILTINS() \ | |
69 | do \ | |
70 | { \ | |
71 | builtin_define ("__vxworks"); \ | |
72 | builtin_define ("__VXWORKS__"); \ | |
73 | } \ | |
74 | while (0) | |
75 | ||
212c47b4 | 76 | /* Do VxWorks-specific parts of TARGET_OPTION_OVERRIDE. */ |
0cbfcdf4 OH |
77 | |
78 | /* None of the VxWorks AE/653/MILS ports to date has native TLS support. */ | |
79 | #define VXWORKS_HAVE_TLS 0 | |
80 | ||
212c47b4 OH |
81 | #undef VXWORKS_OVERRIDE_OPTIONS |
82 | #define VXWORKS_OVERRIDE_OPTIONS vxworks_override_options () | |
83 | extern void vxworks_override_options (void); | |
824a2b3d OH |
84 | |
85 | /* Default dwarf control values, for non-gdb debuggers that come with | |
86 | VxWorks. */ | |
87 | ||
88 | #undef VXWORKS_DWARF_VERSION_DEFAULT | |
89 | #define VXWORKS_DWARF_VERSION_DEFAULT 2 | |
90 | ||
91 | #undef DWARF_GNAT_ENCODINGS_DEFAULT | |
92 | #define DWARF_GNAT_ENCODINGS_DEFAULT DWARF_GNAT_ENCODINGS_ALL |