summaryrefslogtreecommitdiff
path: root/gcc/config/ia64/freebsd.h
diff options
context:
space:
mode:
authorobrien <obrien@138bc75d-0d04-0410-961f-82ee72b054a4>2001-11-10 01:07:17 +0000
committerobrien <obrien@138bc75d-0d04-0410-961f-82ee72b054a4>2001-11-10 01:07:17 +0000
commit49b2e77d7a2fd0c2cae150076d28c3e443e825f5 (patch)
tree577a7f314d943cdee4114f2e22033a938b8b2ced /gcc/config/ia64/freebsd.h
parent93f6e1c74d1e2534f5753fbd6c87106393bcb7ed (diff)
downloadgcc-49b2e77d7a2fd0c2cae150076d28c3e443e825f5.tar.gz
2001-11-07 David O'Brien <obrien@FreeBSD.org>
* config.gcc: Add FreeBSD/IA-64 target. Expand config/i64/elf.h headers. * config/i64/ia64.h (TARGET_VERSION,ASM_SPEC,LINK_SPEC): Remove, they are OS specific. Use CPP_CPU_SPEC rather than CPP_PREDEFINES, so OS specific files and use CPP_PREDEFINES for their needs. * config/i64/elf.h (TARGET_VERSION): Add. Also, move inclusion of target headers to tm_file. * config/ia64/aix.h (TARGET_VERSION): Likewise. * config/ia64/hpux.h (TARGET_VERSION): Likewise. * config/ia64/linux.h (TARGET_VERSION): Likewise. (FUNCTION_PROFILER): Remove. * config/ia64/ia64.h (FUNCTION_PROFILER): Update defintion using the version in config/ia64/linux.h. * config/ia64/freebsd.h: New file. * config/freebsd.h: Tidy up. (_USING_CONFIG_FREEBSD): Define. (FBSD_CPP_PREDEFINES): Add __KPRINTF_ATTRIBUTE__. (FBSD_CPP_SPEC): Define generic FreeBSD spec. (FBSD_STARTFILE_SPEC): Likewise. (FBSD_ENDFILE_SPEC): Likewise. (FBSD_LIB_SPEC): Likewise. (WCHAR_UNSIGNED): Undefine, FreeBSD's wchars are signed. (USER_LABEL_PREFIX): Define to ELF compatible value as some CPU headers set an ELF-improper one. Approved by: Richard Henderson <rth@redhat.com> Message-ID: <20011109100352.A6186@redhat.com> git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@46909 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/ia64/freebsd.h')
-rw-r--r--gcc/config/ia64/freebsd.h66
1 files changed, 66 insertions, 0 deletions
diff --git a/gcc/config/ia64/freebsd.h b/gcc/config/ia64/freebsd.h
new file mode 100644
index 00000000000..75cfc04f901
--- /dev/null
+++ b/gcc/config/ia64/freebsd.h
@@ -0,0 +1,66 @@
+/* Definitions for Intel IA-64 running FreeBSD using the ELF format
+ Copyright (C) 2001 Free Software Foundation, Inc.
+ Contributed by David E. O'Brien <obrien@FreeBSD.org> and BSDi.
+
+This file is part of GNU CC.
+
+GNU CC 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)
+any later version.
+
+GNU CC 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, 675 Mass Ave, Cambridge, MA 02139, USA. */
+
+
+#undef LINK_SPEC
+#define LINK_SPEC \
+ "%{p:%e`-p' not supported; use `-pg' and gprof(1)} \
+ %{Wl,*:%*} \
+ %{assert*} %{R*} %{rpath*} %{defsym*} \
+ %{shared:-Bshareable %{h*} %{soname*}} \
+ %{symbolic:-Bsymbolic} \
+ %{!shared: \
+ %{!static: \
+ %{rdynamic:-export-dynamic} \
+ %{!dynamic-linker:-dynamic-linker /usr/libexec/ld-elf.so.1}} \
+ %{static:-Bstatic}}"
+
+#undef ASM_SPEC
+#define ASM_SPEC "-x %{mconstant-gp} %{mauto-pic}"
+
+
+/************************[ Target stuff ]***********************************/
+
+/* Define the actual types of some ANSI-mandated types.
+ Needs to agree with <machine/ansi.h>. GCC defaults come from c-decl.c,
+ c-common.c, and config/<arch>/<arch>.h. */
+
+/* Earilier headers may get this wrong for FreeBSD.
+ We use the GCC defaults instead. */
+#undef WCHAR_TYPE
+
+#undef WCHAR_UNSIGNED
+#define WCHAR_UNSIGNED 0
+
+#undef WCHAR_TYPE_SIZE
+#define WCHAR_TYPE_SIZE 32
+
+#undef TARGET_VERSION
+#define TARGET_VERSION fprintf (stderr, " (FreeBSD/IA-64 ELF)");
+
+#define TARGET_ELF 1
+
+#define DONT_USE_BUILTIN_SETJMP
+#define JMP_BUF_SIZE 76
+
+/* Output any profiling code before the prologue. */
+
+#undef PROFILE_BEFORE_PROLOGUE
+#define PROFILE_BEFORE_PROLOGUE 1