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