Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=f38c5a696a1e775c70d8764b1b9c1a4e267448d3 Commit: f38c5a696a1e775c70d8764b1b9c1a4e267448d3 Parent: 236b1957447018d53cfd24ec774995c44e18998d Author: Kaz Kojima <[EMAIL PROTECTED]> AuthorDate: Fri Nov 2 12:29:37 2007 +0900 Committer: Paul Mundt <[EMAIL PROTECTED]> CommitDate: Fri Nov 2 12:29:37 2007 +0900
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: Kaz Kojima <[EMAIL PROTECTED]> Signed-off-by: Paul Mundt <[EMAIL PROTECTED]> --- arch/sh/kernel/vsyscall/vsyscall.lds.S | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/arch/sh/kernel/vsyscall/vsyscall.lds.S b/arch/sh/kernel/vsyscall/vsyscall.lds.S index c9bf2af..6d59ee7 100644 --- a/arch/sh/kernel/vsyscall/vsyscall.lds.S +++ b/arch/sh/kernel/vsyscall/vsyscall.lds.S @@ -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) - To unsubscribe from this list: send the line "unsubscribe git-commits-head" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html