diff options
-rw-r--r-- | bfd/.Sanitize | 2 | ||||
-rw-r--r-- | bfd/ChangeLog | 23 | ||||
-rw-r--r-- | bfd/Makefile.in | 11 | ||||
-rw-r--r-- | bfd/coffcode.h | 16 | ||||
-rwxr-xr-x | bfd/configure | 14 | ||||
-rw-r--r-- | bfd/configure.in | 5 | ||||
-rw-r--r-- | bfd/cpu-i860.c | 40 | ||||
-rw-r--r-- | bfd/hosts/.Sanitize | 1 | ||||
-rw-r--r-- | bfd/hosts/i860mach3.h | 27 |
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 |