1169689Skan/* Target-independent configuration for VxWorks and VxWorks AE. 2169689Skan Copyright (C) 2005 Free Software Foundation, Inc. 3169689Skan Contributed by by CodeSourcery, LLC. 4169689Skan 5169689SkanThis file is part of GCC. 6169689Skan 7169689SkanGCC is free software; you can redistribute it and/or modify it under 8169689Skanthe terms of the GNU General Public License as published by the Free 9169689SkanSoftware Foundation; either version 2, or (at your option) any later 10169689Skanversion. 11169689Skan 12169689SkanGCC is distributed in the hope that it will be useful, but WITHOUT ANY 13169689SkanWARRANTY; without even the implied warranty of MERCHANTABILITY or 14169689SkanFITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License 15169689Skanfor more details. 16169689Skan 17169689SkanYou should have received a copy of the GNU General Public License 18169689Skanalong with GCC; see the file COPYING. If not, write to the Free 19169689SkanSoftware Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 20169689Skan02110-1301, USA. */ 21169689Skan 22169689Skan/* VxWorks headers are C++-aware. */ 23169689Skan#undef NO_IMPLICIT_EXTERN_C 24169689Skan#define NO_IMPLICIT_EXTERN_C 25169689Skan 26169689Skan/* Most of these will probably be overridden by subsequent headers. We 27169689Skan undefine them here just in case, and define VXWORKS_ versions of each, 28169689Skan to be used in port-specific vxworks.h. */ 29169689Skan#undef LIB_SPEC 30169689Skan#undef LINK_SPEC 31169689Skan#undef LIBGCC_SPEC 32169689Skan#define LIBGCC_SPEC VXWORKS_LIBGCC_SPEC 33169689Skan#undef STARTFILE_SPEC 34169689Skan#undef ENDFILE_SPEC 35169689Skan 36169689Skan/* Most of these macros are overridden in "config/vxworks.h" or 37169689Skan "config/vxworksae.h" and are here merely for documentation 38169689Skan purposes. */ 39169689Skan#define VXWORKS_ADDITIONAL_CPP_SPEC "" 40169689Skan#define VXWORKS_LIB_SPEC "" 41169689Skan#define VXWORKS_LINK_SPEC "" 42169689Skan#define VXWORKS_LIBGCC_SPEC "" 43169689Skan#define VXWORKS_STARTFILE_SPEC "" 44169689Skan#define VXWORKS_ENDFILE_SPEC "" 45169689Skan 46169689Skan/* VxWorks cannot have dots in constructor labels, because it uses a 47169689Skan mutant variation of collect2 that generates C code instead of 48169689Skan assembly. Thus each constructor label must be a legitimate C 49169689Skan symbol. FIXME: Have VxWorks use real collect2 instead. */ 50169689Skan#undef NO_DOLLAR_IN_LABEL 51169689Skan#define NO_DOT_IN_LABEL 52169689Skan 53169689Skan/* VxWorks uses wchar_t == unsigned short (UCS2) on all architectures. */ 54169689Skan#undef WCHAR_TYPE 55169689Skan#define WCHAR_TYPE "short unsigned int" 56169689Skan#undef WCHAR_TYPE_SIZE 57169689Skan#define WCHAR_TYPE_SIZE 16 58169689Skan 59169689Skan/* Dwarf2 unwind info is not supported. */ 60169689Skan#define DWARF2_UNWIND_INFO 0 61169689Skan 62169689Skan/* VxWorks uses DWARF2. */ 63169689Skan#define DWARF2_DEBUGGING_INFO 1 64169689Skan#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG 65169689Skan 66169689Skan/* None of these other formats is supported. */ 67169689Skan#undef DWARF_DEBUGGING_INFO 68169689Skan#undef DBX_DEBUGGING_INFO 69169689Skan#undef SDB_DEBUGGING_INFO 70169689Skan#undef XCOFF_DEBUGGING_INFO 71169689Skan#undef VMS_DEBUGGING_INFO 72169689Skan 73169689Skan/* Kernel mode doesn't have ctors/dtors, but RTP mode does. */ 74169689Skan#define TARGET_HAVE_CTORS_DTORS false 75169689Skan#define VXWORKS_OVERRIDE_OPTIONS /* empty */ 76169689Skan 77169689Skan/* No math library needed. */ 78169689Skan#define MATH_LIBRARY "" 79169689Skan 80169689Skan/* No profiling. */ 81169689Skan#define VXWORKS_FUNCTION_PROFILER(FILE, LABELNO) do \ 82169689Skan{ \ 83169689Skan sorry ("profiler support for VxWorks"); \ 84169689Skan} while (0) 85169689Skan 86169689Skan/* We occasionally need to distinguish between the VxWorks variants. */ 87169689Skan#define VXWORKS_KIND_NORMAL 1 88169689Skan#define VXWORKS_KIND_AE 2 89