* configure.in (c-mbchar): Append, don't overwrite, `extra_c_flags'.
[official-gcc.git] / gcc / config / xm-interix.h
blob756fb5d465f23730dd3747849f30156803908ce0
1 /* Configuration for GNU compiler for processor running Interix
2 Copyright (C) 1993, 1995, 1999 Free Software Foundation, Inc.
3 Donn Terry, Softway Systems, Inc,
4 from code
5 Contributed by Douglas B. Rupp (drupp@cs.washington.edu)
7 This file is part of GNU CC.
9 GNU CC is free software; you can redistribute it and/or modify
10 it under the terms of the GNU General Public License as published by
11 the Free Software Foundation; either version 2, or (at your option)
12 any later version.
14 GNU CC is distributed in the hope that it will be useful,
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17 GNU General Public License for more details.
19 You should have received a copy of the GNU General Public License
20 along with GNU CC; see the file COPYING. If not, write to
21 the Free Software Foundation, 59 Temple Place - Suite 330,
22 Boston, MA 02111-1307, USA. */
24 #ifndef USG
25 #define USG 1
26 #endif
28 #ifndef ONLY_INT_FIELDS
29 #ifndef __GNUC__
30 #define ONLY_INT_FIELDS 1
31 #endif
32 #endif
34 #ifndef USE_PROTOTYPES
35 #define USE_PROTOTYPES 1
36 #endif
38 /* If not compiled with GNU C, use the portable alloca. */
39 #ifndef __GNUC__
40 #define USE_C_ALLOCA 1
41 #endif
43 #define NO_SYS_SIGLIST 1
45 /* Our strategy for finding global constructors is a bit different, although
46 not a lot. */
47 #define DO_GLOBAL_CTORS_BODY \
48 do { \
49 int i; \
50 unsigned long nptrs; \
51 func_ptr *p; \
52 asm( \
53 " .section .ctor_head, \"rw\"\n" \
54 "1:\n" \
55 " .text \n" \
56 ASM_LOAD_ADDR(1b,%0) \
57 : "=r" (p) : : "cc"); \
58 for (nptrs = 0; p[nptrs] != 0; nptrs++); \
59 for (i = nptrs-1; i >= 0; i--) \
60 p[i] (); \
61 } while (0)
63 #define DO_GLOBAL_DTORS_BODY \
64 do { \
65 func_ptr *p; \
66 asm( \
67 " .section .dtor_head, \"rw\"\n" \
68 "1:\n" \
69 " .text \n" \
70 ASM_LOAD_ADDR(1b,%0) \
71 : "=r" (p) : : "cc"); \
72 while (*p) \
73 { \
74 p++; \
75 (*(p-1)) (); \
76 } \
77 } while (0)