Initial import from FreeBSD RELENG_4:
[dragonfly.git] / contrib / gcc / config / nextstep21.h
1 /* nextstep.h -- operating system specific defines to be used when
2    targeting GCC for NeXTSTEP.
3    Copyright (C) 1989, 1990, 1991, 1992, 1993 Free Software Foundation, Inc.
4
5 This file is part of GNU CC.
6
7 GNU CC 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.
11
12 GNU CC 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.
16
17 You should have received a copy of the GNU General Public License
18 along with GNU CC; see the file COPYING.  If not, write to
19 the Free Software Foundation, 59 Temple Place - Suite 330,
20 Boston, MA 02111-1307, USA.  */
21
22
23 /* changed for NeXTStep 2.1, Ch. Kranz, 2/94, 3/94 */
24 #include "nextstep.h"
25
26 /* set flag_gnu_linker=0, use collect2 for linking */
27 #undef USE_COLLECT2
28 #define USE_COLLECT2
29
30 /* use this until a newer gdb for NeXTStep21 is available */
31 #define DEFAULT_GDB_EXTENSIONS 0
32
33 /* we need the call to __main to start all global destructors and constructors
34    correctly, so undef INIT_SECTION_ASM_OP, (see libgcc2.c line 1965) 
35    and define INVOKE_main */
36 #undef  INIT_SECTION_ASM_OP
37 #define INVOKE__main
38
39 /* We call the global destructors, constructors from __main */
40 #undef  ASM_OUTPUT_CONSTRUCTOR
41 #undef  ASM_OUTPUT_DESTRUCTOR
42
43 #undef ASM_FILE_END
44 #define ASM_FILE_END(FILE)                                      \
45   do {                                                          \
46     extern char *language_string;                               \
47       if (strcmp (language_string, "GNU C++") == 0)             \
48       {                                                         \
49         ASM_OUTPUT_ALIGN (FILE, 1);                             \
50       }                                                         \
51   } while (0) 
52 /* deleted: destructor_section ();                              \ */
53 /* deleted: constructor_section ();                             \ */
54
55 /* Ensure correct alignment of bss data.  */
56 /* ASM_OUTPUT_ALIGNED_LOCAL not needed */
57 /* need ASM_OUTPUT_LOCAL instead for old NeXT-as */
58 /* look in varasm.c, line 1062 and 1476 */
59 #undef  ASM_OUTPUT_ALIGNED_LOCAL
60 #undef ASM_OUTPUT_LOCAL
61 #define ASM_OUTPUT_LOCAL(FILE, NAME, SIZE, ROUNDED)  \
62 ( fputs (".lcomm ", (FILE)),                    \
63   assemble_name ((FILE), (NAME)),               \
64   fprintf ((FILE), ",%u\n", (ROUNDED)))
65