Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f38c5a69 authored by Kaz Kojima's avatar Kaz Kojima Committed by Paul Mundt
Browse files

sh: Terminate .eh_frame in VDSO with a 4-byte 0.



It's assumed that .eh_frame is terminated with 4-byte 0 in shared
libraries and executable.  It seems to be the case for VDSOs too.
Without this terminator, I saw failures when unwinding from VDSO,
though I don't know how other architectures handle this issue.
For the normal libs, crtendS.o gives this terminator.  We can use
such terminating objects.  Or we can add a 4-byte 0 with modifying
the linker script like as the patch below.

Signed-off-by: default avatarKaz Kojima <kkojima@rr.iij4u.or.jp>
Signed-off-by: default avatarPaul Mundt <lethal@linux-sh.org>
parent 236b1957
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -38,7 +38,10 @@ SECTIONS
	.text		: { *(.text) } 			:text	=0x90909090
	.note		: { *(.note.*) }		:text	:note
	.eh_frame_hdr	: { *(.eh_frame_hdr ) }		:text	:eh_frame_hdr
	.eh_frame	: { KEEP (*(.eh_frame)) }	:text
	.eh_frame	: {
		KEEP (*(.eh_frame))
		LONG (0)
	}						:text
	.dynamic	: { *(.dynamic) }		:text	:dynamic
	.useless	: {
	      *(.got.plt) *(.got)