diff options
author | pme <pme@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-08-24 07:13:10 +0000 |
---|---|---|
committer | pme <pme@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-08-24 07:13:10 +0000 |
commit | e6eccdb304362a450c2ae3760cebabe6cc1c5d19 (patch) | |
tree | 043e6201134ccf2fb879689b66262419aefab937 /gcc/config/vx-common.h | |
parent | 29049716afd0fa4a560c538ae1da85b5f688d6c9 (diff) | |
download | gcc-e6eccdb304362a450c2ae3760cebabe6cc1c5d19.tar.gz |
2005-08-22 Phil Edwards <phil@codesourcery.com>
* config.gcc (*-*-vxworks*): Update tm_file, add extra_options,
remove use_collect2.
(powerpc-wrs-vxworks): Update, split out *-*-vxworksae target.
* target-def.h (TARGET_HAVE_CTORS_DTORS): Allow target
configuration files to override the default value.
* config/t-vxworks: Remove INSTALL_ASSERT_H. Define STMP_FIXPROTO,
EXTRA_HEADERS, and EXTRA_MULTILIB_PARTS.
* config/vx-common.h: New file, split out from...
* config/vxworks.h: here. Update for VxWorks 6.x and RTP mode.
* config/vxworksae.h: New file, for VxWorks AE.
* config/vxworks.opt: New file.
* config/vxlib.c: Update for VxWorks 6.
* config/rs6000/t-vxworks (MULTILIB_OPTIONS): New list. Adjust
other MULTILIB_* variables appropriately.
(LIB2FUNCS_EXTRA, EXTRA_MULTILIB_PARTS): Correct from t-ppccomm.
* config/rs6000/t-vxworksae: New file, adjust multilibs for AE.
* config/rs6000/vxworks.h: Update for VxWorks 6.
* config/rs6000/vxworksae.h: New file, mostly placeholder for now.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@103432 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/vx-common.h')
-rw-r--r-- | gcc/config/vx-common.h | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/gcc/config/vx-common.h b/gcc/config/vx-common.h new file mode 100644 index 00000000000..baa37f0e80e --- /dev/null +++ b/gcc/config/vx-common.h @@ -0,0 +1,99 @@ +/* Target-independent configuration for VxWorks and VxWorks AE. + Copyright (C) 2005 Free Software Foundation, Inc. + Contributed by by CodeSourcery, LLC. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 2, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING. If not, write to the Free +Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301, USA. */ + +/* VxWorks headers are C++-aware. */ +#undef NO_IMPLICIT_EXTERN_C +#define NO_IMPLICIT_EXTERN_C + +/* Most of these will probably be overridden by subsequent headers. We + undefine them here just in case, and define VXWORKS_ versions of each, + to be used in port-specific vxworks.h. */ +#undef LIB_SPEC +#undef LINK_SPEC +#undef LIBGCC_SPEC +#define LIBGCC_SPEC VXWORKS_LIBGCC_SPEC +#undef STARTFILE_SPEC +#undef ENDFILE_SPEC + +/* Most of these macros are overridden in "config/vxworks.h" or + "config/vxworksae.h" and are here merely for documentation + purposes. */ +#define VXWORKS_ADDITIONAL_CPP_SPEC "" +#define VXWORKS_LIB_SPEC "" +#define VXWORKS_LINK_SPEC "" +#define VXWORKS_LIBGCC_SPEC "" +#define VXWORKS_STARTFILE_SPEC "" +#define VXWORKS_ENDFILE_SPEC "" + +/* VxWorks cannot have dots in constructor labels, because it uses a + mutant variation of collect2 that generates C code instead of + assembly. Thus each constructor label must be a legitimate C + symbol. FIXME: Have VxWorks use real collect2 instead. */ +#undef NO_DOLLAR_IN_LABEL +#define NO_DOT_IN_LABEL + +/* VxWorks uses wchar_t == unsigned short (UCS2) on all architectures. */ +#undef WCHAR_TYPE +#define WCHAR_TYPE "short unsigned int" +#undef WCHAR_TYPE_SIZE +#define WCHAR_TYPE_SIZE 16 + +/* Dwarf2 unwind info is not supported. */ +#define DWARF2_UNWIND_INFO 0 + +/* VxWorks uses DWARF2. */ +#define DWARF2_DEBUGGING_INFO 1 +#define PREFERRED_DEBUGGING_TYPE DWARF2_DEBUG + +/* None of these other formats is supported. */ +#undef DWARF_DEBUGGING_INFO +#undef DBX_DEBUGGING_INFO +#undef SDB_DEBUGGING_INFO +#undef XCOFF_DEBUGGING_INFO +#undef VMS_DEBUGGING_INFO + +/* Kernel mode doesn't have ctors/dtors, but RTP mode does. */ +#define TARGET_HAVE_CTORS_DTORS false +#define VXWORKS_OVERRIDE_OPTIONS /* empty */ + +/* No math library needed. */ +#define MATH_LIBRARY "" + +/* No profiling. */ +#define VXWORKS_FUNCTION_PROFILER(FILE, LABELNO) do \ +{ \ + sorry ("profiler support for VxWorks"); \ +} while (0) + +/* This section either contains dynamic relocations, or contains + PC-rel indirections to stubs in the data section which contain dynamic + relocations. General dynamic relocations are not processed + for shared libraries' text segments, and PC-relative displacements + from the text segment to the data segment don't work. So force + it to .gcc_except_section, which the linker will place in .data. */ + +void vxworks_exception_section (void); +#undef TARGET_ASM_EXCEPTION_SECTION +#define TARGET_ASM_EXCEPTION_SECTION default_exception_section + +/* We occasionally need to distinguish between the VxWorks variants. */ +#define VXWORKS_KIND_NORMAL 1 +#define VXWORKS_KIND_AE 2 |