diff options
-rw-r--r-- | bfd/.Sanitize | 2 | ||||
-rw-r--r-- | bfd/ChangeLog | 11 | ||||
-rw-r--r-- | bfd/Makefile.in | 12 | ||||
-rw-r--r-- | bfd/coff-tic80.c | 76 | ||||
-rw-r--r-- | bfd/coffcode.h | 4 |
5 files changed, 104 insertions, 1 deletions
diff --git a/bfd/.Sanitize b/bfd/.Sanitize index 43de89a..f1ef16e 100644 --- a/bfd/.Sanitize +++ b/bfd/.Sanitize @@ -411,7 +411,7 @@ else done fi -tic80_files="ChangeLog archures.c bfd-in2.h config.bfd configure configure.in targets.c" +tic80_files="ChangeLog Makefile.in archures.c bfd-in2.h config.bfd configure configure.in targets.c" if ( echo $* | grep keep\-tic80 > /dev/null ) ; then for i in $tic80_files ; do if test ! -d $i && (grep sanitize-tic80 $i > /dev/null) ; then diff --git a/bfd/ChangeLog b/bfd/ChangeLog index afcfe9a..c769f55 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,14 @@ +start-sanitize-tic80 +Sun Dec 29 10:48:57 1996 Fred Fish <fnf@toadfish.ninemoons.com> + + * Makefile.in (BFD32_BACKENDS): Add coff-tic80.o + (ALL_MACHINES): Add cpu-tic80.o + (cpu-tic80.o, coff-tic80.o): Add dependencies. + * coff-tic80.c: Add skeleton, cloned from another coff config. + * coffcode.h (coff_write_object_contents): Set magic to TIC80MAGIC + for TIc80. + +end-sanitize-tic80 Fri Dec 27 20:56:41 1996 Fred Fish <fnf@ninemoons.com> * TODO: Correct a misspelling. diff --git a/bfd/Makefile.in b/bfd/Makefile.in index 89daa00..9b71906 100644 --- a/bfd/Makefile.in +++ b/bfd/Makefile.in @@ -138,6 +138,9 @@ ALL_MACHINES = \ cpu-rs6000.o \ cpu-sh.o \ cpu-sparc.o \ + $(start-sanitize-tic80) \ + cpu-tic80.o \ + $(end-sanitize-tic80) \ $(start-sanitize-v850) \ cpu-v850.o \ $(end-sanitize-v850) \ @@ -201,6 +204,9 @@ BFD32_BACKENDS = \ coff-rs6000.o \ coff-sh.o \ coff-sparc.o \ + $(start-sanitize-tic80) \ + coff-tic80.o \ + $(end-sanitize-tic80) \ coff-u68k.o \ coff-we32k.o \ coff-w65.o \ @@ -864,6 +870,12 @@ elf32-v850.o: elf32-v850.c $(INCDIR)/bfdlink.h elf-bfd.h \ elf32-target.h end-sanitize-v850: +start-sanitize-tic80: +cpu-tic80.o: cpu-tic80.c +coff-tic80.o: coff-tic80.c $(INCDIR)/bfdlink.h elf-bfd.h \ + $(INCDIR)/coff/internal.h +end-sanitize-tic80: + $(OFILES): stamp-picdir stamp-picdir: diff --git a/bfd/coff-tic80.c b/bfd/coff-tic80.c index 06c8a2e..e84ef97 100644 --- a/bfd/coff-tic80.c +++ b/bfd/coff-tic80.c @@ -21,3 +21,79 @@ 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., 675 Mass Ave, Cambridge, MA 02139, USA. */ + +#include "bfd.h" +#include "sysdep.h" +#include "libbfd.h" +#include "obstack.h" +#include "coff/tic80.h" +#include "coff/internal.h" +#include "libcoff.h" + +#define COFF_DEFAULT_SECTION_ALIGNMENT_POWER (4) /* FIXME: What should this be? */ + +#define coff_relocate_section _bfd_coff_generic_relocate_section + +#define RTYPE2HOWTO(internal, relocentry) abort() /* FIXME: hack */ + +#ifndef BADMAG +#define BADMAG(x) TIC80BADMAG(x) +#endif + +#define TIC80 1 /* Customize coffcode.h */ +#include "coffcode.h" + +const bfd_target +#ifdef TARGET_SYM + TARGET_SYM = +#else + tic80coff_vec = +#endif +{ +#ifdef TARGET_NAME + TARGET_NAME, +#else + "coff-tic80", /* name */ +#endif + bfd_target_coff_flavour, + BFD_ENDIAN_BIG, /* data byte order is big */ + BFD_ENDIAN_BIG, /* header byte order is big */ + + (HAS_RELOC | EXEC_P | /* object flags */ + HAS_LINENO | HAS_DEBUG | + HAS_SYMS | HAS_LOCALS | WP_TEXT | D_PAGED), + + (SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */ +#ifdef NAMES_HAVE_UNDERSCORE + '_', +#else + 0, /* leading underscore */ +#endif + '/', /* ar_pad_char */ + 15, /* ar_max_namelen */ + bfd_getb64, bfd_getb_signed_64, bfd_putb64, + bfd_getb32, bfd_getb_signed_32, bfd_putb32, + bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* data */ + bfd_getb64, bfd_getb_signed_64, bfd_putb64, + bfd_getb32, bfd_getb_signed_32, bfd_putb32, + bfd_getb16, bfd_getb_signed_16, bfd_putb16, /* hdrs */ + + {_bfd_dummy_target, coff_object_p, /* bfd_check_format */ + bfd_generic_archive_p, _bfd_dummy_target}, + {bfd_false, coff_mkobject, _bfd_generic_mkarchive, /* bfd_set_format */ + bfd_false}, + {bfd_false, coff_write_object_contents, /* bfd_write_contents */ + _bfd_write_archive_contents, bfd_false}, + + BFD_JUMP_TABLE_GENERIC (coff), + BFD_JUMP_TABLE_COPY (coff), + BFD_JUMP_TABLE_CORE (_bfd_nocore), + BFD_JUMP_TABLE_ARCHIVE (_bfd_archive_coff), + BFD_JUMP_TABLE_SYMBOLS (coff), + BFD_JUMP_TABLE_RELOCS (coff), + BFD_JUMP_TABLE_WRITE (coff), + BFD_JUMP_TABLE_LINK (coff), + BFD_JUMP_TABLE_DYNAMIC (_bfd_nodynamic), + + COFF_SWAP_TABLE + }; diff --git a/bfd/coffcode.h b/bfd/coffcode.h index 347854a..35fff51 100644 --- a/bfd/coffcode.h +++ b/bfd/coffcode.h @@ -2721,6 +2721,10 @@ coff_write_object_contents (abfd) internal_a.magic = NMAGIC; /* Assume separate i/d */ #define __A_MAGIC_SET__ #endif /* A29K */ +#ifdef TIC80 + internal_a.magic = TIC80MAGIC; +#define __A_MAGIC_SET__ +#endif /* TIC80 */ #ifdef I860 /* FIXME: What are the a.out magic numbers for the i860? */ internal_a.magic = 0; |