aboutsummaryrefslogtreecommitdiff
path: root/bfd/aout-target.h
diff options
context:
space:
mode:
Diffstat (limited to 'bfd/aout-target.h')
-rw-r--r--bfd/aout-target.h46
1 files changed, 38 insertions, 8 deletions
diff --git a/bfd/aout-target.h b/bfd/aout-target.h
index 868a9e605..46d1cbf 100644
--- a/bfd/aout-target.h
+++ b/bfd/aout-target.h
@@ -1,4 +1,4 @@
-/* Define a target vector for a variant of a.out.
+/* Define a target vector and some small routines for a variant of a.out.
Copyright (C) 1990-1991 Free Software Foundation, Inc.
This file is part of BFD, the Binary File Descriptor library.
@@ -17,6 +17,11 @@ 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 "aout/aout64.h"
+#include "aout/stab_gnu.h"
+#include "aout/ar.h"
+/*#include "libaout.h"*/
+
/* Set parameters about this a.out file that are machine-dependent.
This routine is called from some_aout_object_p just before it returns. */
static bfd_target *
@@ -45,8 +50,7 @@ DEFUN(MY(callback),(abfd),
obj_sym_filepos (abfd) = N_SYMOFF (*execp);
obj_str_filepos (abfd) = N_STROFF (*execp);
- /* Determine the architecture and machine type of the object file.
- */
+ /* Determine the architecture and machine type of the object file. */
#ifdef SET_ARCH_MACH
SET_ARCH_MACH(abfd, *execp);
#else
@@ -145,7 +149,14 @@ DEFUN(MY(write_object_contents),(abfd),
struct external_exec exec_bytes;
struct internal_exec *execp = exec_hdr (abfd);
+#if CHOOSE_RELOC_SIZE
+ CHOOSE_RELOC_SIZE(abfd);
+#else
+ obj_reloc_entry_size (abfd) = RELOC_STD_SIZE;
+#endif
+
WRITE_HEADERS(abfd, execp);
+
return true;
}
#define MY_write_object_contents MY(write_object_contents)
@@ -162,7 +173,7 @@ DEFUN(MY(write_object_contents),(abfd),
#define MY_slurp_armap bfd_slurp_bsd_armap
#endif
#ifndef MY_slurp_extended_name_table
-#define MY_slurp_extended_name_table bfd_true
+#define MY_slurp_extended_name_table _bfd_slurp_extended_name_table
#endif
#ifndef MY_write_armap
#define MY_write_armap bsd_write_armap
@@ -274,19 +285,33 @@ DEFUN(MY(write_object_contents),(abfd),
#ifndef MY_bfd_debug_info_accumulat
#define MY_bfd_debug_info_accumulat NAME(aout,bfd_debug_info_accumulat)
#endif
+#ifndef MY_reloc_howto_type_lookup
+#define MY_reloc_howto_type_lookup 0
+#endif
+#ifndef MY_make_debug_symbol
+#define MY_make_debug_symbol 0
+#endif
+#ifndef MY_backend_data
+#define MY_backend_data (PTR) 0
+#endif
bfd_target MY(vec) =
{
TARGETNAME, /* name */
bfd_target_aout_flavour,
- true, /* target byte order */
- true, /* target headers byte order */
+#ifdef TARGET_IS_BIG_ENDIAN_P
+ true, /* target byte order (big) */
+ true, /* target headers byte order (big) */
+#else
+ false, /* target byte order (little) */
+ false, /* target headers byte order (little) */
+#endif
(HAS_RELOC | EXEC_P | /* object flags */
HAS_LINENO | HAS_DEBUG |
HAS_SYMS | HAS_LOCALS | DYNAMIC | WP_TEXT | D_PAGED),
(SEC_HAS_CONTENTS | SEC_ALLOC | SEC_LOAD | SEC_RELOC), /* section flags */
' ', /* ar_pad_char */
- 16, /* ar_max_namelen */
+ 15, /* ar_max_namelen */
1, /* minimum alignment */
#ifdef TARGET_IS_BIG_ENDIAN_P
_do_getb64, _do_putb64, _do_getb32, _do_putb32, _do_getb16, _do_putb16, /* data */
@@ -328,5 +353,10 @@ bfd_target MY(vec) =
MY_bfd_debug_info_start,
MY_bfd_debug_info_end,
MY_bfd_debug_info_accumulate,
- bfd_generic_get_relocated_section_contents
+ bfd_generic_get_relocated_section_contents,
+ bfd_generic_relax_section,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* COFF stuff?! */
+ MY_reloc_howto_type_lookup,
+ MY_make_debug_symbol,
+ (PTR) MY_backend_data,
};