This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: Move dwarf2 frame tables to read-only section for AIX
- From: "Joseph S. Myers" <joseph at codesourcery dot com>
- To: Andrew Dixie <andrewdixie50 at gmail dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>, David Edelsohn <dje dot gcc at gmail dot com>, <jason at redhat dot com>, <ccoutant at google dot com>
- Date: Mon, 22 Sep 2014 14:47:45 +0000
- Subject: Re: Move dwarf2 frame tables to read-only section for AIX
- Authentication-results: sourceware.org; auth=none
- References: <CAPrih1nkjp38uKZjDEgOdja_a9+Ozuso-UcYwYTHvpDymaKarQ at mail dot gmail dot com>
On Mon, 22 Sep 2014, Andrew Dixie wrote:
> I altered the dwarf2 frame and exception table generation so the
> decision on whether to use a read-only or read-write section is an
> independent decision from how the frame tables are registered.
> I renamed EH_FRAME_IN_DATA_SECTION to EH_FRAME_THROUGH_COLLECT2, as it
> now supports read-only, has slightly changed semantics, and I think
> this name better reflects what it currently does rather than what it
> historically did.
If you rename a target macro, the old target macro name needs to be
poisoned in system.h.
> 2014-09-22 Andrew Dixie <andrewd@gentrack.com>
>
> Move exception tables to read-only memory on AIX.
> * dwarf2asm.c (dw2_asm_output_encoded_addr_rtx): Add call to
> ASM_OUTPUT_DWARF_DATAREL.
> * dwarf2out.c (switch_to_eh_frame_section): Use a read-only section
> even if EH_FRAME_SECTION_NAME is undefined. Add call to
> EH_FRAME_THROUGH_COLLECT2.
> * except.c (switch_to_exception_section): Use a read-only section
> even if EH_FRAME_SECTION_NAME is undefined.
> * collect2.c (write_c_file_stat): Provide dbase on AIX.
> (scan_prog_file): Don't output __dso_handle nor __gcc_unwind_dbase.
> * config/rs6000/aix.h (ASM_PREFERRED_EH_DATA_FORMAT): define.
> (EH_TABLES_CAN_BE_READ_ONLY): define.
> (ASM_OUTPUT_DWARF_PCREL): define.
> (ASM_OUTPUT_DWARF_DATAREL): define.
> (EH_FRAME_IN_DATA_SECTION): undefine.
> (EH_FRAME_THROUGH_COLLECT2): define.
> * config/rs6000/rs6000-aix.c: new file.
> (rs6000_aix_asm_output_dwarf_pcrel): new function.
> (rs6000_aix_asm_output_dwarf_datarel): new function.
> * config/rs6000/rs6000.c (rs6000_xcoff_asm_init_sections): remove
> assignment of exception_section.
This ChangeLog entry seems very incomplete. It doesn't mention the
changes for other architectures, or to defaults.h, or to the
documentation, for example.
--
Joseph S. Myers
joseph@codesourcery.com