diff options
| -rw-r--r-- | gcc/ChangeLog | 5 | ||||
| -rw-r--r-- | gcc/config.gcc | 4 | ||||
| -rw-r--r-- | gcc/config/i386/netbsd64.h | 66 | 
3 files changed, 75 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 85967b4d1c7..bceff7291bf 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2002-01-22  Jason Thorpe  <thorpej@wasabisystems.com> + +	* config.gcc (x86_64-*-netbsd*): New target. +	* config/i386/netbsd64.h: New file. +  2002-01-22  Aldy Hernandez  <aldyh@redhat.com>          * regrename.c (kill_value): Fix typo. diff --git a/gcc/config.gcc b/gcc/config.gcc index 7a86bee20a5..9800e4be480 100644 --- a/gcc/config.gcc +++ b/gcc/config.gcc @@ -1136,6 +1136,10 @@ i[34567]86-*-netbsd*)  	tmake_file=t-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" +	float_format=i386 +	;;  i[34567]86-*-openbsd*)  	# needed to unconfuse gdb  	tmake_file="t-libc-ok t-openbsd i386/t-openbsd" diff --git a/gcc/config/i386/netbsd64.h b/gcc/config/i386/netbsd64.h new file mode 100644 index 00000000000..74862af9d6e --- /dev/null +++ b/gcc/config/i386/netbsd64.h @@ -0,0 +1,66 @@ +/* Definitions of target machine for GNU compiler, +   for x86-64/ELF NetBSD systems. +   Copyright (C) 2002 Free Software Foundation, Inc. +   Contributed by Wasabi Systems, Inc. + +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.  */ + + +/* Provide a LINK_SPEC appropriate for a NetBSD/x86-64 ELF target. +   This is a copy of LINK_SPEC from <netbsd-elf.h> tweaked for +   the x86-64 target.  */ + +#undef LINK_SPEC +#define LINK_SPEC							\ +  "%{!m32:-m elf_x86_64}						\ +   %{m32:-m elf_i386}							\ +   %{assert*} %{R*}							\ +   %{shared:-shared}							\ +   %{!shared:								\ +     -dc -dp								\ +     %{!nostdlib:							\ +       %{!r*:								\ +	  %{!e*:-e _start}}}						\ +     %{!static:								\ +       %{rdynamic:-export-dynamic}					\ +       %{!dynamic-linker:-dynamic-linker /usr/libexec/ld.elf_so}}	\ +     %{static:-static}}" + + +/* Names to predefine in the preprocessor for this target machine.  */ + +#define CPP_PREDEFINES							\ +  "-D__NetBSD__ -D__ELF__ -Asystem=unix -Asystem=NetBSD" + + +/* Output assembler code to FILE to call the profiler.  */ + +#undef FUNCTION_PROFILER +#define FUNCTION_PROFILER(FILE, LABELNO)				\ +{									\ +  if (TARGET_64BIT && flag_pic)						\ +    fprintf (FILE, "\tcall *__mcount@PLT\n");				\ +  else if (flag_pic)							\ +    fprintf (FILE, "\tcall *__mcount@PLT\n");				\ +  else									\ +    fprintf (FILE, "\tcall __mcount\n");				\ +} + + +#undef TARGET_VERSION +#define TARGET_VERSION fprintf (stderr, " (NetBSD/x86_64 ELF)");  | 

