Re: [PATCH for 4.4, 4.9 and 4.14] x86/vdso: Pass --eh-frame-hdr to the linker

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, May 14, 2019 at 09:50:04AM +0200, Greg Kroah-Hartman wrote:
On Tue, May 14, 2019 at 04:34:29PM +0900, Nobuhiro Iwamatsu wrote:
From: Alistair Strachan <astrachan@xxxxxxxxxx>

commit cd01544a268ad8ee5b1dfe42c4393f1095f86879 upstream.

Commit

  379d98ddf413 ("x86: vdso: Use $LD instead of $CC to link")

accidentally broke unwinding from userspace, because ld would strip the
.eh_frame sections when linking.

Originally, the compiler would implicitly add --eh-frame-hdr when
invoking the linker, but when this Makefile was converted from invoking
ld via the compiler, to invoking it directly (like vmlinux does),
the flag was missed. (The EH_FRAME section is important for the VDSO
shared libraries, but not for vmlinux.)

Fix the problem by explicitly specifying --eh-frame-hdr, which restores
parity with the old method.

See relevant bug reports for additional info:

  https://bugzilla.kernel.org/show_bug.cgi?id=201741
  https://bugzilla.redhat.com/show_bug.cgi?id=1659295

Fixes: 379d98ddf413 ("x86: vdso: Use $LD instead of $CC to link")
Reported-by: Florian Weimer <fweimer@xxxxxxxxxx>
Reported-by: Carlos O'Donell <carlos@xxxxxxxxxx>
Reported-by: "H. J. Lu" <hjl.tools@xxxxxxxxx>
Signed-off-by: Alistair Strachan <astrachan@xxxxxxxxxx>
Signed-off-by: Borislav Petkov <bp@xxxxxxx>
Tested-by: Laura Abbott <labbott@xxxxxxxxxx>
Cc: Andy Lutomirski <luto@xxxxxxxxxx>
Cc: Carlos O'Donell <carlos@xxxxxxxxxx>
Cc: "H. Peter Anvin" <hpa@xxxxxxxxx>
Cc: Ingo Molnar <mingo@xxxxxxxxxx>
Cc: Joel Fernandes <joel@xxxxxxxxxxxxxxxxx>
Cc: kernel-team@xxxxxxxxxxx
Cc: Laura Abbott <labbott@xxxxxxxxxx>
Cc: stable <stable@xxxxxxxxxxxxxxx>
Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
Cc: X86 ML <x86@xxxxxxxxxx>
Link: https://lkml.kernel.org/r/20181214223637.35954-1-astrachan@xxxxxxxxxx
Signed-off-by: Nobuhiro Iwamatsu <nobuhiro1.iwamatsu@xxxxxxxxxxxxx>
---
 arch/x86/entry/vdso/Makefile | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

This is already in the 4.14 stable queue.

Sasha, how did you tools miss it for 4.4 and 4.9?

This commit claims it fixes 379d98ddf413 ("x86: vdso: Use $LD instead of
$CC to link"), which is not in 4.9 nor 4.4, nor does 379d98ddf413 apply
cleanly to 4.9 or 4.4, and neither does the backport of 379d98ddf413
for 4.14 provided to us by the google folks. That's how :)

--
Thanks,
Sasha



[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux