From: vincenzo.frascino at arm.com (Vincenzo Frascino) Subject: [PATCH v6 15/19] arm64: Add vDSO compat support Date: Thu, 30 May 2019 15:15:27 +0100 [thread overview] Message-ID: <20190530141531.43462-16-vincenzo.frascino@arm.com> (raw) In-Reply-To: <20190530141531.43462-1-vincenzo.frascino@arm.com> Add vDSO compat support to the arm64 building system. Cc: Catalin Marinas <catalin.marinas at arm.com> Cc: Will Deacon <will.deacon at arm.com> Signed-off-by: Vincenzo Frascino <vincenzo.frascino at arm.com> --- arch/arm64/Kconfig | 1 + arch/arm64/Makefile | 23 +++++++++++++++++++++-- arch/arm64/kernel/Makefile | 6 +++++- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 952c9f8cf3b8..3e1d4f8347f4 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -108,6 +108,7 @@ config ARM64 select GENERIC_STRNLEN_USER select GENERIC_TIME_VSYSCALL select GENERIC_GETTIMEOFDAY + select GENERIC_COMPAT_VDSO if !CPU_BIG_ENDIAN select HANDLE_DOMAIN_IRQ select HARDIRQS_SW_RESEND select HAVE_PCI diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile index b025304bde46..4db50d4b2476 100644 --- a/arch/arm64/Makefile +++ b/arch/arm64/Makefile @@ -49,9 +49,25 @@ $(warning Detected assembler with broken .inst; disassembly will be unreliable) endif endif -KBUILD_CFLAGS += -mgeneral-regs-only $(lseinstr) $(brokengasinst) +ifeq ($(CONFIG_GENERIC_COMPAT_VDSO), y) + CROSS_COMPILE_COMPAT ?= $(CONFIG_CROSS_COMPILE_COMPAT_VDSO:"%"=%) + + ifeq ($(CONFIG_CC_IS_CLANG), y) + $(warning CROSS_COMPILE_COMPAT is clang, the compat vDSO will not be built) + else ifeq ($(CROSS_COMPILE_COMPAT),) + $(warning CROSS_COMPILE_COMPAT not defined or empty, the compat vDSO will not be built) + else ifeq ($(shell which $(CROSS_COMPILE_COMPAT)gcc 2> /dev/null),) + $(error $(CROSS_COMPILE_COMPAT)gcc not found, check CROSS_COMPILE_COMPAT) + else + export CROSS_COMPILE_COMPAT + export CONFIG_COMPAT_VDSO := y + compat_vdso := -DCONFIG_COMPAT_VDSO=1 + endif +endif + +KBUILD_CFLAGS += -mgeneral-regs-only $(lseinstr) $(brokengasinst) $(compat_vdso) KBUILD_CFLAGS += -fno-asynchronous-unwind-tables -KBUILD_AFLAGS += $(lseinstr) $(brokengasinst) +KBUILD_AFLAGS += $(lseinstr) $(brokengasinst) $(compat_vdso) KBUILD_CFLAGS += $(call cc-option,-mabi=lp64) KBUILD_AFLAGS += $(call cc-option,-mabi=lp64) @@ -163,6 +179,9 @@ ifeq ($(KBUILD_EXTMOD),) prepare: vdso_prepare vdso_prepare: prepare0 $(Q)$(MAKE) $(build)=arch/arm64/kernel/vdso include/generated/vdso-offsets.h + $(if $(CONFIG_COMPAT_VDSO),$(Q)$(MAKE) \ + $(build)=arch/arm64/kernel/vdso32 \ + include/generated/vdso32-offsets.h) endif define archhelp diff --git a/arch/arm64/kernel/Makefile b/arch/arm64/kernel/Makefile index 9e7dcb2c31c7..478491f07b4f 100644 --- a/arch/arm64/kernel/Makefile +++ b/arch/arm64/kernel/Makefile @@ -28,7 +28,10 @@ $(obj)/%.stub.o: $(obj)/%.o FORCE $(call if_changed,objcopy) obj-$(CONFIG_COMPAT) += sys32.o signal32.o \ - sigreturn32.o sys_compat.o + sys_compat.o +ifneq ($(CONFIG_COMPAT_VDSO), y) +obj-$(CONFIG_COMPAT) += sigreturn32.o +endif obj-$(CONFIG_KUSER_HELPERS) += kuser32.o obj-$(CONFIG_FUNCTION_TRACER) += ftrace.o entry-ftrace.o obj-$(CONFIG_MODULES) += module.o @@ -62,6 +65,7 @@ obj-$(CONFIG_ARM64_SSBD) += ssbd.o obj-$(CONFIG_ARM64_PTR_AUTH) += pointer_auth.o obj-y += vdso/ probes/ +obj-$(CONFIG_COMPAT_VDSO) += vdso32/ head-y := head.o extra-y += $(head-y) vmlinux.lds -- 2.21.0
WARNING: multiple messages have this Message-ID (diff)
From: vincenzo.frascino@arm.com (Vincenzo Frascino) Subject: [PATCH v6 15/19] arm64: Add vDSO compat support Date: Thu, 30 May 2019 15:15:27 +0100 [thread overview] Message-ID: <20190530141531.43462-16-vincenzo.frascino@arm.com> (raw) Message-ID: <20190530141527._09q2C0kRFdjQmUX3w65bh_1p2KSdPaRjzN5ObGK0iA@z> (raw) In-Reply-To: <20190530141531.43462-1-vincenzo.frascino@arm.com> Add vDSO compat support to the arm64 building system. Cc: Catalin Marinas <catalin.marinas at arm.com> Cc: Will Deacon <will.deacon at arm.com> Signed-off-by: Vincenzo Frascino <vincenzo.frascino at arm.com> --- arch/arm64/Kconfig | 1 + arch/arm64/Makefile | 23 +++++++++++++++++++++-- arch/arm64/kernel/Makefile | 6 +++++- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 952c9f8cf3b8..3e1d4f8347f4 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig @@ -108,6 +108,7 @@ config ARM64 select GENERIC_STRNLEN_USER select GENERIC_TIME_VSYSCALL select GENERIC_GETTIMEOFDAY + select GENERIC_COMPAT_VDSO if !CPU_BIG_ENDIAN select HANDLE_DOMAIN_IRQ select HARDIRQS_SW_RESEND select HAVE_PCI diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile index b025304bde46..4db50d4b2476 100644 --- a/arch/arm64/Makefile +++ b/arch/arm64/Makefile @@ -49,9 +49,25 @@ $(warning Detected assembler with broken .inst; disassembly will be unreliable) endif endif -KBUILD_CFLAGS += -mgeneral-regs-only $(lseinstr) $(brokengasinst) +ifeq ($(CONFIG_GENERIC_COMPAT_VDSO), y) + CROSS_COMPILE_COMPAT ?= $(CONFIG_CROSS_COMPILE_COMPAT_VDSO:"%"=%) + + ifeq ($(CONFIG_CC_IS_CLANG), y) + $(warning CROSS_COMPILE_COMPAT is clang, the compat vDSO will not be built) + else ifeq ($(CROSS_COMPILE_COMPAT),) + $(warning CROSS_COMPILE_COMPAT not defined or empty, the compat vDSO will not be built) + else ifeq ($(shell which $(CROSS_COMPILE_COMPAT)gcc 2> /dev/null),) + $(error $(CROSS_COMPILE_COMPAT)gcc not found, check CROSS_COMPILE_COMPAT) + else + export CROSS_COMPILE_COMPAT + export CONFIG_COMPAT_VDSO := y + compat_vdso := -DCONFIG_COMPAT_VDSO=1 + endif +endif + +KBUILD_CFLAGS += -mgeneral-regs-only $(lseinstr) $(brokengasinst) $(compat_vdso) KBUILD_CFLAGS += -fno-asynchronous-unwind-tables -KBUILD_AFLAGS += $(lseinstr) $(brokengasinst) +KBUILD_AFLAGS += $(lseinstr) $(brokengasinst) $(compat_vdso) KBUILD_CFLAGS += $(call cc-option,-mabi=lp64) KBUILD_AFLAGS += $(call cc-option,-mabi=lp64) @@ -163,6 +179,9 @@ ifeq ($(KBUILD_EXTMOD),) prepare: vdso_prepare vdso_prepare: prepare0 $(Q)$(MAKE) $(build)=arch/arm64/kernel/vdso include/generated/vdso-offsets.h + $(if $(CONFIG_COMPAT_VDSO),$(Q)$(MAKE) \ + $(build)=arch/arm64/kernel/vdso32 \ + include/generated/vdso32-offsets.h) endif define archhelp diff --git a/arch/arm64/kernel/Makefile b/arch/arm64/kernel/Makefile index 9e7dcb2c31c7..478491f07b4f 100644 --- a/arch/arm64/kernel/Makefile +++ b/arch/arm64/kernel/Makefile @@ -28,7 +28,10 @@ $(obj)/%.stub.o: $(obj)/%.o FORCE $(call if_changed,objcopy) obj-$(CONFIG_COMPAT) += sys32.o signal32.o \ - sigreturn32.o sys_compat.o + sys_compat.o +ifneq ($(CONFIG_COMPAT_VDSO), y) +obj-$(CONFIG_COMPAT) += sigreturn32.o +endif obj-$(CONFIG_KUSER_HELPERS) += kuser32.o obj-$(CONFIG_FUNCTION_TRACER) += ftrace.o entry-ftrace.o obj-$(CONFIG_MODULES) += module.o @@ -62,6 +65,7 @@ obj-$(CONFIG_ARM64_SSBD) += ssbd.o obj-$(CONFIG_ARM64_PTR_AUTH) += pointer_auth.o obj-y += vdso/ probes/ +obj-$(CONFIG_COMPAT_VDSO) += vdso32/ head-y := head.o extra-y += $(head-y) vmlinux.lds -- 2.21.0
next prev parent reply other threads:[~2019-05-30 14:15 UTC|newest] Thread overview: 126+ messages / expand[flat|nested] mbox.gz Atom feed top 2019-05-30 14:15 [PATCH v6 00/19] Unify vDSOs across more architectures vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-30 14:15 ` [PATCH v6 01/19] kernel: Standardize vdso_datapage vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-31 8:16 ` arnd 2019-05-31 8:16 ` Arnd Bergmann 2019-06-04 12:05 ` vincenzo.frascino 2019-06-04 12:05 ` Vincenzo Frascino 2019-06-10 17:47 ` huw 2019-06-10 17:47 ` Huw Davies 2019-06-10 17:47 ` Huw Davies 2019-06-10 9:27 ` huw 2019-06-10 9:27 ` Huw Davies 2019-06-10 9:27 ` Huw Davies 2019-06-10 10:17 ` vincenzo.frascino 2019-06-10 10:17 ` Vincenzo Frascino 2019-06-10 10:17 ` Vincenzo Frascino 2019-06-10 10:31 ` huw 2019-06-10 10:31 ` Huw Davies 2019-06-10 10:31 ` Huw Davies 2019-06-10 11:07 ` vincenzo.frascino 2019-06-10 11:07 ` Vincenzo Frascino 2019-06-10 11:07 ` Vincenzo Frascino 2019-06-10 11:37 ` huw 2019-06-10 11:37 ` Huw Davies 2019-06-10 11:37 ` Huw Davies 2019-05-30 14:15 ` [PATCH v6 02/19] kernel: Define gettimeofday vdso common code vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-31 8:19 ` arnd 2019-05-31 8:19 ` Arnd Bergmann 2019-06-04 12:08 ` vincenzo.frascino 2019-06-04 12:08 ` Vincenzo Frascino 2019-06-10 9:31 ` huw 2019-06-10 9:31 ` Huw Davies 2019-06-10 9:31 ` Huw Davies 2019-06-10 10:18 ` vincenzo.frascino 2019-06-10 10:18 ` Vincenzo Frascino 2019-06-10 10:18 ` Vincenzo Frascino 2019-05-30 14:15 ` [PATCH v6 03/19] kernel: Unify update_vsyscall implementation vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-06-10 9:34 ` huw 2019-06-10 9:34 ` Huw Davies 2019-06-10 9:34 ` Huw Davies 2019-06-10 10:19 ` vincenzo.frascino 2019-06-10 10:19 ` Vincenzo Frascino 2019-06-10 10:19 ` Vincenzo Frascino 2019-06-14 11:10 ` Thomas Gleixner 2019-06-14 12:15 ` Vincenzo Frascino 2019-06-14 12:19 ` Thomas Gleixner 2019-06-14 12:25 ` Vincenzo Frascino 2019-06-14 13:07 ` Thomas Gleixner 2019-05-30 14:15 ` [PATCH v6 04/19] arm64: Substitute gettimeofday with C implementation vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-30 14:15 ` [PATCH v6 05/19] arm64: Build vDSO with -ffixed-x18 vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-30 14:15 ` [PATCH v6 06/19] arm64: compat: Add missing syscall numbers vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-30 14:15 ` [PATCH v6 07/19] arm64: compat: Expose signal related structures vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-30 14:15 ` [PATCH v6 08/19] arm64: compat: Generate asm offsets for signals vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-30 14:15 ` [PATCH v6 09/19] lib: vdso: Add compat support vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-30 14:15 ` [PATCH v6 10/19] arm64: compat: Add vDSO vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-30 14:15 ` [PATCH v6 11/19] arm64: Refactor vDSO code vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-30 14:15 ` [PATCH v6 12/19] arm64: compat: vDSO setup for compat layer vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-30 14:15 ` [PATCH v6 13/19] arm64: elf: vDSO code page discovery vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-30 14:15 ` [PATCH v6 14/19] arm64: compat: Get sigreturn trampolines from vDSO vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-30 14:15 ` vincenzo.frascino [this message] 2019-05-30 14:15 ` [PATCH v6 15/19] arm64: Add vDSO compat support Vincenzo Frascino 2019-06-01 9:38 ` catalin.marinas 2019-06-01 9:38 ` Catalin Marinas 2019-06-04 12:10 ` vincenzo.frascino 2019-06-04 12:10 ` Vincenzo Frascino 2019-05-30 14:15 ` [PATCH v6 16/19] arm: Add support for generic vDSO vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-31 8:32 ` arnd 2019-05-31 8:32 ` Arnd Bergmann 2019-05-30 14:15 ` [PATCH v6 17/19] mips: " vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-31 8:34 ` arnd 2019-05-31 8:34 ` Arnd Bergmann 2019-06-03 14:54 ` salyzyn 2019-06-03 14:54 ` Mark Salyzyn 2019-06-03 17:07 ` arnd 2019-06-03 17:07 ` Arnd Bergmann 2019-05-30 14:15 ` [PATCH v6 18/19] x86: " vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-30 15:41 ` mikelley 2019-05-30 15:41 ` Michael Kelley 2019-06-04 12:13 ` vincenzo.frascino 2019-06-04 12:13 ` Vincenzo Frascino 2019-06-14 11:15 ` Thomas Gleixner 2019-06-14 21:17 ` Sasha Levin 2019-06-22 14:46 ` Thomas Gleixner 2019-06-23 19:09 ` Sasha Levin 2019-06-23 21:58 ` Stephen Rothwell 2019-06-24 0:24 ` Sasha Levin 2019-06-24 1:20 ` Stephen Rothwell 2019-06-23 22:12 ` Thomas Gleixner 2019-06-24 0:04 ` Michael Kelley 2019-06-24 0:25 ` Thomas Gleixner 2019-06-28 18:40 ` Michael Kelley 2019-05-30 14:15 ` [PATCH v6 19/19] kselftest: Extend vDSO selftest vincenzo.frascino 2019-05-30 14:15 ` Vincenzo Frascino 2019-05-31 8:53 ` arnd 2019-05-31 8:53 ` Arnd Bergmann 2019-05-31 8:46 ` [PATCH v6 00/19] Unify vDSOs across more architectures arnd 2019-05-31 8:46 ` Arnd Bergmann 2019-06-04 12:04 ` vincenzo.frascino 2019-06-04 12:04 ` Vincenzo Frascino 2019-06-04 12:12 ` arnd 2019-06-04 12:12 ` Arnd Bergmann 2019-06-05 14:32 ` vincenzo.frascino 2019-06-05 14:32 ` Vincenzo Frascino 2019-06-14 12:16 ` Thomas Gleixner 2019-06-14 12:19 ` Vincenzo Frascino 2019-06-20 6:17 ` Shijith Thotton 2019-06-20 8:55 ` Vincenzo Frascino 2019-06-20 16:27 ` Andre Przywara 2019-06-21 9:11 ` Vincenzo Frascino
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20190530141531.43462-16-vincenzo.frascino@arm.com \ --to=linux-kselftest@vger.kernel.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).