(root)/
gcc-13.2.0/
gcc/
config/
vxworksae.h
       1  /* Common VxWorks AE target definitions for GNU compiler.
       2     Copyright (C) 2004-2023 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