[Bug c++/57897] Target x86_64-w64-mingw32 failed with '-mno-fentry isn't compatible with SEH'

ktietz at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Dec 12 22:08:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57897

--- Comment #9 from Kai Tietz <ktietz at gcc dot gnu.org> ---
Issue is related to option -fasynchronous-unwind-tables option.  Better said to
option -fasynchronous-unwind-tables without -funwind-tables.

Following sample can demonstrate issue pretty well:

'#include <intrin.h>
 int a;'

By compiling test by '$ x86_64-w64-mingw32-gcc -S -o t.s t_xmmintrin.c -O2
-fasynchronous-unwind-tables' I can reproduce the fentry message.
By removing option -fasynchronous-unwind-tables, or adding -funwind-tables
option message won't be displayed.

By following patch for me the issue is solved:

Index: i386.c
===================================================================
--- i386.c      (Revision 205859)
+++ i386.c      (Arbeitskopie)
@@ -3698,6 +3698,10 @@
     {
       if (opts->x_optimize >= 1 && !opts_set->x_flag_omit_frame_pointer)
        opts->x_flag_omit_frame_pointer = !USE_X86_64_FRAME_POINTER;
+      if (opts->x_flag_asynchronous_unwind_tables
+         && !opts_set->x_flag_unwind_tables
+         && TARGET_64BIT_MS_ABI)
+       opts->x_flag_unwind_tables = 1;
       if (opts->x_flag_asynchronous_unwind_tables == 2)
        opts->x_flag_unwind_tables
          = opts->x_flag_asynchronous_unwind_tables = 1;

I will apply this patch to trunk soon, if there are no objections.



More information about the Gcc-bugs mailing list