This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[patch] prevent .cfi_personality/.cfi_lsda on !dwarf eh configurations


Hello,

Bootstrap is currently broken with Ada on x86_64-windows using SEH exceptions,
with several stage2/stage3 object comparison failures like

  Bootstrap comparison failure!
  gcc/ada/ali-util.o differs
  gcc/ada/ali.o differs
  ...

(PR 81470)

The differences come from variations between -g and -g0 on the placement of
data attached to LDFCM labels, in particular those related to the emission of
.cfi_personality and .cfi_lsda by dwarf2out_do_cfi_startproc.

These aren't needed for SEH anyway, so the proposed patch just prevents the
generation of those .cfi notes if the target eh format isn't dwarf2.

We have used this for a couple of years on gcc-6, it cures the same
bootstrap failure on gcc-7, and bootstraps + regression-tests fine
with mainline on x86_64-linux.

OK to commit ?

2017-11-30  Tristan Gingold  <gingold@adacore.com>

        * dwarf2out.c (dwarf2out_do_cfi_startproc): Only emit
        .cfi_personality or .cfi_lsda if the eh data format is dwarf2.

Attachment: cfi_startproc-nondwarf2.diff
Description: Binary data


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]