summaryrefslogtreecommitdiff
path: root/include/coff
diff options
context:
space:
mode:
authorCl?ment Chigot <clement.chigot@atos.net>2021-05-07 15:29:49 +0100
committerNick Clifton <nickc@redhat.com>2021-05-07 15:29:49 +0100
commit97834047e13bb9f30430331c27b11412a5ed6950 (patch)
tree99f794403e03440f9ed501fed952517bf98a4e9e /include/coff
parent3ecc00ec9cbb7a35d6e58bf86fddaa33126a479a (diff)
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.
Diffstat (limited to 'include/coff')
-rw-r--r--include/coff/internal.h1
-rw-r--r--include/coff/xcoff.h3
2 files changed, 4 insertions, 0 deletions
diff --git a/include/coff/internal.h b/include/coff/internal.h
index e79bf560c6e..8d757acb333 100644
--- a/include/coff/internal.h
+++ b/include/coff/internal.h
@@ -348,6 +348,7 @@ struct internal_aouthdr
#define C_BINCL 108 /* Marks beginning of include file */
#define C_EINCL 109 /* Marks ending of include file */
#define C_AIX_WEAKEXT 111 /* AIX definition of C_WEAKEXT. */
+#define C_DWARF 112 /* DWARF symbol */
#define C_NULL_VALUE 0x00de1e00 /* Value for a C_NULL deleted entry. */
diff --git a/include/coff/xcoff.h b/include/coff/xcoff.h
index 3170542865b..2b61545d611 100644
--- a/include/coff/xcoff.h
+++ b/include/coff/xcoff.h
@@ -65,6 +65,9 @@
#define SSUBTYP_DWABREV 0x60000
#define SSUBTYP_DWSTR 0x70000
#define SSUBTYP_DWRNGES 0x80000
+#define SSUBTYP_DWLOC 0x90000
+#define SSUBTYP_DWFRAME 0xA0000
+#define SSUBTYP_DWMAC 0xB0000
/* XCOFF uses a special .loader section with type STYP_LOADER. */
#define STYP_LOADER 0x1000