Reverting merge from trunk
[official-gcc.git] / gcc / config / mips / gnu-user64.h
blob980cdf801bfe37ebf743d0be709610204cfef8c1
1 /* Definitions for MIPS systems using GNU userspace and n32/64 abi.
2 Copyright (C) 2002-2013 Free Software Foundation, Inc.
4 This file is part of GCC.
6 GCC is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 3, or (at your option)
9 any later version.
11 GCC is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with GCC; see the file COPYING3. If not see
18 <http://www.gnu.org/licenses/>. */
20 /* Force the default endianness and ABI flags onto the command line
21 in order to make the other specs easier to write. */
23 #define LINUX64_DRIVER_SELF_SPECS \
24 LINUX_DRIVER_SELF_SPECS \
25 " %{!EB:%{!EL:%(endian_spec)}}" \
26 " %{!mabi=*: -" MULTILIB_ABI_DEFAULT "}"
28 #undef DRIVER_SELF_SPECS
29 #define DRIVER_SELF_SPECS \
30 BASE_DRIVER_SELF_SPECS, \
31 LINUX64_DRIVER_SELF_SPECS
33 #undef GNU_USER_TARGET_LINK_SPEC
34 #define GNU_USER_TARGET_LINK_SPEC "\
35 %{G*} %{EB} %{EL} %{mips1} %{mips2} %{mips3} %{mips4} \
36 %{shared} \
37 %(endian_spec) \
38 %{!shared: \
39 %{!static: \
40 %{rdynamic:-export-dynamic} \
41 %{mabi=n32: -dynamic-linker " GNU_USER_DYNAMIC_LINKERN32 "} \
42 %{mabi=64: -dynamic-linker " GNU_USER_DYNAMIC_LINKER64 "} \
43 %{mabi=32: -dynamic-linker " GNU_USER_DYNAMIC_LINKER32 "}} \
44 %{static:-static}} \
45 %{mabi=n32:-m" GNU_USER_LINK_EMULATIONN32 "} \
46 %{mabi=64:-m" GNU_USER_LINK_EMULATION64 "} \
47 %{mabi=32:-m" GNU_USER_LINK_EMULATION32 "}"
48 #undef LINK_SPEC
49 #define LINK_SPEC GNU_USER_TARGET_LINK_SPEC
51 #undef LOCAL_LABEL_PREFIX
52 #define LOCAL_LABEL_PREFIX (TARGET_OLDABI ? "$" : ".")