Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src Initial pass at an in-tree ia64 toolchain. From PR 29141 wit...



details:   https://anonhg.NetBSD.org/src/rev/6d8ab294ed7b
branches:  trunk
changeset: 583647:6d8ab294ed7b
user:      skrll <skrll%NetBSD.org@localhost>
date:      Wed Aug 17 07:13:32 2005 +0000

description:
Initial pass at an in-tree ia64 toolchain. From PR 29141 with some fixes
from me.

diffstat:

 build.sh                              |   8 ++--
 gnu/dist/gcc/gcc/config.gcc           |   6 +++
 gnu/dist/gcc/gcc/config/ia64/ia64.h   |   7 +++-
 gnu/dist/gcc/gcc/config/ia64/netbsd.h |  57 +++++++++++++++++++++++++++++++++++
 share/mk/bsd.endian.mk                |   3 +-
 share/mk/bsd.own.mk                   |   9 ++++-
 6 files changed, 83 insertions(+), 7 deletions(-)

diffs (172 lines):

diff -r ec27b77798df -r 6d8ab294ed7b build.sh
--- a/build.sh  Wed Aug 17 00:58:19 2005 +0000
+++ b/build.sh  Wed Aug 17 07:13:32 2005 +0000
@@ -1,5 +1,5 @@
 #! /usr/bin/env sh
-#      $NetBSD: build.sh,v 1.137 2005/05/29 10:54:40 bouyer Exp $
+#      $NetBSD: build.sh,v 1.138 2005/08/17 07:13:32 skrll Exp $
 #
 # Copyright (c) 2001-2005 The NetBSD Foundation, Inc.
 # All rights reserved.
@@ -218,7 +218,7 @@
                MACHINE_ARCH=x86_64
                ;;
 
-       alpha|i386|sparc|sparc64|vax)
+       alpha|i386|sparc|sparc64|vax|ia64)
                MACHINE_ARCH=${MACHINE}
                ;;
 
@@ -235,7 +235,7 @@
        #
        case "${MACHINE_ARCH}" in
 
-       alpha|arm|armeb|hppa|i386|m68000|m68k|mipse[bl]|ns32k|powerpc|sh[35]e[bl]|sparc|sparc64|vax|x86_64)
+       alpha|arm|armeb|hppa|i386|m68000|m68k|mipse[bl]|ns32k|powerpc|sh[35]e[bl]|sparc|sparc64|vax|x86_64|ia64)
                ;;
 
        "")
@@ -859,7 +859,7 @@
        eval cat <<EOF ${makewrapout}
 #! /bin/sh
 # Set proper variables to allow easy "make" building of a NetBSD subtree.
-# Generated from:  \$NetBSD: build.sh,v 1.137 2005/05/29 10:54:40 bouyer Exp $
+# Generated from:  \$NetBSD: build.sh,v 1.138 2005/08/17 07:13:32 skrll Exp $
 # with these arguments: ${_args}
 #
 EOF
diff -r ec27b77798df -r 6d8ab294ed7b gnu/dist/gcc/gcc/config.gcc
--- a/gnu/dist/gcc/gcc/config.gcc       Wed Aug 17 00:58:19 2005 +0000
+++ b/gnu/dist/gcc/gcc/config.gcc       Wed Aug 17 07:13:32 2005 +0000
@@ -1479,6 +1479,12 @@
        fi
        extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
        ;;
+ia64*-*-netbsd*)
+       tm_file="${tm_file} dbxelf.h elfos.h netbsd.h netbsd-elf.h ia64/sysv4.h ia64/netbsd.h"
+       target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
+       tmake_file="${tmake_file} ia64/t-ia64"
+       extra_parts="crtbegin.o crtend.o crtbeginS.o crtendS.o crtfastmath.o"
+       ;;
 ia64*-*-freebsd*)
        tm_file="${tm_file} dbxelf.h elfos.h ${fbsd_tm_file} ia64/sysv4.h ia64/freebsd.h"
        target_cpu_default="MASK_GNU_AS|MASK_GNU_LD"
diff -r ec27b77798df -r 6d8ab294ed7b gnu/dist/gcc/gcc/config/ia64/ia64.h
--- a/gnu/dist/gcc/gcc/config/ia64/ia64.h       Wed Aug 17 00:58:19 2005 +0000
+++ b/gnu/dist/gcc/gcc/config/ia64/ia64.h       Wed Aug 17 07:13:32 2005 +0000
@@ -49,8 +49,13 @@
          builtin_define("__BIG_ENDIAN__");     \
 } while (0)
 
+#ifndef SUBTARGET_EXTRA_SPECS
+#define SUBTARGET_EXTRA_SPECS
+#endif
+
 #define EXTRA_SPECS \
-  { "asm_extra", ASM_EXTRA_SPEC },
+  { "asm_extra", ASM_EXTRA_SPEC }, \
+  SUBTARGET_EXTRA_SPECS
 
 #define CC1_SPEC "%(cc1_cpu) "
 
diff -r ec27b77798df -r 6d8ab294ed7b gnu/dist/gcc/gcc/config/ia64/netbsd.h
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/gnu/dist/gcc/gcc/config/ia64/netbsd.h     Wed Aug 17 07:13:32 2005 +0000
@@ -0,0 +1,57 @@
+/* Definitions of target machine for GNU compiler,
+   for ia64/ELF NetBSD systems.
+   Copyright (C) 2005 Free Software Foundation, 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.  */
+
+#define TARGET_OS_CPP_BUILTINS()               \
+  do                                           \
+    {                                          \
+      NETBSD_OS_CPP_BUILTINS_ELF();            \
+      NETBSD_OS_CPP_BUILTINS_LP64();           \
+    }                                          \
+  while (0)
+
+
+/* Extra specs needed for NetBSD/ia-64 ELF.  */
+
+#undef SUBTARGET_EXTRA_SPECS
+#define SUBTARGET_EXTRA_SPECS                  \
+  { "netbsd_cpp_spec", NETBSD_CPP_SPEC },      \
+  { "netbsd_link_spec", NETBSD_LINK_SPEC_ELF },        \
+  { "netbsd_entry_point", NETBSD_ENTRY_POINT },
+
+
+/* Provide a LINK_SPEC appropriate for a NetBSD/ia64 ELF target.  */
+
+#undef LINK_SPEC
+#define LINK_SPEC "%(netbsd_link_spec)"
+
+#define NETBSD_ENTRY_POINT "_start"
+
+
+/* Provide a CPP_SPEC appropriate for NetBSD.  */
+
+#undef CPP_SPEC
+#define CPP_SPEC "%(netbsd_cpp_spec)"
+
+
+/* Attempt to enable execute permissions on the stack.  */
+#define TRANSFER_FROM_TRAMPOLINE NETBSD_ENABLE_EXECUTE_STACK
+
+#define TARGET_VERSION fprintf (stderr, " (NetBSD/ia64 ELF)");
diff -r ec27b77798df -r 6d8ab294ed7b share/mk/bsd.endian.mk
--- a/share/mk/bsd.endian.mk    Wed Aug 17 00:58:19 2005 +0000
+++ b/share/mk/bsd.endian.mk    Wed Aug 17 07:13:32 2005 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: bsd.endian.mk,v 1.12 2004/03/17 20:16:21 matt Exp $
+#      $NetBSD: bsd.endian.mk,v 1.13 2005/08/17 07:13:32 skrll Exp $
 
 .if !defined(_BSD_ENDIAN_MK_)
 _BSD_ENDIAN_MK_=1
@@ -8,6 +8,7 @@
 .if ${MACHINE_ARCH} == "alpha" || \
     ${MACHINE_ARCH} == "arm" || \
     ${MACHINE_ARCH} == "i386" || \
+    ${MACHINE_ARCH} == "ia64" || \
     ${MACHINE_ARCH} == "ns32k" || \
     ${MACHINE_ARCH} == "vax" || \
     ${MACHINE_ARCH} == "x86_64" || \
diff -r ec27b77798df -r 6d8ab294ed7b share/mk/bsd.own.mk
--- a/share/mk/bsd.own.mk       Wed Aug 17 00:58:19 2005 +0000
+++ b/share/mk/bsd.own.mk       Wed Aug 17 07:13:32 2005 +0000
@@ -1,4 +1,4 @@
-#      $NetBSD: bsd.own.mk,v 1.440 2005/06/12 19:31:25 dyoung Exp $
+#      $NetBSD: bsd.own.mk,v 1.441 2005/08/17 07:13:32 skrll Exp $
 
 .if !defined(_BSD_OWN_MK_)
 _BSD_OWN_MK_=1
@@ -428,6 +428,13 @@
 .endif
 
 #
+# The ia64 port is incomplete.
+#
+.if ${MACHINE_ARCH} == "ia64"
+MKLINT=                no
+.endif
+
+#
 # On the MIPS, all libs are compiled with ABIcalls (and are thus PIC),
 # not just shared libraries, so don't build the _pic version.
 #



Home | Main Index | Thread Index | Old Index