https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85532
Bug ID: 85532
Summary: crtend.o built without --enable-initfini-array has bad
.eh_frame
Product: gcc
Version: 8.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: libgcc
Assignee: unassigned at gcc dot gnu.org
Reporter: amodra at gmail dot com
Target Milestone: ---
Seen on a cross from x86_64-linux to powerpc64le-linux. If gcc is configured
without --enable-initfini-array, the tests for linker initfini support are not
run because those tests are native only. HAVE_INITFINI_ARRAY_SUPPORT is thus
zero in auto-host.h, and crtend.o has bogus .eh_frame data past the zero
terminator. GNU ld complains about this:
error in gcc/crtend.o(.eh_frame); no .eh_frame_hdr table will be created
The problem has been worked around on various targets by adding
-fno-asynchronous-unwind-tables to CRTSTUFF_T_CFLAGS. See also pr31868 and
pr80037.
Building crtend.o (and crtendS.o) with -fno-asynchronous-unwind-tables is
necessary for a native --disable-initfini-array build too.
--- Comment #1 from Alan Modra <amodra at gcc dot gnu.org> ---
Author: amodra
Date: Fri Apr 27 09:06:39 2018
New Revision: 259702
URL: https://gcc.gnu.org/viewcvs?rev=259702&root=gcc&view=rev
Log:
PR85532, crtend.o built without --enable-initfini-array has bad .eh_frame
PR libgcc/85532
* config/rs6000/t-crtstuff (CRTSTUFF_T_CFLAGS): Add
-fno-asynchronous-unwind-tables.
Modified:
trunk/libgcc/ChangeLog
trunk/libgcc/config/rs6000/t-crtstuff