Fix .dwsect generation for XCOFF. Handle .function generated with DWARF on XCOFF.
authorCl?ment Chigot <clement.chigot@atos.net>
Fri, 7 May 2021 14:29:49 +0000 (15:29 +0100)
committerNick Clifton <nickc@redhat.com>
Fri, 7 May 2021 14:29:49 +0000 (15:29 +0100)
commit97834047e13bb9f30430331c27b11412a5ed6950
tree99f794403e03440f9ed501fed952517bf98a4e9e
parent3ecc00ec9cbb7a35d6e58bf86fddaa33126a479a
Fix .dwsect generation for XCOFF.  Handle .function generated with DWARF on XCOFF.

gas * config/tc-ppc.c (ppc_function): Update comment for
fifth argument.
(ppc_frob_symbol): Remove ppc_last_function check.
Make sure coff_last_function is reset.
Correctly set fsize when not provided in .function.
* testsuite/gas/ppc/aix.exp: New tests.
* testsuite/gas/ppc/xcoff-function-1-32.d: New test.
* testsuite/gas/ppc/xcoff-function-1-64.d: New test.
* testsuite/gas/ppc/xcoff-function-1.s: New test.

bfd * coff-rs6000.c (xcoff_dwsect_names): Add new DWARF
sections.
* coffgen.c (coff_pointerize_aux): Handle C_DWARF.
(coff_print_symbol): Likewise.
* libxcoff.h (XCOFF_DWSECT_NBR_NAMES): Update.

gas * config/obj-coff.c (coff_frob_symbol): Don't skip C_DWARF.
(coff_adjust_section_syms): Use corrext auxent for C_DWARF.
(coff_frob_section): Likewise.
* config/obj-coff.h (SA_GET_SECT_SCNLEN,
SA_GET_SECT_NRELOC, SA_SET_SECT_SCNLEN,
SA_SET_SECT_NRELOC) New defines.
(SET_SECTION_RELOCS): Adjust for C_DWARF.
* config/tc-ppc.c (ppc_frob_symbol): Don't skip C_DWARF.
(ppc_adjust_symtab): Reorder C_DWARF symbols.
* testsuite/gas/ppc/aix.exp: New tests.
* testsuite/gas/ppc/xcoff-dwsect-2-32.d: New test.
* testsuite/gas/ppc/xcoff-dwsect-2-64.d: New test.
* testsuite/gas/ppc/xcoff-dwsect-2.s: New test.

include * coff/internal.h (C_DWARF): New define.
* coff/xcoff.h (SSUBTYP_DWLOC, SSUBTYP_DWFRAME,
SSUBTYP_DWMAC): New defines.
18 files changed:
bfd/ChangeLog
bfd/coff-rs6000.c
bfd/coffgen.c
bfd/libxcoff.h
gas/ChangeLog
gas/config/obj-coff.c
gas/config/obj-coff.h
gas/config/tc-ppc.c
gas/testsuite/gas/ppc/aix.exp
gas/testsuite/gas/ppc/xcoff-dwsect-2-32.d [new file with mode: 0644]
gas/testsuite/gas/ppc/xcoff-dwsect-2-64.d [new file with mode: 0644]
gas/testsuite/gas/ppc/xcoff-dwsect-2.s [new file with mode: 0644]
gas/testsuite/gas/ppc/xcoff-function-1-32.d [new file with mode: 0644]
gas/testsuite/gas/ppc/xcoff-function-1-64.d [new file with mode: 0644]
gas/testsuite/gas/ppc/xcoff-function-1.s [new file with mode: 0644]
include/ChangeLog
include/coff/internal.h
include/coff/xcoff.h