]> git.ipfire.org Git - thirdparty/gcc.git/blame - gcc/config/alpha/linux.h
tm.texi.in (HANDLE_SYSV_PRAGMA, [...]): Remove.
[thirdparty/gcc.git] / gcc / config / alpha / linux.h
CommitLineData
c714f03d
RH
1/* Definitions of target machine for GNU compiler,
2 for Alpha Linux-based GNU systems.
24a57808
JM
3 Copyright (C) 1996, 1997, 1998, 2002, 2003, 2004, 2005, 2006, 2007, 2009,
4 2010 Free Software Foundation, Inc.
c714f03d 5 Contributed by Richard Henderson.
ff352cea 6
7ec022b2 7This file is part of GCC.
ff352cea 8
7ec022b2 9GCC is free software; you can redistribute it and/or modify
ff352cea 10it under the terms of the GNU General Public License as published by
2f83c7d6 11the Free Software Foundation; either version 3, or (at your option)
ff352cea
RK
12any later version.
13
7ec022b2 14GCC is distributed in the hope that it will be useful,
ff352cea
RK
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
2f83c7d6
NC
20along with GCC; see the file COPYING3. If not see
21<http://www.gnu.org/licenses/>. */
ff352cea
RK
22
23#undef TARGET_DEFAULT
8bea7f7c 24#define TARGET_DEFAULT (MASK_FPREGS | MASK_GAS)
ff352cea 25
12a41c22
NB
26#define TARGET_OS_CPP_BUILTINS() \
27 do { \
28 builtin_define ("__gnu_linux__"); \
29 builtin_define ("_LONGLONG"); \
30 builtin_define_std ("linux"); \
31 builtin_define_std ("unix"); \
32 builtin_assert ("system=linux"); \
26b0ad13
KG
33 builtin_assert ("system=unix"); \
34 builtin_assert ("system=posix"); \
e0322d5c 35 /* The GNU C++ standard library requires this. */ \
04df6730 36 if (c_dialect_cxx ()) \
e0322d5c 37 builtin_define ("_GNU_SOURCE"); \
12a41c22 38 } while (0)
ff352cea
RK
39
40#undef LIB_SPEC
dbe0297b 41#define LIB_SPEC \
17772b2a
JJ
42 "%{pthread:-lpthread} \
43 %{shared:-lc} \
44 %{!shared: %{profile:-lc_p}%{!profile:-lc}}"
ff352cea 45
f326fd7a 46#undef CPP_SPEC
bdede2ac
MK
47#define CPP_SPEC "%{posix:-D_POSIX_SOURCE} %{pthread:-D_REENTRANT}"
48
ff352cea 49/* Show that we need a GP when profiling. */
4f1c5cce 50#undef TARGET_PROFILING_NEEDS_GP
9c0e94a5
RH
51#define TARGET_PROFILING_NEEDS_GP 1
52
53/* Don't care about faults in the prologue. */
54#undef TARGET_CAN_FAULT_IN_PROLOGUE
55#define TARGET_CAN_FAULT_IN_PROLOGUE 1
4ed442c9 56
14291bc7
RH
57/* OS fixes up EV5 data fault on prefetch. */
58#undef TARGET_FIXUP_EV5_PREFETCH
59#define TARGET_FIXUP_EV5_PREFETCH 1
60
4ed442c9
BK
61#undef WCHAR_TYPE
62#define WCHAR_TYPE "int"
377b6fce 63
47089d42
MK
64#define OPTION_GLIBC (linux_libc == LIBC_GLIBC)
65
a4d05547 66/* Determine whether the entire c99 runtime is present in the
09b568fc 67 runtime library. */
7bd85ce0 68#define TARGET_C99_FUNCTIONS (OPTION_GLIBC)
09b568fc 69
006339cd
RG
70/* Whether we have sincos that follows the GNU extension. */
71#define TARGET_HAS_SINCOS (OPTION_GLIBC)
72
4969c0d8 73#define TARGET_POSIX_IO
90b8be73 74
42df2193
JJ
75#define LINK_GCC_C_SEQUENCE_SPEC \
76 "%{static:--start-group} %G %L %{static:--end-group}%{!static:%G}"
77
8efcd34f
AM
78/* Use --as-needed -lgcc_s for eh support. */
79#ifdef HAVE_LD_AS_NEEDED
80#define USE_LD_AS_NEEDED 1
81#endif
82
8662eb14 83#define MD_UNWIND_SUPPORT "config/alpha/linux-unwind.h"
7269aee7
AH
84
85/* Define if long doubles should be mangled as 'g'. */
86#define TARGET_ALTERNATE_LONG_DOUBLE_MANGLING
d94a427e
AL
87
88/* -mcpu=native handling only makes sense with compiler running on
89 an Alpha chip. */
90#if defined(__alpha__) || defined(__alpha)
91extern const char *host_detect_local_cpu (int argc, const char **argv);
92# define EXTRA_SPEC_FUNCTIONS \
93 { "local_cpu_detect", host_detect_local_cpu },
94
95# define MCPU_MTUNE_NATIVE_SPECS \
96 " %{mcpu=native:%<mcpu=native %:local_cpu_detect(cpu)}" \
97 " %{mtune=native:%<mtune=native %:local_cpu_detect(tune)}"
98#else
99# define MCPU_MTUNE_NATIVE_SPECS ""
100#endif
101
102#define DRIVER_SELF_SPECS MCPU_MTUNE_NATIVE_SPECS