* config.gcc (x86_64-*-netbsd*): New target.
authorthorpej <thorpej@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 22 Jan 2002 19:48:27 +0000 (19:48 +0000)
committerthorpej <thorpej@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 22 Jan 2002 19:48:27 +0000 (19:48 +0000)
* config/i386/netbsd64.h: New file.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@49087 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config.gcc
gcc/config/i386/netbsd64.h [new file with mode: 0644]

index 85967b4..bceff72 100644 (file)
@@ -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.
index 7a86bee..9800e4b 100644 (file)
@@ -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 (file)
index 0000000..74862af
--- /dev/null
@@ -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)");