1/* Target-independent configuration for VxWorks and VxWorks AE.
2   Copyright (C) 2005 Free Software Foundation, Inc.
3   Contributed by by CodeSourcery, LLC.
4
5This file is part of GCC.
6
7GCC is free software; you can redistribute it and/or modify it under
8the terms of the GNU General Public License as published by the Free
9Software Foundation; either version 2, or (at your option) any later
10version.
11
12GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13WARRANTY; without even the implied warranty of MERCHANTABILITY or
14FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
15for more details.
16
17You should have received a copy of the GNU General Public License
18along with GCC; see the file COPYING.  If not, write to the Free
19Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
2002110-1301, USA.  */
21
22/* VxWorks headers are C++-aware.  */
23#undef  NO_IMPLICIT_EXTERN_C
24#define NO_IMPLICIT_EXTERN_C
25
26/* Most of these will probably be overridden by subsequent headers.  We
27   undefine them here just in case, and define VXWORKS_ versions of each,
28   to be used in port-specific vxworks.h.  */
29#undef LIB_SPEC
30#undef LINK_SPEC
31#undef LIBGCC_SPEC
32#define LIBGCC_SPEC VXWORKS_LIBGCC_SPEC
33#undef STARTFILE_SPEC
34#undef ENDFILE_SPEC
35
36/* Most of these macros are overridden in "config/vxworks.h" or
37   "config/vxworksae.h" and are here merely for documentation
38   purposes.  */
39#define VXWORKS_ADDITIONAL_CPP_SPEC ""
40#define	VXWORKS_LIB_SPEC ""
41#define VXWORKS_LINK_SPEC ""
42#define VXWORKS_LIBGCC_SPEC ""
43#define	VXWORKS_STARTFILE_SPEC ""
44#define VXWORKS_ENDFILE_SPEC ""
45
46/* VxWorks cannot have dots in constructor labels, because it uses a
47   mutant variation of collect2 that generates C code instead of
48   assembly.  Thus each constructor label must be a legitimate C
49   symbol.  FIXME: Have VxWorks use real collect2 instead.  */
50#undef NO_DOLLAR_IN_LABEL
51#define NO_DOT_IN_LABEL
52
53/* VxWorks uses wchar_t == unsigned short (UCS2) on all architectures.  */
54#undef WCHAR_TYPE
55#define WCHAR_TYPE "short unsigned int"
56#undef WCHAR_TYPE_SIZE
57#define WCHAR_TYPE_SIZE 16
58
59/* Dwarf2 unwind info is not supported.  */
60#define DWARF2_UNWIND_INFO 0
61
62/* VxWorks uses DWARF2.  */
63#define DWARF2_DEBUGGING_INFO 1
64#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG
65
66/* None of these other formats is supported.  */
67#undef DWARF_DEBUGGING_INFO
68#undef DBX_DEBUGGING_INFO
69#undef SDB_DEBUGGING_INFO
70#undef XCOFF_DEBUGGING_INFO
71#undef VMS_DEBUGGING_INFO
72
73/* Kernel mode doesn't have ctors/dtors, but RTP mode does.  */
74#define TARGET_HAVE_CTORS_DTORS false
75#define VXWORKS_OVERRIDE_OPTIONS /* empty */
76
77/* No math library needed.  */
78#define MATH_LIBRARY ""
79
80/* No profiling.  */
81#define VXWORKS_FUNCTION_PROFILER(FILE, LABELNO) do	\
82{							\
83  sorry ("profiler support for VxWorks");		\
84} while (0)
85
86/* We occasionally need to distinguish between the VxWorks variants.  */
87#define VXWORKS_KIND_NORMAL  1
88#define VXWORKS_KIND_AE      2
89