aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bfd/.Sanitize2
-rw-r--r--bfd/ChangeLog11
-rw-r--r--bfd/Makefile.in12
-rw-r--r--bfd/coff-tic80.c76
-rw-r--r--bfd/coffcode.h4
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;