Mon Nov 6 17:13:15 1995 Harry Dolan <dolan@ssd.intel.com>
authorIan Lance Taylor <ian@airs.com>
Mon, 6 Nov 1995 23:04:44 +0000 (23:04 +0000)
committerIan Lance Taylor <ian@airs.com>
Mon, 6 Nov 1995 23:04:44 +0000 (23:04 +0000)
* coff-i860.c: New file, based on coff-i386.c.
* cpu-i860.c: New file, based on cpu-i386.c.
* hosts/i860mach3.h: New file, based on hosts/i386mach3.h.
* config.bfd (i860-*-mach3*, i860-*-osf1*, i860-*-coff*): New
targets, using i860coff_vec.
* configure.in (i860-*-mach3*, i860-*-osf1*): New hosts, using
trad-core.o and hosts/i860mach3.h.
(i860coff_vec): Use coff-i860.o and cofflink.o.
* configure: Rebuild.
* Makefile.in: Rebuild dependencies.
(ALL_MACHINES): Add cpu-i860.o.
(BFD32_BACKENDS): Add coff-i860.o.
(CFILES): Add cpu-i860.c and coff-i860.c.
* targets.c (i860coff_vec): Declare.
(bfd_target_vector): Add &i860coff_vec.
* archures.c (bfd_i860_arch): Declare.
(bfd_archures_list): Add &bfd_i860_arch.
* coffcode.h (coff_set_arch_mach_hook): Handle I860 magic number.
(coff_set_flags): Handle bfd_arch_i860.
(coff_write_object_contents): Handle I860 a.out magic number.

bfd/.Sanitize
bfd/ChangeLog
bfd/Makefile.in
bfd/coffcode.h
bfd/configure
bfd/configure.in
bfd/cpu-i860.c [new file with mode: 0644]
bfd/hosts/.Sanitize
bfd/hosts/i860mach3.h [new file with mode: 0644]

index e8a421f0d50420455c5bf842dc49c368c08feed9..e224fc32e0c6baa26ce84ae3151f555b00f8da5f 100644 (file)
@@ -80,6 +80,7 @@ coff-go32.c
 coff-h8300.c
 coff-h8500.c
 coff-i386.c
+coff-i860.c
 coff-i960.c
 coff-m68k.c
 coff-m88k.c
@@ -111,6 +112,7 @@ cpu-h8300.c
 cpu-h8500.c
 cpu-hppa.c
 cpu-i386.c
+cpu-i860.c
 cpu-i960.c
 cpu-m68k.c
 cpu-m88k.c
index 8720b17454339a3f96f4f2cfc7cdb5fdcccb918c..73aeed9c5c27e572aea2980c844fdf8ef64319a1 100644 (file)
@@ -1,3 +1,26 @@
+Mon Nov  6 17:13:15 1995  Harry Dolan  <dolan@ssd.intel.com>
+
+       * coff-i860.c: New file, based on coff-i386.c.
+       * cpu-i860.c: New file, based on cpu-i386.c.
+       * hosts/i860mach3.h: New file, based on hosts/i386mach3.h.
+       * config.bfd (i860-*-mach3*, i860-*-osf1*, i860-*-coff*): New
+       targets, using i860coff_vec.
+       * configure.in (i860-*-mach3*, i860-*-osf1*): New hosts, using
+       trad-core.o and hosts/i860mach3.h.
+       (i860coff_vec): Use coff-i860.o and cofflink.o.
+       * configure: Rebuild.
+       * Makefile.in: Rebuild dependencies.
+       (ALL_MACHINES): Add cpu-i860.o.
+       (BFD32_BACKENDS): Add coff-i860.o.
+       (CFILES): Add cpu-i860.c and coff-i860.c.
+       * targets.c (i860coff_vec): Declare.
+       (bfd_target_vector): Add &i860coff_vec. 
+       * archures.c (bfd_i860_arch): Declare.
+       (bfd_archures_list): Add &bfd_i860_arch.
+       * coffcode.h (coff_set_arch_mach_hook): Handle I860 magic number.
+       (coff_set_flags): Handle bfd_arch_i860.
+       (coff_write_object_contents): Handle I860 a.out magic number.
+
 Mon Nov  6 14:34:07 1995  Ian Lance Taylor  <ian@cygnus.com>
 
        * xcofflink.c (xcoff_link_add_symbols): Set the alignment power of
index 460fade206c929a65ab0923ad0cf195e763d0690..5a69c96fb53792e4462cf12498149013fef763f8 100644 (file)
@@ -101,6 +101,7 @@ ALL_MACHINES = \
        cpu-h8500.o \
        cpu-hppa.o \
        cpu-i386.o \
+       cpu-i860.o \
        cpu-i960.o \
        cpu-m68k.o \
        cpu-m88k.o \
@@ -139,6 +140,7 @@ BFD32_BACKENDS = \
        coff-h8500.o \
        coff-i386.o \
        coff-go32.o \
+       coff-i860.o \
        coff-i960.o \
        coff-m68k.o \
        coff-m88k.o \
@@ -272,6 +274,7 @@ CFILES = \
        cpu-h8500.c \
        cpu-hppa.c \
        cpu-i386.c \
+       cpu-i860.c \
        cpu-i960.c \
        cpu-m68k.c \
        cpu-m88k.c \
@@ -300,6 +303,7 @@ CFILES = \
        coff-h8300.c \
        coff-h8500.c \
        coff-i386.c \
+       coff-i860.c \
        coff-go32.c \
        coff-i960.c \
        coff-m68k.c \
@@ -666,6 +670,8 @@ end-sanitize-arc:
 # What appears below is generated by a hacked mkdep using gcc -MM.
 
 # DO NOT DELETE THIS LINE -- mkdep uses it.
+# DO NOT PUT ANYTHING AFTER THIS LINE, IT WILL GO AWAY.
+
 archive.o: archive.c $(INCDIR)/aout/ar.h $(INCDIR)/aout/ranlib.h
 archures.o: archures.c
 bfd.o: bfd.c $(INCDIR)/bfdlink.h $(INCDIR)/coff/internal.h \
@@ -698,6 +704,7 @@ cpu-h8300.o: cpu-h8300.c
 cpu-h8500.o: cpu-h8500.c
 cpu-hppa.o: cpu-hppa.c
 cpu-i386.o: cpu-i386.c
+cpu-i860.o: cpu-i860.c
 cpu-i960.o: cpu-i960.c
 cpu-m68k.o: cpu-m68k.c
 cpu-m88k.o: cpu-m88k.c
@@ -745,6 +752,8 @@ coff-h8500.o: coff-h8500.c $(INCDIR)/bfdlink.h $(INCDIR)/coff/h8500.h \
   $(INCDIR)/coff/internal.h libcoff.h coffcode.h coffswap.h
 coff-i386.o: coff-i386.c $(INCDIR)/coff/i386.h $(INCDIR)/coff/internal.h \
   libcoff.h $(INCDIR)/bfdlink.h coffcode.h coffswap.h
+coff-i860.o: coff-i860.c $(INCDIR)/coff/i860.h $(INCDIR)/coff/internal.h \
+  libcoff.h $(INCDIR)/bfdlink.h coffcode.h coffswap.h
 coff-go32.o: coff-go32.c coff-i386.c $(INCDIR)/coff/i386.h \
   $(INCDIR)/coff/internal.h libcoff.h $(INCDIR)/bfdlink.h \
   coffcode.h coffswap.h
@@ -958,3 +967,5 @@ i386dynix.o: i386dynix.c $(INCDIR)/aout/dynix3.h aoutx.h \
 hp300bsd.o: hp300bsd.c libaout.h $(INCDIR)/bfdlink.h \
   aout-target.h $(INCDIR)/aout/aout64.h $(INCDIR)/aout/stab_gnu.h \
   $(INCDIR)/aout/stab.def $(INCDIR)/aout/ar.h
+
+# IF YOU PUT ANYTHING HERE IT WILL GO AWAY
index f8c797aea7eb6357086f073b5e600364acd093cc..2cc3980484d75b10a8eafc393565052eb3565e02 100644 (file)
@@ -1114,6 +1114,11 @@ coff_set_arch_mach_hook (abfd, filehdr)
        }
       break;
 #endif
+#ifdef I860
+    case I860MAGIC:
+      arch = bfd_arch_i860;
+      break;
+#endif
 #ifdef I960
 #ifdef I960ROMAGIC
     case I960ROMAGIC:
@@ -1618,6 +1623,12 @@ coff_set_flags (abfd, magicp, flagsp)
       return true;
       break;
 #endif
+#ifdef I860MAGIC
+    case bfd_arch_i860:
+      *magicp = I860MAGIC;
+      return true;
+      break;
+#endif
 #ifdef MC68MAGIC
     case bfd_arch_m68k:
 #ifdef APOLLOM68KMAGIC
@@ -2207,6 +2218,11 @@ coff_write_object_contents (abfd)
       internal_a.magic = NMAGIC; /* Assume separate i/d */
 #define __A_MAGIC_SET__
 #endif /* A29K */
+#ifdef I860
+    /* FIXME: What are the a.out magic numbers for the i860?  */
+    internal_a.magic = 0;
+#define __A_MAGIC_SET__
+#endif /* I860 */
 #ifdef I960
     internal_a.magic = (magic == I960ROMAGIC ? NMAGIC : OMAGIC);
 #define __A_MAGIC_SET__
index f07af90b1e4ac53a5d4636d987a13563f8743068..564810701f75d8936e1b8bcfb0019ede486f39f7 100755 (executable)
@@ -1052,6 +1052,13 @@ EOF
        ;;
   i[345]86-*-isc*)     COREFILE=trad-core.o ;;
   i[345]86-*-aix*)     COREFILE=aix386-core.o ;;
+  i860-*-mach3* | i860-*-osf1*)
+       COREFILE=trad-core.o
+       cat >> confdefs.h <<\EOF
+#define TRAD_HEADER "hosts/i860mach3.h"
+EOF
+
+       ;;
   mips-dec-bsd*)
        COREFILE=trad-core.o
        cat >> confdefs.h <<\EOF
@@ -1225,7 +1232,7 @@ EOF
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1229 "configure"
+#line 1236 "configure"
 #include "confdefs.h"
 #include <sys/procfs.h>
 int main() { return 0; }
@@ -1393,6 +1400,7 @@ do
     i386mach3_vec)             tb="$tb i386mach3.o aout32.o stab-syms.o" ;;
     i386netbsd_vec)            tb="$tb i386netbsd.o aout32.o stab-syms.o" ;;
     i386os9k_vec)              tb="$tb i386os9k.o aout32.o stab-syms.o" ;;
+    i860coff_vec)              tb="$tb coff-i860.o cofflink.o" ;;
     icoff_big_vec)             tb="$tb coff-i960.o cofflink.o" ;;
     icoff_little_vec)          tb="$tb coff-i960.o cofflink.o" ;;
     ieee_vec)                  tb="$tb ieee.o" ;;
@@ -1510,7 +1518,7 @@ else
   ac_cv_func_mmap=no
 else
 cat > conftest.$ac_ext <<EOF
-#line 1514 "configure"
+#line 1522 "configure"
 #include "confdefs.h"
 
 /* Thanks to Mike Haertel and Jim Avera for this test. */
@@ -1609,7 +1617,7 @@ if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1613 "configure"
+#line 1621 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
index 8ef6b013fdcc2206b69bd2985595f53b4ac066a4..3508aedabb9e5d54ca1cf99bf11f5c84661f157c 100644 (file)
@@ -160,6 +160,10 @@ changequote(,)dnl
   i[345]86-*-isc*)     COREFILE=trad-core.o ;;
   i[345]86-*-aix*)     COREFILE=aix386-core.o ;;
 changequote([,])dnl
+  i860-*-mach3* | i860-*-osf1*)
+       COREFILE=trad-core.o
+       AC_DEFINE(TRAD_HEADER,"hosts/i860mach3.h")
+       ;;
   mips-dec-bsd*)
        COREFILE=trad-core.o
        AC_DEFINE(TRAD_HEADER,"hosts/mipsbsd.h")
@@ -419,6 +423,7 @@ do
     i386mach3_vec)             tb="$tb i386mach3.o aout32.o stab-syms.o" ;;
     i386netbsd_vec)            tb="$tb i386netbsd.o aout32.o stab-syms.o" ;;
     i386os9k_vec)              tb="$tb i386os9k.o aout32.o stab-syms.o" ;;
+    i860coff_vec)              tb="$tb coff-i860.o cofflink.o" ;;
     icoff_big_vec)             tb="$tb coff-i960.o cofflink.o" ;;
     icoff_little_vec)          tb="$tb coff-i960.o cofflink.o" ;;
     ieee_vec)                  tb="$tb ieee.o" ;;
diff --git a/bfd/cpu-i860.c b/bfd/cpu-i860.c
new file mode 100644 (file)
index 0000000..57c867c
--- /dev/null
@@ -0,0 +1,40 @@
+/* BFD support for the Intel 860 architecture.
+   Copyright 1992, 1995 Free Software Foundation, Inc.
+   Created mostly by substituting "860" for "386" in cpu-i386.c
+   Harry Dolan <dolan@ssd.intel.com>, October 1995
+
+This file is part of BFD, the Binary File Descriptor library.
+
+This program 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 of the License, or
+(at your option) any later version.
+
+This program 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 this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+
+#include "bfd.h"
+#include "sysdep.h"
+#include "libbfd.h"
+
+const bfd_arch_info_type bfd_i860_arch =
+  {
+    32,        /* 32 bits in a word */
+    32,        /* 32 bits in an address */
+    8, /* 8 bits in a byte */
+    bfd_arch_i860,
+    0, /* only 1 machine */
+    "i860",
+    "i860",
+    3,
+    true, /* the one and only */
+    bfd_default_compatible, 
+    bfd_default_scan ,
+    0,
+  };
index 367d2eb749786bb2cd6ea9c19f2b5d18b00d0ca3..39ef32727cf925a30d7a91037f895db6ed4298a9 100644 (file)
@@ -34,6 +34,7 @@ i386linux.h
 i386mach3.h
 i386nbsd.h
 i386sco.h
+i860mach3.h
 m68knbsd.h
 m88kmach3.h
 mipsbsd.h
diff --git a/bfd/hosts/i860mach3.h b/bfd/hosts/i860mach3.h
new file mode 100644 (file)
index 0000000..edd2aa1
--- /dev/null
@@ -0,0 +1,27 @@
+/* This file was hacked from i386mach3.h   [dolan@ssd.intel.com] */
+
+#include <machine/vmparam.h>
+#include <sys/param.h>
+
+/* This is an ugly way to hack around the incorrect
+ * definition of UPAGES in i386/machparam.h.
+ *
+ * The definition should specify the size reserved
+ * for "struct user" in core files in PAGES,
+ * but instead it gives it in 512-byte core-clicks
+ * for i386 and i860. UPAGES is used only in trad-core.c.
+ */
+#if UPAGES == 16
+#undef  UPAGES
+#define UPAGES 2
+#endif
+
+#if UPAGES != 2
+FIXME!! UPAGES is neither 2 nor 16
+#endif
+
+#define        HOST_PAGE_SIZE          1
+#define        HOST_SEGMENT_SIZE       NBPG
+#define        HOST_MACHINE_ARCH       bfd_arch_i860
+#define        HOST_TEXT_START_ADDR    USRTEXT
+#define        HOST_STACK_END_ADDR     USRSTACK