diff options
author | David O'Brien <obrien@FreeBSD.org> | 2002-01-26 01:23:27 +0000 |
---|---|---|
committer | David O'Brien <obrien@gcc.gnu.org> | 2002-01-26 01:23:27 +0000 |
commit | e564e618054d9ea66778a4b7265da0f66e426104 (patch) | |
tree | 97620496215405c9831609f88ba7f80c87de4596 /gcc/config/i386/freebsd64.h | |
parent | 4857d29d810461f9eca00a0b677e850ebd1b432d (diff) | |
download | gcc-e564e618054d9ea66778a4b7265da0f66e426104.tar.gz |
config.gcc (x86_64-*-freebsd*): New target.
2002-01-25 David O'Brien <obrien@FreeBSD.org>
* config.gcc (x86_64-*-freebsd*): New target.
(x86_64-*-netbsd*,x86_64-*-linux*): Use ${tm_file} rather than its
value.
(i[34567]86-*-freebsd*): Don't include svr4.h.
* config/i386/freebsd64.h: New file.
Approved by: Richard Henderson <rth@redhat.com>
Message-ID: <20020125160119.B17943@redhat.com>
From-SVN: r49233
Diffstat (limited to 'gcc/config/i386/freebsd64.h')
-rw-r--r-- | gcc/config/i386/freebsd64.h | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/gcc/config/i386/freebsd64.h b/gcc/config/i386/freebsd64.h new file mode 100644 index 00000000000..3437e694d45 --- /dev/null +++ b/gcc/config/i386/freebsd64.h @@ -0,0 +1,52 @@ +/* Definitions for AMD x86-64 running FreeBSD with ELF format + Copyright (C) 2002 Free Software Foundation, Inc. + Contributed by David O'Brien <obrien@FreeBSD.org> + +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, 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + + +#undef TARGET_VERSION +#define TARGET_VERSION fprintf (stderr, " (FreeBSD/x86-64 ELF)"); + +/* Provide a LINK_SPEC appropriate for the FreeBSD/x86-64 ELF target. + This is a copy of LINK_SPEC from <i386/freebsd.h> tweaked for + the x86-64 target. */ + +#undef LINK_SPEC +#define LINK_SPEC "\ + %{!m32:-m elf_x86_64} \ + %{m32:-m elf_i386} \ + %{Wl,*:%*} \ + %{v:-V} \ + %{assert*} %{R*} %{rpath*} %{defsym*} \ + %{shared:-Bshareable %{h*} %{soname*}} \ + %{!shared: \ + %{!static: \ + %{rdynamic:-export-dynamic} \ + %{!dynamic-linker:-dynamic-linker /usr/libexec/ld-elf.so.1}} \ + %{static:-Bstatic}} \ + %{symbolic:-Bsymbolic}" + +/* Grrr... x86-64.h gets this wrong and it shouldn't be trying to set this + policy... Restore to the FreeBSD/i386 setting. */ +/* Don't default to pcc-struct-return for IA-32 ELF code, because we need to + retain compatibility with older FreeBSD/i386 ELF 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 |