diff options
| author | David E. O'Brien <obrien@FreeBSD.org> | 1999-08-05 16:06:07 +0000 |
|---|---|---|
| committer | David E. O'Brien <obrien@FreeBSD.org> | 1999-08-05 16:06:07 +0000 |
| commit | 4d4d7bde851d7512fc4a382c73f7a1764511a8f1 (patch) | |
| tree | de1c1d449eb81a2209df468573e633b033aad7ae /lang/gcc295/files/freebsd.h | |
| parent | "foo" and "bar" are not valid categories. :) (diff) | |
Update to GCC-2.95 (what would have been EGCS-1.2).
Diffstat (limited to 'lang/gcc295/files/freebsd.h')
| -rw-r--r-- | lang/gcc295/files/freebsd.h | 63 |
1 files changed, 43 insertions, 20 deletions
diff --git a/lang/gcc295/files/freebsd.h b/lang/gcc295/files/freebsd.h index 5719d55a4b9b..40ed10359025 100644 --- a/lang/gcc295/files/freebsd.h +++ b/lang/gcc295/files/freebsd.h @@ -1,3 +1,4 @@ +/* $Id: freebsd.h,v 1.8 1999/07/25 03:34:38 obrien Exp $ */ /* Base configuration file for all FreeBSD targets. Copyright (C) 1999 Free Software Foundation, Inc. @@ -25,59 +26,81 @@ Boston, MA 02111-1307, USA. */ egcs/gcc/config/i386/freebsd-elf.h version by David O'Brien */ -/* Don't assume anything about the header files. */ +/* Don't assume anything about the header files. */ #undef NO_IMPLICIT_EXTERN_C #define NO_IMPLICIT_EXTERN_C /* 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) (comming from svr4). - We also have -R (alias --rpath), no -z, --soname (-h), --assert etc. */ + 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) \ - (DEFAULT_SWITCH_TAKES_ARG (CHAR) \ - || (CHAR) == 'h' \ - || (CHAR) == 'z' /* ignored by ld */ \ - || (CHAR) == 'R') +#define SWITCH_TAKES_ARG(CHAR) (FBSD_SWITCH_TAKES_ARG(CHAR)) -#undef WORD_SWITCH_TAKES_ARG -#define WORD_SWITCH_TAKES_ARG(STR) \ +#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)) +/* Place spaces around this string. We depend on string splicing to produce + the final CPP_PREDEFINES value. */ #define CPP_FBSD_PREDEFINES " -Dunix -D__FreeBSD__ -Asystem(unix) -Asystem(FreeBSD) " +/* 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). */ + +#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}}}" + +/* Tell gcc to locate libgcc.a for us according to the -m rules. */ +#undef LIBGCC_SPEC +#define LIBGCC_SPEC \ + "%{!shared:%{!pthread:%{!kthread:libgcc.a%s}}%{pthread|kthread:libgcc_r.a%s}}" + /* Code generation parameters. */ /* Don't default to pcc-struct-return, because gcc is the only compiler, and - we want to retain compatibility with older gcc versions. + 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) */ + 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. */ + libraries compiled with the native cc. */ #undef NO_DOLLAR_IN_LABEL -/* Use more efficient ``thunks'' to implement C++ vtables. XXX note that - this setting is claimed to have a few bugs by the EGCS maintainers. They - believe the bugs will be worked out in EGCS 1.2. */ +/* Use more efficient ``thunks'' to implement C++ vtables. */ #undef DEFAULT_VTABLE_THUNKS #define DEFAULT_VTABLE_THUNKS 1 -/* Our malloc can allocte pagesized blocks efficiently. The default size - of 4072 bytes is not optimal on the i386 nor the Alpha. */ -#undef OBSTACK_CHUNK_SIZE -#define OBSTACK_CHUNK_SIZE (getpagesize()) - /* Miscellaneous parameters. */ /* Tell libgcc2.c that FreeBSD targets support atexit(3). */ #define HAVE_ATEXIT + +#ifdef BOOTSTRAP_BOMBS_ON_CURRENT +/* Our malloc can allocte pagesized blocks efficiently. The default size + of 4072 bytes is not optimal on the i386 nor the Alpha. */ +#define OBSTACK_CHUNK_SIZE (getpagesize()) +#endif |
