X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=gcc%2Fconfig%2Ffreebsd.h;h=51caad294be411b3a6ebec59989943cdec8505b4;hb=05caec57fee5b8aa249b286d35b4775f764ab7d6;hp=461f69edf1bf8dc090ad01d6480b34cf80146b9f;hpb=d8e702146571cb87ec50c5bee912c94094ef5030;p=pf3gnuchains%2Fgcc-fork.git diff --git a/gcc/config/freebsd.h b/gcc/config/freebsd.h index 461f69edf1b..51caad294be 100644 --- a/gcc/config/freebsd.h +++ b/gcc/config/freebsd.h @@ -1,141 +1,78 @@ /* Base configuration file for all FreeBSD targets. - Copyright (C) 1999 Free Software Foundation, Inc. + Copyright (C) 1999, 2000, 2001, 2007, 2008, 2009, + 2010 Free Software Foundation, Inc. -This file is part of GNU CC. +This file is part of GCC. -GNU CC is free software; you can redistribute it and/or modify +GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) +the Free Software Foundation; either version 3, or (at your option) any later version. -GNU CC is distributed in the hope that it will be useful, +GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with GNU CC; see the file COPYING. If not, write to -the Free Software Foundation, 59 Temple Place - Suite 330, -Boston, MA 02111-1307, USA. */ +along with GCC; see the file COPYING3. If not see +. */ /* Common FreeBSD configuration. All FreeBSD architectures should include this file, which will specify their commonalities. Adapted from gcc/config/i386/freebsd-elf.h by - David O'Brien . */ + David O'Brien . + Further work by David O'Brien and + Loren J. Rittle . */ -/* This defines which switch letters take arguments. On FreeBSD, most of - the normal cases (defined in gcc.c) apply, and we also have -h* and - -z* options (for the linker) (coming from SVR4). - We also have -R (alias --rpath), no -z, --soname (-h), --assert etc. */ +/* In case we need to know. */ +#define USING_CONFIG_FREEBSD 1 -#define FBSD_SWITCH_TAKES_ARG(CHAR) \ - (DEFAULT_SWITCH_TAKES_ARG (CHAR) \ - || (CHAR) == 'h' \ - || (CHAR) == 'z' /* ignored by ld */ \ - || (CHAR) == 'R') +#undef TARGET_OS_CPP_BUILTINS +#define TARGET_OS_CPP_BUILTINS() FBSD_TARGET_OS_CPP_BUILTINS() -#undef SWITCH_TAKES_ARG -#define SWITCH_TAKES_ARG(CHAR) (FBSD_SWITCH_TAKES_ARG(CHAR)) +#undef CPP_SPEC +#define CPP_SPEC FBSD_CPP_SPEC -#define FBSD_WORD_SWITCH_TAKES_ARG(STR) \ - (DEFAULT_WORD_SWITCH_TAKES_ARG (STR) \ - || !strcmp ((STR), "rpath") || !strcmp ((STR), "rpath-link") \ - || !strcmp ((STR), "soname") || !strcmp ((STR), "defsym") \ - || !strcmp ((STR), "assert") || !strcmp ((STR), "dynamic-linker")) +#undef STARTFILE_SPEC +#define STARTFILE_SPEC FBSD_STARTFILE_SPEC -#undef WORD_SWITCH_TAKES_ARG -#define WORD_SWITCH_TAKES_ARG(STR) (FBSD_WORD_SWITCH_TAKES_ARG(STR)) +#undef ENDFILE_SPEC +#define ENDFILE_SPEC FBSD_ENDFILE_SPEC -/* Provide a CPP_SPEC appropriate for FreeBSD. We just deal with the GCC - option `-posix', and PIC issues. */ +#undef LIB_SPEC +#define LIB_SPEC FBSD_LIB_SPEC -#undef CPP_SPEC -#define CPP_SPEC "%(cpp_cpu) \ - %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} \ - %{posix:-D_POSIX_SOURCE}" +/************************[ Target stuff ]***********************************/ -/* Provide a LIB_SPEC appropriate for FreeBSD. Just select the appropriate - libc, depending on whether we're doing profiling or need threads support. - (simular to the default, except no -lg, and no -p). */ +/* All FreeBSD Architectures support the ELF object file format. */ +#undef OBJECT_FORMAT_ELF +#define OBJECT_FORMAT_ELF -#undef LIB_SPEC -#define LIB_SPEC \ - "%{!shared: \ - %{!pg:%{!pthread:%{!kthread:-lc} \ - %{kthread:-lpthread -lc}} \ - %{pthread:-lc_r}} \ - %{pg:%{!pthread:%{!kthread:-lc_p} \ - %{kthread:-lpthread_p -lc_p}} \ - %{pthread:-lc_r_p}}}" - - -/* Code generation parameters. */ +/* Don't assume anything about the header files. */ +#undef NO_IMPLICIT_EXTERN_C +#define NO_IMPLICIT_EXTERN_C 1 -/* Make gcc agree with . */ +/* Follow FreeBSD's standard headers ( etc...). */ -#undef WCHAR_TYPE +#undef WCHAR_TYPE #define WCHAR_TYPE "int" -#undef WCHAR_UNSIGNED -#define WCHAR_UNSIGNED 0 - -/* Don't default to pcc-struct-return, because gcc is the only compiler, and - we want to retain compatibility with older gcc versions - (even though the SVR4 ABI for the i386 says that records and unions are - returned in memory). */ -#undef DEFAULT_PCC_STRUCT_RETURN -#define DEFAULT_PCC_STRUCT_RETURN 0 - -/* Ensure we the configuration knows our system correctly so we can link with - libraries compiled with the native cc. */ -#undef NO_DOLLAR_IN_LABEL - -/* Use more efficient ``thunks'' to implement C++ vtables. */ -#undef DEFAULT_VTABLE_THUNKS -#define DEFAULT_VTABLE_THUNKS 1 - -/* This is BSD, so use stabs instead of DWARF debug format. */ -#undef PREFERRED_DEBUGGING_TYPE -#define PREFERRED_DEBUGGING_TYPE DBX_DEBUG +#undef WINT_TYPE +#define WINT_TYPE "int" -/* Attach a special .ident directive to the end of the file to identify - the version of GCC which compiled this code. The format of the .ident - string is patterned after the ones produced by native SVR4 C compilers. */ -#undef IDENT_ASM_OP -#define IDENT_ASM_OP ".ident" +#define MATH_LIBRARY_PROFILE "m_p" -/* Output #ident as a .ident. */ -#undef ASM_OUTPUT_IDENT -#define ASM_OUTPUT_IDENT(FILE, NAME) \ - fprintf ((FILE), "\t%s\t\"%s\"\n", IDENT_ASM_OP, (NAME)); - -#undef ASM_IDENTIFY_LANGUAGE -#define ASM_IDENTIFY_LANGUAGE(FILE) \ - fprintf ((FILE), "\t%s \"GCC (%s) %s\"\n", IDENT_ASM_OP, \ - lang_identify (), version_string) - -#undef ASM_FILE_END -#define ASM_FILE_END(FILE) \ -do { \ - if (!flag_no_ident) \ - fprintf ((FILE), "\t%s\t\"GCC: (GNU) %s\"\n", \ - IDENT_ASM_OP, version_string); \ - } while (0) - - -/* Miscellaneous parameters. */ - -/* Don't assume anything about the header files. */ -#undef NO_IMPLICIT_EXTERN_C -#define NO_IMPLICIT_EXTERN_C - -/* Allow #sccs in preprocessor. */ -#define SCCS_DIRECTIVE +/* Code generation parameters. */ -/* Handle #pragma weak and #pragma pack. */ -#define HANDLE_SYSV_PRAGMA +/* Use periods rather than dollar signs in special g++ assembler names. + This ensures the configuration knows our system correctly so we can link + with libraries compiled with the native cc. */ +#undef NO_DOLLAR_IN_LABEL -/* Tell libgcc2.c that FreeBSD targets support atexit(3). */ -#define HAVE_ATEXIT +/* Used by libgcc2.c. We support file locking with fcntl / F_SETLKW. + This enables the test coverage code to use file locking when exiting a + program, which avoids race conditions if the program has forked. */ +#define TARGET_POSIX_IO