145135Sobrien/* Base configuration file for all FreeBSD targets. 295811Sobrien Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc. 345135Sobrien 4132738SkanThis file is part of GCC. 545135Sobrien 6132738SkanGCC is free software; you can redistribute it and/or modify 745135Sobrienit under the terms of the GNU General Public License as published by 845135Sobrienthe Free Software Foundation; either version 2, or (at your option) 945135Sobrienany later version. 1045135Sobrien 11132738SkanGCC is distributed in the hope that it will be useful, 1245135Sobrienbut WITHOUT ANY WARRANTY; without even the implied warranty of 1345135SobrienMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 1445135SobrienGNU General Public License for more details. 1545135Sobrien 1645135SobrienYou should have received a copy of the GNU General Public License 17132738Skanalong with GCC; see the file COPYING. If not, write to 18169706Skanthe Free Software Foundation, 51 Franklin Street, Fifth Floor, 19169706SkanBoston, MA 02110-1301, USA. */ 2045135Sobrien 2145135Sobrien/* Common FreeBSD configuration. 2245135Sobrien All FreeBSD architectures should include this file, which will specify 2345135Sobrien their commonalities. 2495811Sobrien Adapted from gcc/config/i386/freebsd-elf.h by 2595811Sobrien David O'Brien <obrien@FreeBSD.org>. 2695811Sobrien Further work by David O'Brien <obrien@FreeBSD.org> and 2795811Sobrien Loren J. Rittle <ljrittle@acm.org>. */ 2845135Sobrien 2952113Sobrien/* $FreeBSD$ */ 3045135Sobrien 3195811Sobrien/* In case we need to know. */ 3295811Sobrien#define USING_CONFIG_FREEBSD 1 3352113Sobrien 3446122Sobrien/* This defines which switch letters take arguments. On FreeBSD, most of 3545135Sobrien the normal cases (defined in gcc.c) apply, and we also have -h* and 3673243Sobrien -z* options (for the linker) (coming from SVR4). 3748474Sobrien We also have -R (alias --rpath), no -z, --soname (-h), --assert etc. */ 3845135Sobrien 3958478Sobrien#undef SWITCH_TAKES_ARG 4073304Sobrien#define SWITCH_TAKES_ARG(CHAR) (FBSD_SWITCH_TAKES_ARG(CHAR)) 4149854Sobrien 4258478Sobrien#undef WORD_SWITCH_TAKES_ARG 4373304Sobrien#define WORD_SWITCH_TAKES_ARG(STR) (FBSD_WORD_SWITCH_TAKES_ARG(STR)) 4449854Sobrien 45117420Skan#undef TARGET_OS_CPP_BUILTINS 46117420Skan#define TARGET_OS_CPP_BUILTINS() FBSD_TARGET_OS_CPP_BUILTINS() 47117420Skan 4858478Sobrien#undef CPP_SPEC 4954807Sobrien#define CPP_SPEC FBSD_CPP_SPEC 5054807Sobrien 5195811Sobrien#undef STARTFILE_SPEC 5295811Sobrien#define STARTFILE_SPEC FBSD_STARTFILE_SPEC 5373304Sobrien 5495811Sobrien#undef ENDFILE_SPEC 5595811Sobrien#define ENDFILE_SPEC FBSD_ENDFILE_SPEC 5695811Sobrien 5758478Sobrien#undef LIB_SPEC 5895811Sobrien#define LIB_SPEC FBSD_LIB_SPEC 5945135Sobrien 6045458Sobrien 6158478Sobrien/************************[ Target stuff ]***********************************/ 6258478Sobrien 6358478Sobrien/* All FreeBSD Architectures support the ELF object file format. */ 6458478Sobrien#undef OBJECT_FORMAT_ELF 6595811Sobrien#define OBJECT_FORMAT_ELF 1 66229715Sandreast#undef TARGET_ELF 67182627Sobrien#define TARGET_ELF 1 6858478Sobrien 6958478Sobrien/* Don't assume anything about the header files. */ 7058478Sobrien#undef NO_IMPLICIT_EXTERN_C 7195811Sobrien#define NO_IMPLICIT_EXTERN_C 1 7258478Sobrien 7395811Sobrien/* Make gcc agree with FreeBSD's standard headers (<machine/ansi.h>, etc...) */ 74182627Sobrien#undef SIZE_TYPE 75182627Sobrien#define SIZE_TYPE FBSD_SIZE_TYPE 76182627Sobrien#undef PTRDIFF_TYPE 77182627Sobrien#define PTRDIFF_TYPE FBSD_PTRDIFF_TYPE 7858478Sobrien 7995811Sobrien#undef WCHAR_TYPE 80117420Skan#define WCHAR_TYPE "int" 81182627Sobrien#undef WCHAR_TYPE_SIZE 82182627Sobrien#define WCHAR_TYPE_SIZE 32 83182627Sobrien#undef WINT_TYPE 84182627Sobrien#define WINT_TYPE "int" 85182627Sobrien#undef WINT_TYPE_SIZE 86182627Sobrien#define WINT_TYPE_SIZE 32 8795811Sobrien 8895811Sobrien#ifdef FREEBSD_NATIVE 8995811Sobrien#define LIBSTDCXX_PROFILE "-lstdc++_p" 9095811Sobrien#endif 9195811Sobrien#define MATH_LIBRARY_PROFILE "-lm_p" 9295811Sobrien 9345135Sobrien/* Code generation parameters. */ 9445135Sobrien 9558478Sobrien/* Writing `int' for a bitfield forces int alignment for the structure. */ 9658478Sobrien/* XXX: ok for Alpha?? */ 9758478Sobrien#undef PCC_BITFIELD_TYPE_MATTERS 9858478Sobrien#define PCC_BITFIELD_TYPE_MATTERS 1 9958478Sobrien 10058478Sobrien/* Use periods rather than dollar signs in special g++ assembler names. 10158478Sobrien This ensures the configuration knows our system correctly so we can link 10258478Sobrien with libraries compiled with the native cc. */ 10345135Sobrien#undef NO_DOLLAR_IN_LABEL 10445135Sobrien 105146939Skan/* Define this so we can compile MS code for use with WINE. */ 106182627Sobrien#define HANDLE_PRAGMA_PACK_PUSH_POP 1 107146939Skan 108169706Skan#define TARGET_POSIX_IO 109