1 /* Definitions of target machine for GNU compiler. 2 64-bit VxWorks SPARC version. 3 Copyright (C) 2001 Free Software Foundation, Inc. 4 5 This file is part of GNU CC. 6 7 GNU CC is free software; you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation; either version 2, or (at your option) 10 any later version. 11 12 GNU CC is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 GNU General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with GNU CC; see the file COPYING. If not, write to 19 the Free Software Foundation, 59 Temple Place - Suite 330, 20 Boston, MA 02111-1307, USA. */ 21 22 23 /* Specify what to link with. */ 24 /* VxWorks does all the library stuff itself. */ 25 #undef LIB_SPEC 26 #define LIB_SPEC "-r" 27 28 /* VxWorks provides the functionality of crt0.o and friends itself. */ 29 #undef STARTFILE_SPEC 30 #undef ENDFILE_SPEC 31 #define STARTFILE_SPEC "" 32 #define ENDFILE_SPEC "" 33 34 #undef LINK_SPEC 35 #define LINK_SPEC "" 36 37 /* We need to prohibit dots in constructor labels so that we can build a 38 table of { string, address } entries for each non-static name in a 39 program. The address, being of the form &name, it cannot contain a dot or 40 C will try to parse it as a &struct.field phrase. */ 41 #undef NO_DOLLAR_IN_LABEL 42 #undef DOLLARS_IN_IDENTIFIERS 43 #define DOLLARS_IN_IDENTIFIERS 1 44 #define NO_DOT_IN_LABEL 45 46 /* Enable #pragma pack(n) */ 47 #define HANDLE_SYSV_PRAGMA 1 48 49 /* We use stabs for debugging */ 50 #undef PREFERRED_DEBUGGING_TYPE 51 #define PREFERRED_DEBUGGING_TYPE DBX_DEBUG 52 53 /* Longs are still only 32bits for vxWorks, even for UltraSPARC */ 54 #undef LONG_TYPE_SIZE 55 #define LONG_TYPE_SIZE 32 56 57 #undef CPP_ARCH32_SPEC 58 #define CPP_ARCH32_SPEC "-Acpu(sparc) -Amachine(sparc)" 59 #undef CPP_ARCH64_SPEC 60 #define CPP_ARCH64_SPEC \ 61 "-Dsparc64 -D__arch64__ -Acpu(sparc64) -Amachine(sparc64)" 62 63 #undef CPP_PREDEFINES 64 #define CPP_PREDEFINES "-D__vxworks -D__sparc__ -Dsparc -D__GCC_NEW_VARARGS__" 65 66 /* Note that we define CPU here even if the user has specified -ansi. 67 This violates user namespace, but the VxWorks headers, and potentially 68 user code, all explicitly rely upon the definition of CPU in order to get 69 the proper processor information. */ 70 #undef CPP_SPEC 71 #define CPP_SPEC "%(cpp_cpu) %(cpp_arch) -DCPU=ULTRASPARC -D__CPU__=CPU" 72 73 #undef TARGET_DEFAULT 74 #define TARGET_DEFAULT (MASK_APP_REGS | MASK_FPU \ 75 | MASK_LONG_DOUBLE_128 | MASK_64BIT) 76 77 #undef SPARC_DEFAULT_CMODEL 78 #define SPARC_DEFAULT_CMODEL CM_MEDLOW 79 80 #undef PTRDIFF_TYPE 81 #undef SIZE_TYPE 82 #undef WCHAR_TYPE 83 #undef WCHAR_TYPE_SIZE 84 85 #define PTRDIFF_TYPE "long int" 86 #define SIZE_TYPE "unsigned int" 87 #define WCHAR_TYPE "char" 88 #define WCHAR_TYPE_SIZE 8 89 90 /* US Software GOFAST library support. */ 91 #undef INIT_SUBTARGET_OPTABS 92 #define INIT_SUBTARGET_OPTABS INIT_GOFAST_OPTABS 93