1 /* Common VxWorks AE target definitions for GNU compiler. 2 Copyright (C) 2004-2022 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 /* The AE/653 system headers all predate the introduction of _VX_ prefixes 68 ahead of CPU families of macros. */ 69 #define VX_CPU_PREFIX "" 70 71 /* A VxWorks 653 implementation of TARGET_OS_CPP_BUILTINS. */ 72 #define VXWORKS_OS_CPP_BUILTINS() \ 73 do \ 74 { \ 75 builtin_define ("__vxworks"); \ 76 builtin_define ("__VXWORKS__"); \ 77 } \ 78 while (0) 79 80 /* Do VxWorks-specific parts of TARGET_OPTION_OVERRIDE. */ 81 82 /* None of the VxWorks AE/653/MILS ports to date has native TLS support. */ 83 #define VXWORKS_HAVE_TLS 0 84 85 #undef VXWORKS_OVERRIDE_OPTIONS 86 #define VXWORKS_OVERRIDE_OPTIONS vxworks_override_options () 87 extern void vxworks_override_options (void); 88 89 /* Default dwarf control values, for non-gdb debuggers that come with 90 VxWorks. */ 91 92 #undef VXWORKS_DWARF_VERSION_DEFAULT 93 #define VXWORKS_DWARF_VERSION_DEFAULT 2 94 95 #undef DWARF_GNAT_ENCODINGS_DEFAULT 96 #define DWARF_GNAT_ENCODINGS_DEFAULT DWARF_GNAT_ENCODINGS_ALL 97