OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [gcc-4.5.1/] [gcc/] [config/] [mips/] [iris6.h] - Blame information for rev 843

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 282 jeremybenn
/* Definitions of target machine for GNU compiler.  IRIX version 6.
2
   Copyright (C) 1994, 1995, 1996, 1997, 1998, 2000, 2001, 2002, 2003, 2004,
3
   2005, 2006, 2007, 2008, 2010
4
   Free Software Foundation, Inc.
5
 
6
This file is part of GCC.
7
 
8
GCC is free software; you can redistribute it and/or modify
9
it under the terms of the GNU General Public License as published by
10
the Free Software Foundation; either version 3, or (at your option)
11
any later version.
12
 
13
GCC is distributed in the hope that it will be useful,
14
but WITHOUT ANY WARRANTY; without even the implied warranty of
15
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
GNU General Public License for more details.
17
 
18
You should have received a copy of the GNU General Public License
19
along with GCC; see the file COPYING3.  If not see
20
<http://www.gnu.org/licenses/>.  */
21
 
22
/* Allow some special handling for IRIX 6.  */
23
#undef TARGET_IRIX6
24
#define TARGET_IRIX6 1
25
 
26
/* Default to -mabi=n32 and -mips3.  */
27
#undef MULTILIB_DEFAULTS
28
#define MULTILIB_DEFAULTS { "mabi=n32" }
29
 
30
/* Force the default ABI onto the command line in order to make the specs
31
   easier to write.  Default to the mips2 ISA for the O32 ABI.  */
32
#undef DRIVER_SELF_SPECS
33
#define DRIVER_SELF_SPECS                       \
34
  "%{!mabi=*: -mabi=n32}",                      \
35
  "%{mabi=32: %{!mips*: %{!march*: -mips2}}}",  \
36
  /* Configuration-independent MIPS rules.  */  \
37
  BASE_DRIVER_SELF_SPECS
38
 
39
/* Force the generation of dwarf .debug_frame sections even if not
40
   compiling -g.  This guarantees that we can unwind the stack.  */
41
#define DWARF2_FRAME_INFO 1
42
 
43
/* The system unwinder in libexc requires a specific dwarf return address
44
   column to work.  */
45
#undef  DWARF_FRAME_RETURN_COLUMN
46
#define DWARF_FRAME_RETURN_COLUMN (FP_REG_LAST + 1)
47
 
48
#undef MACHINE_TYPE
49
#define MACHINE_TYPE "SGI running IRIX 6.x"
50
 
51
#ifdef IRIX_USING_GNU_LD
52
#define IRIX_SUBTARGET_LINK_SPEC \
53
  "%{mabi=32: -melf32bsmip}%{mabi=n32: -melf32bmipn32}%{mabi=64: -melf64bmip}"
54
#else
55
  /* Explicitly hide crt symbols that would normally be marked with
56
     a "hidden" visibility attribute.
57
 
58
     We have traditionally disabled this attribute when using the
59
     native linker because the native linker's visibility support is
60
     not fully-compatible with the GNU linker's.  In particular, the
61
     native linker does not pull in archive objects purely to resolve
62
     references to the object's hidden symbols, whereas the GNU
63
     linker does.
64
 
65
     The gcc build system currently hides symbols in some static
66
     libraries (typically libgcov.a or libgcc.a) whenever visibility
67
     attributes are supported.  On targets with GNU semantics, this
68
     makes sure that uses of libx.so symbols in one dynamic object are
69
     not resolved to libx.a symbols in another dynamic object.  But
70
     on targets with IRIX semantics, hiding the symbols prevents the
71
     static archive from working at all.
72
 
73
     It would probably be better to enable visiblity attributes for
74
     IRIX ld and disable the static archives versioning.  It shouldn't
75
     make anything worse, since libx.a symbols are global by default
76
     anyway.  However, no-one has volunteered to do this yet.  */
77
 
78
#define IRIX_SUBTARGET_LINK_SPEC \
79
  "%{w} -_SYSTYPE_SVR4 -woff 131 \
80
   %{shared:-hidden_symbol __dso_handle} \
81
   %{mabi=32: -32}%{mabi=n32: -n32}%{mabi=64: -64}%{!mabi*: -n32}"
82
#endif
83
 
84
/* Profiling is supported via libprof1.a not -lc_p as in IRIX 3.  */
85
#undef STARTFILE_SPEC
86
#define STARTFILE_SPEC \
87
  "%{!shared: \
88
     %{mabi=32:%{pg:gcrt1.o%s} \
89
       %{!pg:%{p:mcrt1.o%s libprof1.a%s}%{!p:crt1.o%s}}} \
90
     %{mabi=n32: \
91
       %{mips4:%{pg:/usr/lib32/mips4/gcrt1.o%s} \
92
         %{!pg:%{p:/usr/lib32/mips4/mcrt1.o%s /usr/lib32/mips4/libprof1.a%s} \
93
           %{!p:/usr/lib32/mips4/crt1.o%s}}} \
94
       %{!mips4:%{pg:/usr/lib32/mips3/gcrt1.o%s} \
95
         %{!pg:%{p:/usr/lib32/mips3/mcrt1.o%s /usr/lib32/mips3/libprof1.a%s} \
96
           %{!p:/usr/lib32/mips3/crt1.o%s}}}} \
97
     %{mabi=64: \
98
       %{mips4:%{pg:/usr/lib64/mips4/gcrt1.o} \
99
         %{!pg:%{p:/usr/lib64/mips4/mcrt1.o /usr/lib64/mips4/libprof1.a} \
100
           %{!p:/usr/lib64/mips4/crt1.o}}} \
101
       %{!mips4:%{pg:/usr/lib64/mips3/gcrt1.o} \
102
         %{!pg:%{p:/usr/lib64/mips3/mcrt1.o /usr/lib64/mips3/libprof1.a} \
103
           %{!p:/usr/lib64/mips3/crt1.o}}}}} \
104
  irix-crti.o%s crtbegin.o%s"
105
 
106
#undef LIB_SPEC
107
#define LIB_SPEC \
108
  "%{mabi=n32: %{mips4:-L/usr/lib32/mips4} %{!mips4:-L/usr/lib32/mips3} \
109
     -L/usr/lib32} \
110
   %{mabi=64: %{mips4:-L/usr/lib64/mips4} %{!mips4:-L/usr/lib64/mips3} \
111
     -L/usr/lib64} \
112
   %{!shared:" \
113
     SUBTARGET_DONT_WARN_UNUSED_SPEC \
114
     " %{pthread:-lpthread} %{p:libprof1.a%s}%{pg:libprof1.a%s} -lc " \
115
     SUBTARGET_WARN_UNUSED_SPEC "}"
116
 
117
/* Avoid getting two warnings for libgcc.a everytime we link.  libgcc.a
118
   contains references to copysignl, so link with libm to resolve them.  */
119
#undef LIBGCC_SPEC
120
#define LIBGCC_SPEC \
121
  SUBTARGET_DONT_WARN_UNUSED_SPEC " -lgcc -lm " SUBTARGET_WARN_UNUSED_SPEC
122
 
123
#undef ENDFILE_SPEC
124
#define ENDFILE_SPEC \
125
  "crtend.o%s irix-crtn.o%s \
126
   %{!shared: \
127
     %{mabi=32:crtn.o%s}\
128
     %{mabi=n32:%{mips4:/usr/lib32/mips4/crtn.o%s}\
129
       %{!mips4:/usr/lib32/mips3/crtn.o%s}}\
130
     %{mabi=64:%{mips4:/usr/lib64/mips4/crtn.o%s}\
131
       %{!mips4:/usr/lib64/mips3/crtn.o%s}}}"
132
 
133
#define MIPS_TFMODE_FORMAT mips_extended_format
134
 
135
#undef SUBTARGET_CPP_SPEC
136
#define SUBTARGET_CPP_SPEC "%{pthread:-D_REENTRANT}"
137
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.