Often reported issue with newer ld is:

error in /usr/lib/crtendS.o(.eh_frame); no .eh_frame_hdr table will be created.

The issue is that crtend is compiled with unwind table, and also it
places the special CIE into the .eh_frame indicating the end of section,
that is located before generated unwind table. New ld has assertion that
verifies that closing CIE is indeed the last CIE, causing the crypting
message to be issued, and refusing to generate dwarf unwind.

Add -fno-asynchronous-unwind-tables to disable unwind table generation
for crtbegin/crtend. While there, disable omitting the frame pointer [1].

Requested by:	kan [1]
Reviewed by:	kan
MFC after:	2 weeks
This commit is contained in:
Konstantin Belousov 2010-06-18 11:09:51 +00:00
parent cd1386ab50
commit 15744a9c4c
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=209294

View File

@ -17,7 +17,8 @@ CSTD?= gnu89
CFLAGS+= -DIN_GCC -DHAVE_LD_EH_FRAME_HDR -DDT_CONFIG -D__GLIBC__=3
CFLAGS+= -finhibit-size-directive -fno-inline-functions \
-fno-exceptions -fno-zero-initialized-in-bss \
-fno-zero-initialized-in-bss -fno-toplevel-reorder
-fno-zero-initialized-in-bss -fno-toplevel-reorder \
-fno-asynchronous-unwind-tables -fno-omit-frame-pointer
CFLAGS+= -I${GCCLIB}/include -I${GCCDIR}/config -I${GCCDIR} -I. \
-I${CCDIR}/cc_tools
CRTS_CFLAGS= -DCRTSTUFFS_O -DSHARED ${PICFLAG}