1 /* Definitions for GCC. Part of the machine description for CRIS. 2 Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc. 3 Contributed by Axis Communications. Written by Hans-Peter Nilsson. 4 5 This file is part of GCC. 6 7 GCC 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 GCC 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 GCC; see the file COPYING. If not, write to 19 the Free Software Foundation, 51 Franklin Street, Fifth Floor, 20 Boston, MA 02110-1301, USA. */ 21 22 23 /* After the first "Node:" comment comes all preprocessor directives and 24 attached declarations described in the info files, the "Using and 25 Porting GCC" manual (uapgcc), in the same order as found in the "Target 26 macros" section in the gcc-2.9x CVS edition of 2000-03-17. FIXME: Not 27 really, but needs an update anyway. 28 29 There is no generic copy-of-uapgcc comment, you'll have to see uapgcc 30 for that. If applicable, there is a CRIS-specific comment. The order 31 of macro definitions follow the order in the manual. Every section in 32 the manual (node in the info pages) has an introductory `Node: 33 <subchapter>' comment. If no macros are defined for a section, only 34 the section-comment is present. */ 35 36 /* This file defines the macros for cris-axis-linux-gnu that are not 37 covered by cris.h, elfos.h and (config/)linux.h. */ 38 39 40 /* Node: Instruction Output */ 41 42 #undef USER_LABEL_PREFIX 43 #define USER_LABEL_PREFIX "" 44 45 /* Node: Driver */ 46 /* These macros are CRIS-specific, but used in target driver macros. */ 47 48 #undef CRIS_CPP_SUBTARGET_SPEC 49 #define CRIS_CPP_SUBTARGET_SPEC \ 50 "%{pthread:-D_REENTRANT}\ 51 %{!march=*:%{!cpu=*:-D__arch_v10 -D__CRIS_arch_version=10}}" 52 53 #undef CRIS_CC1_SUBTARGET_SPEC 54 #define CRIS_CC1_SUBTARGET_SPEC \ 55 "%{!march=*:%{!cpu=*:-march=v10}}" 56 57 #undef CRIS_ASM_SUBTARGET_SPEC 58 #define CRIS_ASM_SUBTARGET_SPEC \ 59 "--em=criself\ 60 %{!fleading-underscore:--no-underscore}\ 61 %{fPIC|fpic|fPIE|fpie: --pic}" 62 63 /* Previously controlled by target_flags. */ 64 #undef TARGET_LINUX 65 #define TARGET_LINUX 1 66 67 #undef CRIS_SUBTARGET_DEFAULT 68 #define CRIS_SUBTARGET_DEFAULT \ 69 (MASK_SVINTO \ 70 + MASK_ETRAX4_ADD \ 71 + MASK_ALIGN_BY_32) 72 73 #undef CRIS_DEFAULT_CPU_VERSION 74 #define CRIS_DEFAULT_CPU_VERSION CRIS_CPU_NG 75 76 #undef CRIS_SUBTARGET_VERSION 77 #define CRIS_SUBTARGET_VERSION " - cris-axis-linux-gnu" 78 79 /* We need an -rpath-link to ld.so.1, and presumably to each directory 80 specified with -B. */ 81 #undef CRIS_LINK_SUBTARGET_SPEC 82 #define CRIS_LINK_SUBTARGET_SPEC \ 83 "-mcrislinux\ 84 -rpath-link include/asm/../..%s\ 85 %{shared} %{static}\ 86 %{symbolic:-Bdynamic} %{shlib:-Bdynamic} %{static:-Bstatic}\ 87 %{!shared:%{!static:%{rdynamic:-export-dynamic}}}\ 88 %{!r:%{O2|O3: --gc-sections}}" 89 90 91 /* Node: Run-time Target */ 92 93 /* For the cris-*-linux* subtarget. */ 94 #undef TARGET_OS_CPP_BUILTINS 95 #define TARGET_OS_CPP_BUILTINS() \ 96 do \ 97 { \ 98 LINUX_TARGET_OS_CPP_BUILTINS(); \ 99 if (flag_pic) \ 100 { \ 101 builtin_define ("__PIC__"); \ 102 builtin_define ("__pic__"); \ 103 } \ 104 if (flag_leading_underscore <= 0) \ 105 builtin_define ("__NO_UNDERSCORES__"); \ 106 } \ 107 while (0) 108 109 110 /* Node: Sections */ 111 112 /* GNU/Linux has crti and crtn and does not need the 113 CRT_CALL_STATIC_FUNCTION trick in cris.h. */ 114 #undef CRT_CALL_STATIC_FUNCTION 115 116 /* 117 * Local variables: 118 * eval: (c-set-style "gnu") 119 * indent-tabs-mode: t 120 * End: 121 */ 122