diff options
Diffstat (limited to 'bfd/hp300hpux.c')
-rw-r--r-- | bfd/hp300hpux.c | 100 |
1 files changed, 56 insertions, 44 deletions
diff --git a/bfd/hp300hpux.c b/bfd/hp300hpux.c index 458023959a6..d4eb3aad1e3 100644 --- a/bfd/hp300hpux.c +++ b/bfd/hp300hpux.c @@ -1,5 +1,5 @@ /* BFD backend for hp-ux 9000/300 - Copyright 1990, 1991, 1993, 1994, 1995, 1997, 2000, 2001 + Copyright 1990, 1991, 1993, 1994, 1995, 1997, 2000, 2001, 2002 Free Software Foundation, Inc. Written by Glenn Engel. @@ -194,16 +194,26 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #include "aoutx.h" -static const bfd_target * MY (callback) PARAMS ((bfd *)); -static boolean MY (write_object_contents) PARAMS ((bfd *)); -static void convert_sym_type PARAMS ((struct external_nlist *, aout_symbol_type *, bfd *)); - -boolean MY (slurp_symbol_table) PARAMS ((bfd *)); -void MY (swap_std_reloc_in) PARAMS ((bfd *, struct hp300hpux_reloc *, arelent *, asymbol **, bfd_size_type)); -boolean MY (slurp_reloc_table) PARAMS ((bfd *, sec_ptr, asymbol **)); -long MY (get_symtab) PARAMS ((bfd *, asymbol **)); -long MY (get_symtab_upper_bound) PARAMS ((bfd *)); -long MY (canonicalize_reloc) PARAMS ((bfd *, sec_ptr, arelent **, asymbol **)); +static const bfd_target * MY (callback) + PARAMS ((bfd *)); +static bfd_boolean MY (write_object_contents) + PARAMS ((bfd *)); +static void convert_sym_type + PARAMS ((struct external_nlist *, aout_symbol_type *, bfd *)); + +bfd_boolean MY (slurp_symbol_table) + PARAMS ((bfd *)); +void MY (swap_std_reloc_in) + PARAMS ((bfd *, struct hp300hpux_reloc *, arelent *, asymbol **, + bfd_size_type)); +bfd_boolean MY (slurp_reloc_table) + PARAMS ((bfd *, sec_ptr, asymbol **)); +long MY (get_symtab) + PARAMS ((bfd *, asymbol **)); +long MY (get_symtab_upper_bound) + PARAMS ((bfd *)); +long MY (canonicalize_reloc) + PARAMS ((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 @@ -271,9 +281,10 @@ MY (callback) (abfd) return abfd->xvec; } -extern boolean aout_32_write_syms PARAMS ((bfd * abfd)); +extern bfd_boolean aout_32_write_syms + PARAMS ((bfd * abfd)); -static boolean +static bfd_boolean MY (write_object_contents) (abfd) bfd *abfd; { @@ -307,10 +318,10 @@ MY (write_object_contents) (abfd) /* this is really the sym table size but we store it in drelocs */ H_PUT_32 (abfd, (bfd_get_symcount (abfd) * 12), exec_bytes.e_drelocs); - if (bfd_seek (abfd, (file_ptr) 0, false) != 0 + if (bfd_seek (abfd, (file_ptr) 0, FALSE) != 0 || (bfd_bwrite ((PTR) &exec_bytes, (bfd_size_type) EXEC_BYTES_SIZE, abfd) != EXEC_BYTES_SIZE)) - return false; + return FALSE; /* Write out the symbols, and then the relocs. We must write out the symbols first so that we know the symbol indices. */ @@ -320,25 +331,25 @@ MY (write_object_contents) (abfd) /* Skip the relocs to where we want to put the symbols. */ if (bfd_seek (abfd, (file_ptr) (N_DRELOFF (*execp) + execp->a_drsize), SEEK_SET) != 0) - return false; + return FALSE; } if (!MY (write_syms) (abfd)) - return false; + return FALSE; if (bfd_get_symcount (abfd) != 0) { if (bfd_seek (abfd, (file_ptr) N_TRELOFF (*execp), SEEK_CUR) != 0) - return false; + return FALSE; if (!NAME (aout,squirt_out_relocs) (abfd, obj_textsec (abfd))) - return false; + return FALSE; if (bfd_seek (abfd, (file_ptr) N_DRELOFF (*execp), SEEK_CUR) != 0) - return false; + return FALSE; if (!NAME (aout,squirt_out_relocs) (abfd, obj_datasec (abfd))) - return false; + return FALSE; } - return true; + return TRUE; } /* convert the hp symbol type to be the same as aout64.h usage so we */ @@ -523,7 +534,7 @@ NAME (aout,swap_exec_header_in) (abfd, raw_bytes, execp) ... */ -boolean +bfd_boolean MY (slurp_symbol_table) (abfd) bfd *abfd; { @@ -538,19 +549,19 @@ MY (slurp_symbol_table) (abfd) /* If there's no work to be done, don't do any */ if (obj_aout_symbols (abfd) != (aout_symbol_type *) NULL) - return true; + return TRUE; symbol_bytes = exec_hdr (abfd)->a_syms; amt = symbol_bytes + SYM_EXTRA_BYTES; strings = (char *) bfd_alloc (abfd, amt); if (!strings) - return false; + 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_release (abfd, syms); - return false; + return FALSE; } sym_end = (struct external_nlist *) (((char *) syms) + symbol_bytes); @@ -570,7 +581,7 @@ MY (slurp_symbol_table) (abfd) amt *= sizeof (aout_symbol_type); cached = (aout_symbol_type *) bfd_zalloc (abfd, amt); if (cached == NULL && num_syms != 0) - return false; + return FALSE; /* as we march thru the hp symbol table, convert it into a list of null terminated strings to hold the symbol names. Make sure any @@ -597,7 +608,7 @@ MY (slurp_symbol_table) (abfd) cache_save = *cache_ptr; convert_sym_type (sym_pointer, cache_ptr, abfd); if (!translate_from_native_sym_flags (abfd, cache_ptr)) - return false; + return FALSE; /********************************************************/ /* for hpux, the 'lenght' value indicates the length of */ @@ -626,7 +637,7 @@ MY (slurp_symbol_table) (abfd) obj_aout_symbols (abfd) = cached; - return true; + return TRUE; } void @@ -708,7 +719,7 @@ MY (swap_std_reloc_in) (abfd, bytes, cache_ptr, symbols, symcount) } } -boolean +bfd_boolean MY (slurp_reloc_table) (abfd, asect, symbols) bfd *abfd; sec_ptr asect; @@ -724,10 +735,10 @@ MY (slurp_reloc_table) (abfd, asect, symbols) arelent *cache_ptr; if (asect->relocation) - return true; + return TRUE; if (asect->flags & SEC_CONSTRUCTOR) - return true; + return TRUE; if (asect == obj_datasec (abfd)) { @@ -742,31 +753,31 @@ MY (slurp_reloc_table) (abfd, asect, symbols) } bfd_set_error (bfd_error_invalid_operation); - return false; + return FALSE; doit: if (bfd_seek (abfd, asect->rel_filepos, SEEK_SET) != 0) - return false; + return FALSE; each_size = obj_reloc_entry_size (abfd); count = reloc_size / each_size; reloc_cache = (arelent *) bfd_zalloc (abfd, count * sizeof (arelent)); if (!reloc_cache && count != 0) - return false; + return FALSE; relocs = (PTR) bfd_alloc (abfd, reloc_size); if (!relocs && reloc_size != 0) { bfd_release (abfd, reloc_cache); - return false; + return FALSE; } if (bfd_bread (relocs, reloc_size, abfd) != reloc_size) { bfd_release (abfd, relocs); bfd_release (abfd, reloc_cache); - return false; + return FALSE; } rptr = (struct hp300hpux_reloc *) relocs; @@ -782,7 +793,7 @@ doit: bfd_release (abfd, relocs); asect->relocation = reloc_cache; asect->reloc_count = count; - return true; + return TRUE; } /************************************************************************/ @@ -791,12 +802,13 @@ doit: /* call aout_32 versions if the input file was generated by gcc */ /************************************************************************/ -long aout_32_get_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_get_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 MY (get_symtab) (abfd, location) |