1/* Definitions of target machine for GNU compiler, 2 for Alpha Linux-based GNU systems. 3 Copyright (C) 1996, 1997, 1998, 2002, 2003, 2004, 2005 4 Free Software Foundation, Inc. 5 Contributed by Richard Henderson. 6 7This file is part of GCC. 8 9GCC is free software; you can redistribute it and/or modify 10it under the terms of the GNU General Public License as published by 11the Free Software Foundation; either version 2, or (at your option) 12any later version. 13 14GCC is distributed in the hope that it will be useful, 15but WITHOUT ANY WARRANTY; without even the implied warranty of 16MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17GNU General Public License for more details. 18 19You should have received a copy of the GNU General Public License 20along with GCC; see the file COPYING. If not, write to 21the Free Software Foundation, 51 Franklin Street, Fifth Floor, 22Boston, MA 02110-1301, USA. */ 23 24#undef TARGET_DEFAULT 25#define TARGET_DEFAULT (MASK_FPREGS | MASK_GAS) 26 27#define TARGET_OS_CPP_BUILTINS() \ 28 do { \ 29 builtin_define ("__gnu_linux__"); \ 30 builtin_define ("_LONGLONG"); \ 31 builtin_define_std ("linux"); \ 32 builtin_define_std ("unix"); \ 33 builtin_assert ("system=linux"); \ 34 builtin_assert ("system=unix"); \ 35 builtin_assert ("system=posix"); \ 36 /* The GNU C++ standard library requires this. */ \ 37 if (c_dialect_cxx ()) \ 38 builtin_define ("_GNU_SOURCE"); \ 39 if (flag_pic) \ 40 { \ 41 builtin_define ("__PIC__"); \ 42 builtin_define ("__pic__"); \ 43 } \ 44 } while (0) 45 46#undef LIB_SPEC 47#define LIB_SPEC \ 48 "%{pthread:-lpthread} \ 49 %{shared:-lc} \ 50 %{!shared: %{profile:-lc_p}%{!profile:-lc}}" 51 52#undef CPP_SPEC 53#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}" 54 55/* Show that we need a GP when profiling. */ 56#undef TARGET_PROFILING_NEEDS_GP 57#define TARGET_PROFILING_NEEDS_GP 1 58 59/* Don't care about faults in the prologue. */ 60#undef TARGET_CAN_FAULT_IN_PROLOGUE 61#define TARGET_CAN_FAULT_IN_PROLOGUE 1 62 63/* OS fixes up EV5 data fault on prefetch. */ 64#undef TARGET_FIXUP_EV5_PREFETCH 65#define TARGET_FIXUP_EV5_PREFETCH 1 66 67#undef WCHAR_TYPE 68#define WCHAR_TYPE "int" 69 70/* Define this so that all GNU/Linux targets handle the same pragmas. */ 71#define HANDLE_PRAGMA_PACK_PUSH_POP 72 73/* Determine whether the entire c99 runtime is present in the 74 runtime library. */ 75#define TARGET_C99_FUNCTIONS 1 76 77#define TARGET_POSIX_IO 78 79#define LINK_GCC_C_SEQUENCE_SPEC \ 80 "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}" 81 82/* Use --as-needed -lgcc_s for eh support. */ 83#ifdef HAVE_LD_AS_NEEDED 84#define USE_LD_AS_NEEDED 1 85#endif 86 87#define MD_UNWIND_SUPPORT "config/alpha/linux-unwind.h" 88 89/* Define if long doubles should be mangled as 'g'. */ 90#define TARGET_ALTERNATE_LONG_DOUBLE_MANGLING 91