X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=gas%2Fobj.h;h=301b841e4a5686804bd810e675668c337a770e8b;hb=514cd3a0f589fa48ca7bc9504c36436c0cbefcb2;hp=e3d45c26c09ef3907e9a159eeaff5227a9bd112b;hpb=fa803dc60f0bf01297674c41d001798e18ade4dc;p=deliverable%2Fbinutils-gdb.git diff --git a/gas/obj.h b/gas/obj.h index e3d45c26c0..301b841e4a 100644 --- a/gas/obj.h +++ b/gas/obj.h @@ -1,13 +1,13 @@ /* obj.h - defines the object dependent hooks for all object format backends. - Copyright (C) 1987, 1990, 1991, 1992 Free Software Foundation, Inc. + Copyright (C) 1987-2018 Free Software Foundation, Inc. This file is part of GAS, the GNU Assembler. GAS 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, or (at your option) + the Free Software Foundation; either version 3, or (at your option) any later version. GAS is distributed in the hope that it will be useful, @@ -16,52 +16,71 @@ GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with GAS; see the file COPYING. If not, write to - the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + along with GAS; see the file COPYING. If not, write to the Free + Software Foundation, 51 Franklin Street - Fifth Floor, Boston, MA + 02110-1301, USA. */ -char *obj_default_output_file_name PARAMS ((void)); -void obj_emit_relocations PARAMS ((char **where, fixS * fixP, - relax_addressT segment_address_in_file)); -void obj_emit_strings PARAMS ((char **where)); -void obj_emit_symbols PARAMS ((char **where, symbolS * symbols)); -void obj_read_begin_hook PARAMS ((void)); -#ifndef BFD_ASSEMBLER -void obj_crawl_symbol_chain PARAMS ((object_headers * headers)); -void obj_header_append PARAMS ((char **where, object_headers * headers)); -#ifndef obj_pre_write_hook -void obj_pre_write_hook PARAMS ((object_headers * headers)); -#endif +char *obj_default_output_file_name (void); +void obj_emit_relocations (char **where, fixS * fixP, + relax_addressT segment_address_in_file); +void obj_emit_strings (char **where); +void obj_emit_symbols (char **where, symbolS * symbols); +#ifndef obj_read_begin_hook +void obj_read_begin_hook (void); #endif #ifndef obj_symbol_new_hook -void obj_symbol_new_hook PARAMS ((symbolS * symbolP)); +void obj_symbol_new_hook (symbolS * symbolP); #endif -void obj_symbol_to_chars PARAMS ((char **where, symbolS * symbolP)); +void obj_symbol_to_chars (char **where, symbolS * symbolP); extern const pseudo_typeS obj_pseudo_table[]; -#ifdef BFD_ASSEMBLER struct format_ops { int flavor; - unsigned char dfl_leading_underscore : 1; - unsigned char emit_section_symbols : 1; - void (*frob_symbol) PARAMS ((symbolS *, int *)); - void (*frob_file) PARAMS ((void)); - bfd_vma (*s_get_size) PARAMS ((symbolS *)); - void (*s_set_size) PARAMS ((symbolS *, bfd_vma)); - bfd_vma (*s_get_align) PARAMS ((symbolS *)); - void (*s_set_align) PARAMS ((symbolS *, bfd_vma)); - void (*copy_symbol_attributes) PARAMS ((symbolS *, symbolS *)); - void (*generate_asm_lineno) PARAMS ((const char *, int)); - void (*process_stab) (/* what, string, type, other, desc */); - int (*sec_sym_ok_for_reloc) PARAMS ((asection *)); - void (*pop_insert) PARAMS ((void)); + unsigned dfl_leading_underscore : 1; + unsigned emit_section_symbols : 1; + void (*begin) (void); + void (*app_file) (const char *, int); + void (*frob_symbol) (symbolS *, int *); + void (*frob_file) (void); + void (*frob_file_before_adjust) (void); + void (*frob_file_before_fix) (void); + void (*frob_file_after_relocs) (void); + bfd_vma (*s_get_size) (symbolS *); + void (*s_set_size) (symbolS *, bfd_vma); + bfd_vma (*s_get_align) (symbolS *); + void (*s_set_align) (symbolS *, bfd_vma); + int (*s_get_other) (symbolS *); + void (*s_set_other) (symbolS *, int); + int (*s_get_desc) (symbolS *); + void (*s_set_desc) (symbolS *, int); + int (*s_get_type) (symbolS *); + void (*s_set_type) (symbolS *, int); + void (*copy_symbol_attributes) (symbolS *, symbolS *); + void (*generate_asm_lineno) (void); + void (*process_stab) (segT, int, const char *, int, int, int); + int (*separate_stab_sections) (void); + void (*init_stab_section) (segT); + int (*sec_sym_ok_for_reloc) (asection *); + void (*pop_insert) (void); + /* For configurations using ECOFF_DEBUGGING, this callback is used. */ + void (*ecoff_set_ext) (symbolS *, struct ecoff_extr *); + + void (*read_begin_hook) (void); + void (*symbol_new_hook) (symbolS *); + void (*symbol_clone_hook) (symbolS *, symbolS *); + void (*adjust_symtab) (void); }; +extern const struct format_ops elf_format_ops; +extern const struct format_ops ecoff_format_ops; +extern const struct format_ops coff_format_ops; +extern const struct format_ops aout_format_ops; + #ifndef this_format COMMON const struct format_ops *this_format; #endif -#endif /* end of obj.h */