/* BFD backend for hp-ux 9000/300
- Copyright 1990, 1991, 1993, 1994, 1995, 1997, 1999, 2000, 2001, 2002,
- 2003, 2004, 2005, 2007, 2010 Free Software Foundation, Inc.
+ Copyright (C) 1990-2016 Free Software Foundation, Inc.
Written by Glenn Engel.
This file is part of BFD, the Binary File Descriptor library.
/* Do not "beautify" the CONCAT* macro args. Traditional C will not
remove whitespace added here, and thus will fail to concatenate
the tokens. */
-#define MY(OP) CONCAT2 (hp300hpux_,OP)
+#define MY(OP) CONCAT2 (m68k_aout_hp300hpux_,OP)
#define external_exec hp300hpux_exec_bytes
#define external_nlist hp300hpux_nlist_bytes
/* these don't use MY because that causes problems within JUMP_TABLE
(CONCAT2 winds up being expanded recursively, which ANSI C compilers
will not do). */
-#define MY_canonicalize_symtab hp300hpux_canonicalize_symtab
-#define MY_get_symtab_upper_bound hp300hpux_get_symtab_upper_bound
-#define MY_canonicalize_reloc hp300hpux_canonicalize_reloc
-#define MY_write_object_contents hp300hpux_write_object_contents
+#define MY_canonicalize_symtab m68k_aout_hp300hpux_canonicalize_symtab
+#define MY_get_symtab_upper_bound m68k_aout_hp300hpux_get_symtab_upper_bound
+#define MY_canonicalize_reloc m68k_aout_hp300hpux_canonicalize_reloc
+#define MY_write_object_contents m68k_aout_hp300hpux_write_object_contents
#define MY_read_minisymbols _bfd_generic_read_minisymbols
#define MY_minisymbol_to_symbol _bfd_generic_minisymbol_to_symbol
were allocated using malloc. */
#define MY_bfd_free_cached_info bfd_true
-#define hp300hpux_write_syms aout_32_write_syms
+#define m68k_aout_hp300hpux_write_syms aout_32_write_syms
#define MY_callback MY(callback)
#include "aoutx.h"
-static const bfd_target * MY (callback)
- PARAMS ((bfd *));
-static bfd_boolean MY (write_object_contents)
- PARAMS ((bfd *));
+static const bfd_target * MY (callback) (bfd *);
+static bfd_boolean MY (write_object_contents) (bfd *);
static void convert_sym_type
- PARAMS ((struct external_nlist *, aout_symbol_type *, bfd *));
+ (struct external_nlist *, aout_symbol_type *, bfd *);
-bfd_boolean MY (slurp_symbol_table)
- PARAMS ((bfd *));
+bfd_boolean MY (slurp_symbol_table) (bfd *);
void MY (swap_std_reloc_in)
- PARAMS ((bfd *, struct hp300hpux_reloc *, arelent *, asymbol **,
- bfd_size_type));
+ (bfd *, struct hp300hpux_reloc *, arelent *, asymbol **, bfd_size_type);
bfd_boolean MY (slurp_reloc_table)
- PARAMS ((bfd *, sec_ptr, asymbol **));
-long MY (canonicalize_symtab)
- PARAMS ((bfd *, asymbol **));
-long MY (get_symtab_upper_bound)
- PARAMS ((bfd *));
-long MY (canonicalize_reloc)
- PARAMS ((bfd *, sec_ptr, arelent **, asymbol **));
+ (bfd *, sec_ptr, asymbol **);
+long MY (canonicalize_symtab) (bfd *, asymbol **);
+long MY (get_symtab_upper_bound) (bfd *);
+long MY (canonicalize_reloc) (bfd *, sec_ptr, arelent **, asymbol **);
/* Since the hpux symbol table has nlist elements interspersed with
strings and we need to insert som strings for secondary symbols, we
/* 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 const bfd_target *
-MY (callback) (abfd)
- bfd *abfd;
+MY (callback) (bfd *abfd)
{
struct internal_exec *execp = exec_hdr (abfd);
/* Calculate the file positions of the parts of a newly read aout header */
- obj_textsec (abfd)->size = N_TXTSIZE (*execp);
+ obj_textsec (abfd)->size = N_TXTSIZE (execp);
/* The virtual memory addresses of the sections */
- obj_textsec (abfd)->vma = N_TXTADDR (*execp);
- obj_datasec (abfd)->vma = N_DATADDR (*execp);
- obj_bsssec (abfd)->vma = N_BSSADDR (*execp);
+ obj_textsec (abfd)->vma = N_TXTADDR (execp);
+ obj_datasec (abfd)->vma = N_DATADDR (execp);
+ obj_bsssec (abfd)->vma = N_BSSADDR (execp);
obj_textsec (abfd)->lma = obj_textsec (abfd)->vma;
obj_datasec (abfd)->lma = obj_datasec (abfd)->vma;
obj_bsssec (abfd)->lma = obj_bsssec (abfd)->vma;
/* The file offsets of the sections */
- obj_textsec (abfd)->filepos = N_TXTOFF (*execp);
- obj_datasec (abfd)->filepos = N_DATOFF (*execp);
+ obj_textsec (abfd)->filepos = N_TXTOFF (execp);
+ obj_datasec (abfd)->filepos = N_DATOFF (execp);
/* The file offsets of the relocation info */
- obj_textsec (abfd)->rel_filepos = N_TRELOFF (*execp);
- obj_datasec (abfd)->rel_filepos = N_DRELOFF (*execp);
+ obj_textsec (abfd)->rel_filepos = N_TRELOFF (execp);
+ obj_datasec (abfd)->rel_filepos = N_DRELOFF (execp);
/* The file offsets of the string table and symbol table. */
- obj_sym_filepos (abfd) = N_SYMOFF (*execp);
- obj_str_filepos (abfd) = N_STROFF (*execp);
+ obj_sym_filepos (abfd) = N_SYMOFF (execp);
+ obj_str_filepos (abfd) = N_STROFF (execp);
/* Determine the architecture and machine type of the object file. */
#ifdef SET_ARCH_MACH
- SET_ARCH_MACH (abfd, *execp);
+ SET_ARCH_MACH (abfd, execp);
#else
bfd_default_set_arch_mach (abfd, DEFAULT_ARCH, 0);
#endif
if (obj_aout_subformat (abfd) == gnu_encap_format)
{
/* The file offsets of the relocation info */
- obj_textsec (abfd)->rel_filepos = N_GNU_TRELOFF (*execp);
- obj_datasec (abfd)->rel_filepos = N_GNU_DRELOFF (*execp);
+ obj_textsec (abfd)->rel_filepos = N_GNU_TRELOFF (execp);
+ obj_datasec (abfd)->rel_filepos = N_GNU_DRELOFF (execp);
/* The file offsets of the string table and symbol table. */
- obj_sym_filepos (abfd) = N_GNU_SYMOFF (*execp);
+ obj_sym_filepos (abfd) = N_GNU_SYMOFF (execp);
obj_str_filepos (abfd) = (obj_sym_filepos (abfd) + execp->a_syms);
abfd->flags |= HAS_LINENO | HAS_DEBUG | HAS_SYMS | HAS_LOCALS;
return abfd->xvec;
}
-extern bfd_boolean aout_32_write_syms
- PARAMS ((bfd * abfd));
+extern bfd_boolean aout_32_write_syms (bfd *);
static bfd_boolean
-MY (write_object_contents) (abfd)
- bfd *abfd;
+MY (write_object_contents) (bfd * abfd)
{
struct external_exec exec_bytes;
struct internal_exec *execp = exec_hdr (abfd);
- bfd_size_type text_size; /* dummy vars */
- file_ptr text_end;
memset (&exec_bytes, 0, sizeof (exec_bytes));
obj_reloc_entry_size (abfd) = RELOC_STD_SIZE;
if (adata (abfd).magic == undecided_magic)
- NAME (aout,adjust_sizes_and_vmas) (abfd, &text_size, &text_end);
+ NAME (aout,adjust_sizes_and_vmas) (abfd);
execp->a_syms = 0;
execp->a_entry = bfd_get_start_address (abfd);
execp->a_drsize = ((obj_datasec (abfd)->reloc_count) *
obj_reloc_entry_size (abfd));
- N_SET_MACHTYPE (*execp, 0xc);
- N_SET_FLAGS (*execp, aout_backend_info (abfd)->exec_hdr_flags);
+ N_SET_MACHTYPE (execp, 0xc);
+ N_SET_FLAGS (execp, aout_backend_info (abfd)->exec_hdr_flags);
NAME (aout,swap_exec_header_out) (abfd, execp, &exec_bytes);
H_PUT_32 (abfd, (bfd_get_symcount (abfd) * 12), exec_bytes.e_drelocs);
if (bfd_seek (abfd, (file_ptr) 0, FALSE) != 0
- || (bfd_bwrite ((PTR) &exec_bytes, (bfd_size_type) EXEC_BYTES_SIZE, abfd)
+ || (bfd_bwrite (&exec_bytes, (bfd_size_type) EXEC_BYTES_SIZE, abfd)
!= EXEC_BYTES_SIZE))
return FALSE;
if (bfd_get_symcount (abfd) != 0)
{
/* Skip the relocs to where we want to put the symbols. */
- if (bfd_seek (abfd, (file_ptr) (N_DRELOFF (*execp) + execp->a_drsize),
+ if (bfd_seek (abfd, (file_ptr) (N_DRELOFF (execp) + execp->a_drsize),
SEEK_SET) != 0)
return FALSE;
}
if (bfd_get_symcount (abfd) != 0)
{
- if (bfd_seek (abfd, (file_ptr) N_TRELOFF (*execp), SEEK_CUR) != 0)
+ if (bfd_seek (abfd, (file_ptr) N_TRELOFF (execp), SEEK_CUR) != 0)
return FALSE;
if (!NAME (aout,squirt_out_relocs) (abfd, obj_textsec (abfd)))
return FALSE;
- if (bfd_seek (abfd, (file_ptr) N_DRELOFF (*execp), SEEK_CUR) != 0)
+ if (bfd_seek (abfd, (file_ptr) N_DRELOFF (execp), SEEK_CUR) != 0)
return FALSE;
if (!NAME (aout,squirt_out_relocs) (abfd, obj_datasec (abfd)))
return FALSE;
return TRUE;
}
-/* convert the hp symbol type to be the same as aout64.h usage so we */
-/* can piggyback routines in aoutx.h. */
+/* Convert the hp symbol type to be the same as aout64.h usage so we
+ can piggyback routines in aoutx.h. */
static void
-convert_sym_type (sym_pointer, cache_ptr, abfd)
- struct external_nlist *sym_pointer ATTRIBUTE_UNUSED;
- aout_symbol_type *cache_ptr;
- bfd *abfd ATTRIBUTE_UNUSED;
+convert_sym_type (struct external_nlist *sym_pointer ATTRIBUTE_UNUSED,
+ aout_symbol_type *cache_ptr,
+ bfd *abfd ATTRIBUTE_UNUSED)
{
int name_type;
int new_type;
*/
void
-NAME (aout,swap_exec_header_in) (abfd, raw_bytes, execp)
- bfd *abfd;
- struct external_exec *raw_bytes;
- struct internal_exec *execp;
+NAME (aout,swap_exec_header_in) (bfd *abfd,
+ struct external_exec *raw_bytes,
+ struct internal_exec *execp)
{
struct external_exec *bytes = (struct external_exec *) raw_bytes;
*/
bfd_boolean
-MY (slurp_symbol_table) (abfd)
- bfd *abfd;
+MY (slurp_symbol_table) (bfd *abfd)
{
bfd_size_type symbol_bytes;
struct external_nlist *syms;
return FALSE;
syms = (struct external_nlist *) (strings + SYM_EXTRA_BYTES);
if (bfd_seek (abfd, obj_sym_filepos (abfd), SEEK_SET) != 0
- || bfd_bread ((PTR) syms, symbol_bytes, abfd) != symbol_bytes)
+ || bfd_bread (syms, symbol_bytes, abfd) != symbol_bytes)
{
bfd_release (abfd, syms);
return FALSE;
}
void
-MY (swap_std_reloc_in) (abfd, bytes, cache_ptr, symbols, symcount)
- bfd *abfd;
- struct hp300hpux_reloc *bytes;
- arelent *cache_ptr;
- asymbol **symbols;
- bfd_size_type symcount ATTRIBUTE_UNUSED;
+MY (swap_std_reloc_in) (bfd *abfd,
+ struct hp300hpux_reloc *bytes,
+ arelent *cache_ptr,
+ asymbol **symbols,
+ bfd_size_type symcount ATTRIBUTE_UNUSED)
{
int r_index;
int r_extern = 0;
}
bfd_boolean
-MY (slurp_reloc_table) (abfd, asect, symbols)
- bfd *abfd;
- sec_ptr asect;
- asymbol **symbols;
+MY (slurp_reloc_table) (bfd *abfd, sec_ptr asect, asymbol **symbols)
{
bfd_size_type count;
bfd_size_type reloc_size;
- PTR relocs;
+ void * relocs;
arelent *reloc_cache;
size_t each_size;
struct hp300hpux_reloc *rptr;
if (!reloc_cache && count != 0)
return FALSE;
- relocs = (PTR) bfd_alloc (abfd, reloc_size);
+ relocs = bfd_alloc (abfd, reloc_size);
if (!relocs && reloc_size != 0)
{
bfd_release (abfd, reloc_cache);
/* call aout_32 versions if the input file was generated by gcc */
/************************************************************************/
-long aout_32_canonicalize_symtab
- PARAMS ((bfd * abfd, asymbol ** location));
-long aout_32_get_symtab_upper_bound
- PARAMS ((bfd * abfd));
-long aout_32_canonicalize_reloc
- PARAMS ((bfd * abfd, sec_ptr section, arelent ** relptr,
- asymbol ** symbols));
+long aout_32_canonicalize_symtab (bfd *, asymbol **);
+long aout_32_get_symtab_upper_bound (bfd *);
+long aout_32_canonicalize_reloc (bfd *, sec_ptr, arelent **, asymbol **);
long
-MY (canonicalize_symtab) (abfd, location)
- bfd *abfd;
- asymbol **location;
+MY (canonicalize_symtab) (bfd *abfd, asymbol **location)
{
unsigned int counter = 0;
aout_symbol_type *symbase;
}
long
-MY (get_symtab_upper_bound) (abfd)
- bfd *abfd;
+MY (get_symtab_upper_bound) (bfd *abfd)
{
if (obj_aout_subformat (abfd) == gnu_encap_format)
return aout_32_get_symtab_upper_bound (abfd);
}
long
-MY (canonicalize_reloc) (abfd, section, relptr, symbols)
- bfd *abfd;
- sec_ptr section;
- arelent **relptr;
- asymbol **symbols;
+MY (canonicalize_reloc) (bfd *abfd,
+ sec_ptr section,
+ arelent **relptr,
+ asymbol **symbols)
{
arelent *tblptr = section->relocation;
unsigned int count;
+
if (obj_aout_subformat (abfd) == gnu_encap_format)
return aout_32_canonicalize_reloc (abfd, section, relptr, symbols);