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

Subversion Repositories openrisc_me

[/] [openrisc/] [trunk/] [gnu-src/] [gcc-4.5.1/] [gcc/] [config/] [interix.h] - Blame information for rev 328

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

Line No. Rev Author Line
1 282 jeremybenn
/* Operating system specific defines to be used when targeting GCC for
2
   Interix
3
   Copyright (C) 1994, 1995, 1999, 2002, 2004, 2007
4
   Free Software Foundation, Inc.
5
   Donn Terry, Softway Systems, Inc. (donn@softway.com)
6
   Modified from code
7
      Contributed by Douglas B. Rupp (drupp@cs.washington.edu).
8
 
9
This file is part of GCC.
10
 
11
GCC is free software; you can redistribute it and/or modify
12
it under the terms of the GNU General Public License as published by
13
the Free Software Foundation; either version 3, or (at your option)
14
any later version.
15
 
16
GCC is distributed in the hope that it will be useful,
17
but WITHOUT ANY WARRANTY; without even the implied warranty of
18
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19
GNU General Public License for more details.
20
 
21
You should have received a copy of the GNU General Public License
22
along with GCC; see the file COPYING3.  If not see
23
<http://www.gnu.org/licenses/>.  */
24
 
25
/* POSIX/Uni-thread only for now.  Look at the winnt version
26
for windows/multi thread */
27
 
28
/* We need multiple -lc -lcpsx because they mutually refer;
29
   that should go away someday */
30
 
31
#undef LIB_SPEC
32
#define LIB_SPEC "\
33
 %{!shared:%{!dynamic:-lc -lcpsx -lc -lcpsx %$INTERIX_ROOT/usr/lib/psxdll.a \
34
 %$INTERIX_ROOT/usr/lib/psxdll2.a \
35
 }} \
36
 %{!G:%{!dynamic:-lc -lcpsx -lc -lcpsx %$INTERIX_ROOT/usr/lib/psxdll.a \
37
 %$INTERIX_ROOT/usr/lib/psxdll2.a \
38
 }} \
39
 %{dynamic:-lc %$INTERIX_ROOT/usr/lib/psxdll.a \
40
 %$INTERIX_ROOT/usr/lib/psxdll2.a \
41
 } \
42
 %{v}"
43
 
44
#undef LINK_SPEC
45
#define LINK_SPEC "%{!shared:-stack 0x400000,0x10000} \
46
                   -subsystem posix \
47
                   %{g} \
48
                   %{dynamic:-Bdynamic} \
49
                   %{static:-Bstatic} \
50
                   %{shared:--shared -Bdynamic} \
51
                   %{G:--shared -Bdynamic} \
52
                   %{symbolic:--shared -Bsymbolic -Bdynamic} \
53
                   %{soname*:--soname %*} \
54
                   %{rpath*:--rpath %*} \
55
                   "
56
 
57
#undef STARTFILE_SPEC
58
#define STARTFILE_SPEC  \
59
  "%{!shared:%{pg:gcrt0%O%s}%{!pg:%{p:mcrt0%O%s}%{!p:crt0%O%s}}} %{shared:crti%O%s}"
60
 
61
#undef WORD_SWITCH_TAKES_ARG
62
#define WORD_SWITCH_TAKES_ARG(STR)                                      \
63
 ((DEFAULT_WORD_SWITCH_TAKES_ARG (STR)                                  \
64
 || !strcmp(STR, "rpath"))                                              \
65
  && strcmp (STR, "Tdata") && strcmp (STR, "Ttext")                     \
66
  && strcmp (STR, "Tbss"))
67
 
68
 
69
#define STDC_0_IN_SYSTEM_HEADERS 1
70
 
71
#define HANDLE_SYSV_PRAGMA 1
72
#undef HANDLE_PRAGMA_WEAK  /* until the link format can handle it */
73
 
74
/* Names to predefine in the preprocessor for this target machine.  */
75
 
76
#define DBX_DEBUGGING_INFO 1
77
#define SDB_DEBUGGING_INFO 1
78
#undef PREFERRED_DEBUGGING_TYPE
79
#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG
80
 
81
 
82
/* TARGET_DEFAULT from configure */
83
 
84
#undef WCHAR_TYPE
85
#undef WCHAR_TYPE_SIZE
86
#define WCHAR_TYPE "short unsigned int"
87
#define WCHAR_TYPE_SIZE 16
88
 
89
/* Our strategy for finding global constructors is a bit different, although
90
   not a lot.  */
91
#define DO_GLOBAL_CTORS_BODY                                            \
92
do {                                                                    \
93
  int i;                                                                \
94
  unsigned long nptrs;                                                  \
95
  func_ptr *p;                                                          \
96
  asm(                                                                  \
97
       "     .section .ctor_head, \"rw\"\n"                             \
98
       "1:\n"                                                           \
99
       "     .text \n"                                                  \
100
       ASM_LOAD_ADDR(1b,%0)                                              \
101
       : "=r" (p) : : "cc");                                            \
102
  for (nptrs = 0; p[nptrs] != 0; nptrs++);                                \
103
  for (i = nptrs-1; i >= 0; i--)                                 \
104
    p[i] ();                                                            \
105
} while (0)
106
 
107
#define DO_GLOBAL_DTORS_BODY                                            \
108
do {                                                                    \
109
  func_ptr *p;                                                          \
110
  asm(                                                                  \
111
       "     .section .dtor_head, \"rw\"\n"                             \
112
       "1:\n"                                                           \
113
       "     .text \n"                                                  \
114
       ASM_LOAD_ADDR(1b,%0)                                              \
115
       : "=r" (p) : : "cc");                                            \
116
  while (*p)                                                            \
117
    {                                                                   \
118
      p++;                                                              \
119
      (*(p-1)) ();                                                      \
120
    }                                                                   \
121
} while (0)

powered by: WebSVN 2.1.0

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