aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/.Sanitize2
-rw-r--r--bfd/ChangeLog23
-rw-r--r--bfd/Makefile.in11
-rw-r--r--bfd/coffcode.h16
-rwxr-xr-xbfd/configure14
-rw-r--r--bfd/configure.in5
-rw-r--r--bfd/cpu-i860.c40
-rw-r--r--bfd/hosts/.Sanitize1
-rw-r--r--bfd/hosts/i860mach3.h27
9 files changed, 136 insertions, 3 deletions
diff --git a/bfd/.Sanitize b/bfd/.Sanitize
index e8a421f..e224fc3 100644
--- a/bfd/.Sanitize
+++ b/bfd/.Sanitize
@@ -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
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 8720b17..73aeed9 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -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
diff --git a/bfd/Makefile.in b/bfd/Makefile.in
index 460fade..5a69c96 100644
--- a/bfd/Makefile.in
+++ b/bfd/Makefile.in
@@ -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
diff --git a/bfd/coffcode.h b/bfd/coffcode.h
index f8c797a..2cc3980 100644
--- a/bfd/coffcode.h
+++ b/bfd/coffcode.h
@@ -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__
diff --git a/bfd/configure b/bfd/configure
index f07af90..5648107 100755
--- a/bfd/configure
+++ b/bfd/configure
@@ -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. */
diff --git a/bfd/configure.in b/bfd/configure.in
index 8ef6b01..3508aed 100644
--- a/bfd/configure.in
+++ b/bfd/configure.in
@@ -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
index 0000000..57c867c
--- /dev/null
+++ b/bfd/cpu-i860.c
@@ -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,
+ };
diff --git a/bfd/hosts/.Sanitize b/bfd/hosts/.Sanitize
index 367d2eb..39ef327 100644
--- a/bfd/hosts/.Sanitize
+++ b/bfd/hosts/.Sanitize
@@ -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
index 0000000..edd2aa1
--- /dev/null
+++ b/bfd/hosts/i860mach3.h
@@ -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