X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=bfd%2Fhp300hpux.c;h=fa21a77dd11f03bde1b7eea92a9bd212d55170c1;hb=5aa03310cef09e8c41aaa05152d9570dfe62ba81;hp=f6cdd192154bf17b32df9a33dfcdf9e15ac6d653;hpb=7dee875eb1820533b0804ebb06ed3290299c4ecd;p=platform%2Fupstream%2Fbinutils.git diff --git a/bfd/hp300hpux.c b/bfd/hp300hpux.c index f6cdd19..fa21a77 100644 --- a/bfd/hp300hpux.c +++ b/bfd/hp300hpux.c @@ -1,26 +1,26 @@ /* BFD backend for hp-ux 9000/300 - Copyright 1990, 1991, 1993, 1994, 1995, 1997, 2000, 2001, 2002, 2003 - Free Software Foundation, Inc. + Copyright (C) 1990-2014 Free Software Foundation, Inc. Written by Glenn Engel. -This file is part of BFD, the Binary File Descriptor library. + This file is part of BFD, the Binary File Descriptor library. -This program is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or -(at your option) any later version. + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ + 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., 51 Franklin Street - Fifth Floor, Boston, + MA 02110-1301, USA. */ -/* - hpux native ------------> | | + +/* hpux native ------------> | | | hp300hpux bfd | ----------> hpux w/gnu ext hpux w/gnu extension ----> | | @@ -104,7 +104,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* 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 @@ -129,10 +129,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* 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 @@ -148,7 +148,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ 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) @@ -194,26 +194,19 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ #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 @@ -226,13 +219,12 @@ long MY (canonicalize_reloc) /* 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)->_raw_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); @@ -281,12 +273,10 @@ MY (callback) (abfd) 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); @@ -319,7 +309,7 @@ MY (write_object_contents) (abfd) 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; @@ -352,14 +342,13 @@ MY (write_object_contents) (abfd) 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; @@ -451,10 +440,9 @@ DESCRIPTION */ 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; @@ -535,8 +523,7 @@ NAME (aout,swap_exec_header_in) (abfd, raw_bytes, execp) */ bfd_boolean -MY (slurp_symbol_table) (abfd) - bfd *abfd; +MY (slurp_symbol_table) (bfd *abfd) { bfd_size_type symbol_bytes; struct external_nlist *syms; @@ -558,7 +545,7 @@ MY (slurp_symbol_table) (abfd) 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; @@ -591,7 +578,6 @@ MY (slurp_symbol_table) (abfd) /* OK, now walk the new symtable, caching symbol properties */ { aout_symbol_type *cache_ptr = cached; - aout_symbol_type cache_save; /* Run through table and copy values */ for (sym_pointer = syms, cache_ptr = cached; sym_pointer < sym_end; sym_pointer++, cache_ptr++) @@ -605,7 +591,6 @@ MY (slurp_symbol_table) (abfd) length = bfd_get_8 (abfd, sym_pointer->e_length); cache_ptr->other = length; /* other not used, save length here */ - cache_save = *cache_ptr; convert_sym_type (sym_pointer, cache_ptr, abfd); if (!translate_from_native_sym_flags (abfd, cache_ptr)) return FALSE; @@ -641,12 +626,11 @@ MY (slurp_symbol_table) (abfd) } 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; @@ -720,14 +704,11 @@ MY (swap_std_reloc_in) (abfd, bytes, cache_ptr, symbols, symcount) } 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; @@ -766,7 +747,7 @@ doit: 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); @@ -802,18 +783,12 @@ doit: /* 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; @@ -831,8 +806,7 @@ MY (canonicalize_symtab) (abfd, location) } 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); @@ -843,14 +817,14 @@ MY (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);