openbsd.h revision 102780
1/* Configuration for an OpenBSD i386 target. 2 Copyright (C) 1999, 2000 Free Software Foundation, Inc. 3 4This file is part of GNU CC. 5 6GNU CC is free software; you can redistribute it and/or modify 7it under the terms of the GNU General Public License as published by 8the Free Software Foundation; either version 2, or (at your option) 9any later version. 10 11GNU CC is distributed in the hope that it will be useful, 12but WITHOUT ANY WARRANTY; without even the implied warranty of 13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14GNU General Public License for more details. 15 16You should have received a copy of the GNU General Public License 17along with GNU CC; see the file COPYING. If not, write to 18the Free Software Foundation, 59 Temple Place - Suite 330, 19Boston, MA 02111-1307, USA. */ 20 21/* This is tested by i386gas.h. */ 22#define YES_UNDERSCORES 23 24#include <i386/gstabs.h> 25 26/* Get generic OpenBSD definitions. */ 27#define OBSD_OLD_GAS 28#include <openbsd.h> 29 30/* This goes away when the math-emulator is fixed */ 31#undef TARGET_SUBTARGET_DEFAULT 32#define TARGET_SUBTARGET_DEFAULT \ 33 (MASK_80387 | MASK_IEEE_FP | MASK_FLOAT_RETURNS | MASK_NO_FANCY_MATH_387) 34 35/* Run-time target specifications */ 36#define CPP_PREDEFINES "-D__unix__ -D__OpenBSD__ \ 37 -Asystem=unix -Asystem=bsd -Asystem=OpenBSD" 38 39/* Layout of source language data types. */ 40 41/* This must agree with <machine/ansi.h> */ 42#undef SIZE_TYPE 43#define SIZE_TYPE "unsigned int" 44 45#undef PTRDIFF_TYPE 46#define PTRDIFF_TYPE "int" 47 48#undef WCHAR_TYPE 49#define WCHAR_TYPE "int" 50 51#undef WCHAR_TYPE_SIZE 52#define WCHAR_TYPE_SIZE 32 53 54/* Assembler format: overall framework. */ 55 56#undef ASM_APP_ON 57#define ASM_APP_ON "#APP\n" 58 59#undef ASM_APP_OFF 60#define ASM_APP_OFF "#NO_APP\n" 61 62/* Stack & calling: aggregate returns. */ 63 64/* Don't default to pcc-struct-return, because gcc is the only compiler, and 65 we want to retain compatibility with older gcc versions. */ 66#define DEFAULT_PCC_STRUCT_RETURN 0 67 68/* Assembler format: alignment output. */ 69 70/* Kludgy test: when gas is upgraded, it will have p2align, and no problems 71 with nops. */ 72#ifndef HAVE_GAS_MAX_SKIP_P2ALIGN 73/* i386 OpenBSD still uses an older gas that doesn't insert nops by default 74 when the .align directive demands to insert extra space in the text 75 segment. */ 76#undef ASM_OUTPUT_ALIGN 77#define ASM_OUTPUT_ALIGN(FILE,LOG) \ 78 if ((LOG)!=0) fprintf ((FILE), "\t.align %d,0x90\n", (LOG)) 79#endif 80 81/* Stack & calling: profiling. */ 82 83/* OpenBSD's profiler recovers all information from the stack pointer. 84 The icky part is not here, but in machine/profile.h. */ 85#undef FUNCTION_PROFILER 86#define FUNCTION_PROFILER(FILE, LABELNO) \ 87 fputs (flag_pic ? "\tcall mcount@PLT\n": "\tcall mcount\n", FILE); 88 89/* Assembler format: exception region output. */ 90 91/* All configurations that don't use elf must be explicit about not using 92 dwarf unwind information. egcs doesn't try too hard to check internal 93 configuration files... */ 94#define DWARF2_UNWIND_INFO 0 95 96#undef ASM_PREFERRED_EH_DATA_FORMAT 97 98 99/* Note that we pick up ASM_OUTPUT_MI_THUNK from unix.h. */ 100 101#undef ASM_COMMENT_START 102#define ASM_COMMENT_START ";#" 103 104/* OpenBSD gas currently does not support quad, so do not use it. */ 105#undef ASM_QUAD 106