* Makefile.in (BFD32_BACKENDS): Add coff-tic80.o
authorFred Fish <fnf@specifix.com>
Sun, 29 Dec 1996 17:56:24 +0000 (17:56 +0000)
committerFred Fish <fnf@specifix.com>
Sun, 29 Dec 1996 17:56:24 +0000 (17:56 +0000)
(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.

bfd/.Sanitize
bfd/ChangeLog
bfd/Makefile.in
bfd/coff-tic80.c
bfd/coffcode.h

index 43de89a..f1ef16e 100644 (file)
@@ -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
index afcfe9a..c769f55 100644 (file)
@@ -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.
index 89daa00..9b71906 100644 (file)
@@ -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:
index 06c8a2e..e84ef97 100644 (file)
@@ -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
+ };
index 347854a..35fff51 100644 (file)
@@ -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;