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