gas obj_end
authorAlan Modra <amodra@gmail.com>
Wed, 1 Feb 2023 12:41:30 +0000 (23:11 +1030)
committerAlan Modra <amodra@gmail.com>
Wed, 1 Feb 2023 22:18:29 +0000 (08:48 +1030)
commit2ccd2276a42ee8b8cc4b9084735dcf6a2521c2a1
tree8c5ed1376ca686bcf7d232e14ecbd3105f068539
parent43e5fbd8b78848c89c1d0305396464039e452688
gas obj_end

Provide a way for config/obj-* to clean up at end of assembly, and do
so for ELF.

* obj.h (struct format_ops): Add "end".
* config/obj-aout.c (aout_format_ops): Init new field.
* config/obj-coff.c (coff_format_ops): Likewise.
* config/obj-ecoff.c (ecoff_format_ops): Likewise.
* config/obj-elf.c (elf_format_ops): Likewise.
(elf_begin): Move later in file.  Clear some more variables.
(comment_section): Make file scope.
(free_section_idx): Rewrite.
(elf_adjust_symtab): Expand str_htab_create call and use
free_section_idx as delete function.
(elf_frob_file_after_relocs): Don't clean up groups.indexes here.
(elf_end): New function.
* config/obj-elf.h (obj_end): Define.
* config/obj-multi.h (obj_end): Define.
* output-file.c (output_file_close): Call obj_end.
gas/config/obj-aout.c
gas/config/obj-coff.c
gas/config/obj-ecoff.c
gas/config/obj-elf.c
gas/config/obj-elf.h
gas/config/obj-multi.h
gas/obj.h
gas/output-file.c