diff options
Diffstat (limited to 'sys-kernel/armv8multi-sources/files/0015-ARM64-VDSO-fix-makefile-with-gold-linker-as-default.patch')
-rw-r--r-- | sys-kernel/armv8multi-sources/files/0015-ARM64-VDSO-fix-makefile-with-gold-linker-as-default.patch | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/sys-kernel/armv8multi-sources/files/0015-ARM64-VDSO-fix-makefile-with-gold-linker-as-default.patch b/sys-kernel/armv8multi-sources/files/0015-ARM64-VDSO-fix-makefile-with-gold-linker-as-default.patch new file mode 100644 index 0000000..6076288 --- /dev/null +++ b/sys-kernel/armv8multi-sources/files/0015-ARM64-VDSO-fix-makefile-with-gold-linker-as-default.patch @@ -0,0 +1,47 @@ +From 87b70a52412f3e1dcb25b04b9e4e6ee35ba23873 Mon Sep 17 00:00:00 2001 +From: Steve Arnold <nerdboy@gentoo.org> +Date: Mon, 20 Nov 2017 00:14:02 -0800 +Subject: [PATCH] ARM64: VDSO: fix makefile with gold linker as default + +* otherwise vdso link fails with mismatched shared/static flags + +Signed-off-by: Steve Arnold <nerdboy@gentoo.org> +--- + arch/arm64/kernel/vdso/Makefile | 14 ++++++++++---- + 1 file changed, 10 insertions(+), 4 deletions(-) + +diff --git a/arch/arm64/kernel/vdso/Makefile b/arch/arm64/kernel/vdso/Makefile +index 62c84f7cb01b..aa69bab57f4d 100644 +--- a/arch/arm64/kernel/vdso/Makefile ++++ b/arch/arm64/kernel/vdso/Makefile +@@ -11,9 +11,13 @@ obj-vdso := gettimeofday.o note.o sigreturn.o + targets := $(obj-vdso) vdso.so vdso.so.dbg + obj-vdso := $(addprefix $(obj)/, $(obj-vdso)) + +-ccflags-y := -shared -fno-common -fno-builtin +-ccflags-y += -nostdlib -Wl,-soname=linux-vdso.so.1 \ +- $(call cc-ldoption, -Wl$(comma)--hash-style=sysv) ++ccflags-y := -fPIC -fno-common -fno-builtin -fno-stack-protector ++ ++VDSO_LDFLAGS := -Wl,-Bsymbolic -Wl,--no-undefined -Wl,-soname=linux-vdso.so.1 ++VDSO_LDFLAGS += -nostdlib -shared ++VDSO_LDFLAGS += $(call cc-ldoption, -Wl$(comma)--hash-style=sysv) ++VDSO_LDFLAGS += $(call cc-ldoption, -Wl$(comma)--build-id) ++VDSO_LDFLAGS += $(call cc-ldoption, -fuse-ld=bfd) + + # Disable gcov profiling for VDSO code + GCOV_PROFILE := n +@@ -54,7 +58,9 @@ $(obj-vdso): %.o: %.S FORCE + + # Actual build commands + quiet_cmd_vdsold = VDSOL $@ +- cmd_vdsold = $(CC) $(c_flags) -Wl,-n -Wl,-T $^ -o $@ ++ cmd_vdsold = $(CC) $(c_flags) $(VDSO_LDFLAGS) \ ++ -Wl,-n -Wl,-T $^ -o $@ ++ + quiet_cmd_vdsoas = VDSOA $@ + cmd_vdsoas = $(CC) $(a_flags) -c -o $@ $< + +-- +2.15.0 + |