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
This commit is contained in:
David O'Brien 2002-01-26 01:23:27 +00:00 committed by David O'Brien
parent 4857d29d81
commit e564e61805
3 changed files with 73 additions and 3 deletions

View File

@ -1,3 +1,11 @@
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.
2002-01-25 Douglas B Rupp <rupp@gnat.com>
* config/alpha/x-vms (version): Make static.

View File

@ -270,6 +270,13 @@ if test -f ${srcdir}/config/${cpu_type}/${cpu_type}-protos.h
then
tm_p_file=${cpu_type}/${cpu_type}-protos.h
fi
case $machine in
x86_64-*-*)
tm_file="i386/biarch64.h ${tm_file}"
;;
esac
# On a.out targets, we need to use collect2.
case $machine in
*-*-*aout*)
@ -1127,7 +1134,10 @@ i[34567]86-*-freebsd[12] | i[34567]86-*-freebsd[12].* | i[34567]86-*-freebsd*aou
tmake_file=t-freebsd
;;
i[34567]86-*-freebsd*)
tm_file="${tm_file} i386/att.h dbxelf.h elfos.h svr4.h ${fbsd_tm_file} i386/freebsd.h"
tm_file="${tm_file} i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/freebsd.h"
;;
x86_64-*-freebsd*)
tm_file="${tm_file} i386/att.h dbxelf.h elfos.h ${fbsd_tm_file} i386/x86-64.h i386/freebsd.h i386/freebsd64.h"
;;
i[34567]86-*-netbsdelf*)
tm_file="${tm_file} i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/netbsd-elf.h"
@ -1139,7 +1149,7 @@ i[34567]86-*-netbsd*)
use_collect2=yes
;;
x86_64-*-netbsd*)
tm_file="i386/biarch64.h i386/i386.h i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/x86-64.h i386/netbsd64.h"
tm_file="${tm_file} i386/att.h dbxelf.h elfos.h netbsd.h netbsd-elf.h i386/x86-64.h i386/netbsd64.h"
float_format=i386
;;
i[34567]86-*-openbsd*)
@ -1205,7 +1215,7 @@ i[34567]86-*-linux*) # Intel 80386's running GNU/Linux
fi
;;
x86_64-*-linux*)
tm_file="i386/biarch64.h i386/i386.h i386/att.h dbxelf.h elfos.h svr4.h linux.h \
tm_file="${tm_file} i386/att.h dbxelf.h elfos.h svr4.h linux.h \
i386/x86-64.h i386/linux64.h"
tmake_file="t-slibgcc-elf-ver t-linux i386/t-crtstuff"
extra_parts="crtbegin.o crtbeginS.o crtbeginT.o crtend.o crtendS.o"

View File

@ -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