2004-01-06 Eric Christopher <echristo@redhat.com>
[official-gcc.git] / gcc / config / mips / iris5gas.h
blob6abd98c3f185099fd115473abfa2cd57b8b101f5
1 /* Definitions of target machine for GNU compiler. Irix version 5 with gas.
2 Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003
3 Free Software Foundation, Inc.
5 This file is part of GCC.
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.
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.
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, 59 Temple Place - Suite 330,
20 Boston, MA 02111-1307, USA. */
22 /* GNU as does handle DWARF2 directives. */
23 #undef DWARF2_UNWIND_INFO
24 #define DWARF2_UNWIND_INFO 1
26 /* Override iris5.h version to invoke [cd]tors and register eh frame
27 information. */
28 #undef LINK_SPEC
29 #define LINK_SPEC "\
30 %{G*} %{EB} %{EL} %{mips1} %{mips2} %{mips3} \
31 %{bestGnum} %{shared} %{non_shared} \
32 %{call_shared} %{no_archive} %{exact_version} \
33 %{static: -non_shared} \
34 %{!static: \
35 %{!shared:%{!non_shared:%{!call_shared: -call_shared -no_unresolved}}}} \
36 %{rpath} -init __do_global_ctors -fini __do_global_dtors \
37 %{shared:-hidden_symbol __do_global_ctors,__do_global_ctors_1,__do_global_dtors} \
38 -_SYSTYPE_SVR4"
40 /* Override iris5.h versions to include crtbegin.o and crtend.o. */
42 #undef STARTFILE_SPEC
43 #define STARTFILE_SPEC "\
44 %{!static: \
45 %{!shared:%{pg:gcrt1.o%s}%{!pg:%{p:mcrt1.o%s libprof1.a%s}%{!p:crt1.o%s}}}} \
46 %{static: \
47 %{pg:gcrt1.o%s} \
48 %{!pg:%{p:/usr/lib/nonshared/mcrt1.o%s libprof1.a%s} \
49 %{!p:/usr/lib/nonshared/crt1.o%s}}} \
50 crtbegin.o%s"
52 #undef ENDFILE_SPEC
53 #define ENDFILE_SPEC "crtend.o%s %{!shared:crtn.o%s}"
55 /* Irix 5 does not have some strange restrictions that Irix 3 had. */
56 #undef SET_FILE_NUMBER
57 #define SET_FILE_NUMBER() ++num_source_filenames
58 #undef LABEL_AFTER_LOC
59 #define LABEL_AFTER_LOC(STREAM)
61 /* We need to use .esize and .etype instead of .size and .type to
62 avoid conflicting with ELF directives. These are only recognized
63 by gas, anyhow, not the native assembler. */
64 #undef PUT_SDB_SIZE
65 #define PUT_SDB_SIZE(a) \
66 do { \
67 fprintf (asm_out_file, "\t.esize\t" HOST_WIDE_INT_PRINT_DEC ";", \
68 (HOST_WIDE_INT) (a)); \
69 } while (0)
71 #undef PUT_SDB_TYPE
72 #define PUT_SDB_TYPE(a) \
73 do { \
74 fprintf (asm_out_file, "\t.etype\t0x%x;", (a)); \
75 } while (0)
77 /* Switch into a generic section. */
78 #undef TARGET_ASM_NAMED_SECTION
79 #define TARGET_ASM_NAMED_SECTION default_elf_asm_named_section
81 /* Add -g to mips.h default to avoid confusing gas with local symbols
82 generated from stabs info. */
83 #undef NM_FLAGS
84 #define NM_FLAGS "-Bng"
86 /* Disable SHF_MERGE support. Even if gas supports it, the IRIX ld does not
87 without a special elspec(5) file.
89 FIXME: Only do this if not using GNU ld. */
90 #undef HAVE_GAS_SHF_MERGE
91 #define HAVE_GAS_SHF_MERGE 0