Re: linux-next: Tree for Jun 24 [build failure on arm64]

From: Will Deacon
Date: Wed Jun 24 2020 - 06:55:36 EST


On Wed, Jun 24, 2020 at 05:08:56PM +0800, Shaokun Zhang wrote:
> +Will Deacon,
>
> Hi Will,
>
> There's a build failure on arm64:
>
> CALL scripts/atomic/check-atomics.sh
> CALL scripts/checksyscalls.sh
> LD arch/arm64/kernel/vdso/vdso.so.dbg
> ld: unrecognized option '--no-eh-frame-hdr'
> ld: use the --help option for usage information
> arch/arm64/kernel/vdso/Makefile:64: recipe for target
> 'arch/arm64/kernel/vdso/vdso.so.dbg' failed
> make[1]: *** [arch/arm64/kernel/vdso/vdso.so.dbg] Error 1
> arch/arm64/Makefile:175: recipe for target 'vdso_prepare' failed
> make: *** [vdso_prepare] Error 2
>
> GCC version is followed:
> gcc (Ubuntu/Linaro 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609
>
> It seems caused by
> 87676cfca141 arm64: vdso: Disable dwarf unwinding through the sigreturn
> trampoline

Urgh, binutils quality strikes again. If you're able to reproduce locally,
can you try the diff below, please? All the linkers I have kicking around
seem to support --no-eh-frame-hdr.

Will

--->8

diff --git a/arch/arm64/kernel/vdso/Makefile b/arch/arm64/kernel/vdso/Makefile
index 1e5a940532da..97d3d3632093 100644
--- a/arch/arm64/kernel/vdso/Makefile
+++ b/arch/arm64/kernel/vdso/Makefile
@@ -23,8 +23,9 @@ btildflags-$(CONFIG_ARM64_BTI_KERNEL) += -z force-bti
# potential future proofing if we end up with internal calls to the exported
# routines, as x86 does (see 6f121e548f83 ("x86, vdso: Reimplement vdso.so
# preparation in build-time C")).
-ldflags-y := -shared -nostdlib -soname=linux-vdso.so.1 --hash-style=sysv \
- -Bsymbolic --no-eh-frame-hdr --build-id -n $(btildflags-y) -T
+ldflags-y := -shared -nostdlib -soname=linux-vdso.so.1 --hash-style=sysv \
+ -Bsymbolic $(call ld-option, --no-eh-frame-hdr) --build-id -n \
+ $(btildflags-y) -T

ccflags-y := -fno-common -fno-builtin -fno-stack-protector -ffixed-x18
ccflags-y += -DDISABLE_BRANCH_PROFILING