diff options
author | obrien <obrien@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-11-20 19:43:28 +0000 |
---|---|---|
committer | obrien <obrien@138bc75d-0d04-0410-961f-82ee72b054a4> | 2001-11-20 19:43:28 +0000 |
commit | 327811ee49a39025d179e9d2119c4054016073c7 (patch) | |
tree | 3991106d03b841cdea1146d4c1e9be1d17017a02 /gcc/config/freebsd.h | |
parent | d984cc458eb6494430712516c01e32b593ce6435 (diff) | |
download | gcc-327811ee49a39025d179e9d2119c4054016073c7.tar.gz |
2001-11-20 David O'Brien <obrien@FreeBSD.org>
* config.gcc: Add FreeBSD/PowerPC target.
(powerpc64-*-linux*, powerpc-*-sysv*, powerpc-*-netbsd*,
powerpc-*-chorusos*, powerpc-*-eabiaix*, powerpc-*-eabisim*,
powerpc-*-elf*, powerpc-*-eabi*, powerpc-*-rtems*,
powerpc-*-linux*libc1, powerpc-*-linux*, powerpc-wrs-vxworks*,
powerpcle-wrs-vxworks*, powerpcle-*-sysv*, powerpcle-*-elf*,
powerpcle-*-eabisim*, powerpcle-*-eabi*, powerpcle-*-solaris2*): Add
freebsd-spec.h to tm_file.
(rs6000-*-lynxos*): Add lynx.h to tm_file.
* config/freebsd.h: Tidy up.
(USING_CONFIG_FREEBSD): Define.
(FBSD_SWITCH_TAKES_ARG, FBSD_WORD_SWITCH_TAKES_ARG,
FBSD_CPP_PREDEFINES, FBSD_CPP_SPEC, FBSD_STARTFILE_SPEC,
FBSD_ENDFILE_SPEC, FBSD_LIB_SPEC): Remove (moved to freebsd-spec.h).
(TARGET_HAS_F_SETLKW): Define.
(ASM_OUTPUT_IDENT): Delete, the elfos.h definition is fine.
* config/freebsd-spec.h: New file.
* config/rs6000/freebsd.h: New file.
* config/rs6000/rs6000.h (TARGET_VERSION): Do not define.
* config/rs6000/rs6000.c: Test for USING_ELFOS_H rather than
USING_SVR4_H to know when to turn on ELF support.
* config/rs6000/sysv4.h (TARGET_VERSION, CPP_PREDEFINES): Don't undef,
define only if not already defined.
Add FreeBSD support.
* config/rs6000/aix.h (TARGET_VERSION): Define.
* config/rs6000/beos.h: Likewise.
* config/rs6000/darwin.h: Likewise.
* config/rs6000/mach.h: Likewise.
* config/rs6000/lynx.h (TARGET_VERSION): Likewise.
Don't include lynx.h directly.
Approved by: Geoff Keating <geoffk@geoffk.org>
Message-Id: <200111192053.MAA11977@geoffk.org>
Stan Shebs <shebs@apple.com> (Darwin bits)
Message-ID: <3BF95F29.794BC924@apple.com>
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@47223 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/freebsd.h')
-rw-r--r-- | gcc/config/freebsd.h | 133 |
1 files changed, 12 insertions, 121 deletions
diff --git a/gcc/config/freebsd.h b/gcc/config/freebsd.h index 779b7e97141..e618beb7652 100644 --- a/gcc/config/freebsd.h +++ b/gcc/config/freebsd.h @@ -27,139 +27,31 @@ Boston, MA 02111-1307, USA. */ Loren J. Rittle <ljrittle@acm.org>. */ -/* To help with rs6000/sysv4.h carnal knowledge problem. */ -#define _USING_CONFIG_FREEBSD 1 +/* In case we need to know. */ +#define USING_CONFIG_FREEBSD 1 /* 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. */ -#define FBSD_SWITCH_TAKES_ARG(CHAR) \ - (DEFAULT_SWITCH_TAKES_ARG (CHAR) \ - || (CHAR) == 'h' \ - || (CHAR) == 'z' /* ignored by ld */ \ - || (CHAR) == 'R') - #undef SWITCH_TAKES_ARG #define SWITCH_TAKES_ARG(CHAR) (FBSD_SWITCH_TAKES_ARG(CHAR)) -/* This defines which multi-letter switches take arguments. */ - -#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 WORD_SWITCH_TAKES_ARG #define WORD_SWITCH_TAKES_ARG(STR) (FBSD_WORD_SWITCH_TAKES_ARG(STR)) -#if FBSD_MAJOR == 6 -#define FBSD_CPP_PREDEFINES \ - "-D__FreeBSD__=6 -Dunix -D__ELF__ -D__KPRINTF_ATTRIBUTE__ -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" -#endif - -#if FBSD_MAJOR == 5 -#define FBSD_CPP_PREDEFINES \ - "-D__FreeBSD__=5 -Dunix -D__ELF__ -D__KPRINTF_ATTRIBUTE__ -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" -#endif - -#if FBSD_MAJOR == 4 -#define FBSD_CPP_PREDEFINES \ - "-D__FreeBSD__=4 -Dunix -D__ELF__ -D__KPRINTF_ATTRIBUTE__ -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" -#endif - -#if FBSD_MAJOR == 3 -#define FBSD_CPP_PREDEFINES \ - "-D__FreeBSD__=3 -Dunix -D__ELF__ -D__KPRINTF_ATTRIBUTE__ -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" -#endif - -#ifndef FBSD_CPP_PREDEFINES -#define FBSD_CPP_PREDEFINES \ - "-D__FreeBSD__ -Dunix -D__ELF__ -D__KPRINTF_ATTRIBUTE__ -Asystem=unix -Asystem=bsd -Asystem=FreeBSD" -#endif - #undef CPP_PREDEFINES #define CPP_PREDEFINES FBSD_CPP_PREDEFINES -/* Provide a CPP_SPEC appropriate for FreeBSD. We just deal with the GCC - option `-posix', and PIC issues. */ - -#define FBSD_CPP_SPEC " \ - %(cpp_cpu) \ - %{fPIC:-D__PIC__ -D__pic__} %{fpic:-D__PIC__ -D__pic__} \ - %{posix:-D_POSIX_SOURCE}" - #undef CPP_SPEC #define CPP_SPEC FBSD_CPP_SPEC -/* Provide a STARTFILE_SPEC appropriate for FreeBSD. Here we add - the magical crtbegin.o file (see crtstuff.c) which provides part - of the support for getting C++ file-scope static object constructed - before entering `main'. */ - -#define FBSD_STARTFILE_SPEC \ - "%{!shared: \ - %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \ - %{!p:%{profile:gcrt1.o%s} \ - %{!profile:crt1.o%s}}}} \ - crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" - -/* Provide a ENDFILE_SPEC appropriate for FreeBSD. Here we tack on - the magical crtend.o file (see crtstuff.c) which provides part of - the support for getting C++ file-scope static object constructed - before entering `main', followed by a normal "finalizer" file, - `crtn.o'. */ - -#define FBSD_ENDFILE_SPEC \ - "%{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s" - -/* Provide a LIB_SPEC appropriate for FreeBSD as configured and as - required by the user-land thread model. Before __FreeBSD_version - 500016, select the appropriate libc, depending on whether we're - doing profiling or need threads support. At __FreeBSD_version - 500016 and later, when threads support is requested include both - -lc and -lc_r instead of only -lc_r. To make matters interesting, - we can't actually use __FreeBSD_version provided by <osreldate.h> - directly since it breaks cross-compiling. As a final twist, make - it a hard error if -pthread is provided on the command line and gcc - was configured with --disable-threads (this will help avoid bug - reports from users complaining about threading when they - misconfigured the gcc bootstrap but are later consulting FreeBSD - manual pages that refer to the mythical -pthread option). */ - -/* 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). */ - -#ifdef FBSD_NO_THREADS -#define FBSD_LIB_SPEC " \ - %{pthread: %eThe -pthread option is only supported on FreeBSD when gcc \ -is built with the --enable-threads configure-time option.} \ - %{!shared: \ - %{!pg: -lc} \ - %{pg: -lc_p} \ - }" -#else -#if FBSD_MAJOR >= 5 -#define FBSD_LIB_SPEC " \ - %{!shared: \ - %{!pg: %{pthread:-lc_r} -lc} \ - %{pg: %{pthread:-lc_r_p} -lc_p} \ - }" -#else -#define FBSD_LIB_SPEC " \ - %{!shared: \ - %{!pg: \ - %{!pthread:-lc} \ - %{pthread:-lc_r}} \ - %{pg: \ - %{!pthread:-lc_p} \ - %{pthread:-lc_r_p}} \ - }" -#endif -#endif +#undef STARTFILE_SPEC +#define STARTFILE_SPEC FBSD_STARTFILE_SPEC + +#undef ENDFILE_SPEC +#define ENDFILE_SPEC FBSD_ENDFILE_SPEC #undef LIB_SPEC #define LIB_SPEC FBSD_LIB_SPEC @@ -197,6 +89,11 @@ is built with the --enable-threads configure-time option.} \ with libraries compiled with the native cc. */ #undef NO_DOLLAR_IN_LABEL +/* 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_HAS_F_SETLKW + /* The prefix to add to user-visible assembler symbols. For System V Release 4 & ELF the convention is *not* to prepend a leading underscore onto user-level symbol names. Some CPU files such as @@ -214,12 +111,6 @@ is built with the --enable-threads configure-time option.} \ #undef IDENT_ASM_OP #define IDENT_ASM_OP "\t.ident\t" -/* Output #ident as a .ident. */ - -#undef ASM_OUTPUT_IDENT -#define ASM_OUTPUT_IDENT(FILE, NAME) \ - fprintf ((FILE), "%s\"%s\"\n", IDENT_ASM_OP, (NAME)); - /************************[ Debugger stuff ]*********************************/ /* All ELF targets can support DWARF-2. */ |