]>
Commit | Line | Data |
---|---|---|
1 | /* Common VxWorks AE target definitions for GNU compiler. | |
2 | Copyright (C) 2004-2020 Free Software Foundation, Inc. | |
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 | |
9 | Software Foundation; either version 3, or (at your option) any later | |
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 | |
18 | along with GCC; see the file COPYING3. If not see | |
19 | <http://www.gnu.org/licenses/>. */ | |
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 | ||
26 | /* Resolve subdirectory of VxWorks AE target headers. */ | |
27 | #define VXWORKSAE_TARGET_DIR(SUBDIR) "%:getenv(WIND_BASE /target" SUBDIR ")" | |
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 \ | |
37 | %{!nostdinc:-isystem " VXWORKSAE_TARGET_DIR("/vThreads/h") "}} \ | |
38 | %{!mvthreads:-DAE653_BUILD=1 \ | |
39 | %{!nostdinc:-isystem " VXWORKSAE_TARGET_DIR("/h") "}} \ | |
40 | %{!nostdinc:-isystem " VXWORKSAE_TARGET_DIR("/val/h") "}" | |
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 | ||
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 | ||
59 | #undef VXWORKS_STARTFILE_SPEC | |
60 | #define VXWORKS_STARTFILE_SPEC "" | |
61 | ||
62 | #define VXWORKS_KIND VXWORKS_KIND_AE | |
63 | ||
64 | /* Both kernels and RTPs have the facilities required by this macro. */ | |
65 | #define TARGET_POSIX_IO | |
66 | ||
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 | ||
76 | /* Do VxWorks-specific parts of TARGET_OPTION_OVERRIDE. */ | |
77 | ||
78 | /* None of the VxWorks AE/653/MILS ports to date has native TLS support. */ | |
79 | #define VXWORKS_HAVE_TLS 0 | |
80 | ||
81 | #undef VXWORKS_OVERRIDE_OPTIONS | |
82 | #define VXWORKS_OVERRIDE_OPTIONS vxworks_override_options () | |
83 | extern void vxworks_override_options (void); | |
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 |