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