2021-10-19 22:38:15

by Nick Desaulniers

[permalink] [raw]
Subject: [PATCH v2 2/4] arm64: vdso32: drop test for -march=armv8-a

As Arnd points out:
gcc-4.8 already supported -march=armv8, and we require gcc-5.1 now, so
both this #if/#else construct and the corresponding
"cc32-option,-march=armv8-a" check should be obsolete now.

Link: https://lore.kernel.org/lkml/CAK8P3a3UBEJ0Py2ycz=rHfgog8g3mCOeQOwO0Gmp-iz6Uxkapg@mail.gmail.com/
Suggested-by: Arnd Bergmann <[email protected]>
Signed-off-by: Nick Desaulniers <[email protected]>
---
arch/arm64/include/asm/vdso/compat_barrier.h | 7 -------
arch/arm64/kernel/vdso32/Makefile | 8 +-------
2 files changed, 1 insertion(+), 14 deletions(-)

diff --git a/arch/arm64/include/asm/vdso/compat_barrier.h b/arch/arm64/include/asm/vdso/compat_barrier.h
index fb60a88b5ed4..3ac35f4a667c 100644
--- a/arch/arm64/include/asm/vdso/compat_barrier.h
+++ b/arch/arm64/include/asm/vdso/compat_barrier.h
@@ -20,16 +20,9 @@

#define dmb(option) __asm__ __volatile__ ("dmb " #option : : : "memory")

-#if __LINUX_ARM_ARCH__ >= 8
#define aarch32_smp_mb() dmb(ish)
#define aarch32_smp_rmb() dmb(ishld)
#define aarch32_smp_wmb() dmb(ishst)
-#else
-#define aarch32_smp_mb() dmb(ish)
-#define aarch32_smp_rmb() aarch32_smp_mb()
-#define aarch32_smp_wmb() dmb(ishst)
-#endif
-

#undef smp_mb
#undef smp_rmb
diff --git a/arch/arm64/kernel/vdso32/Makefile b/arch/arm64/kernel/vdso32/Makefile
index 89299a26638b..1407516e041e 100644
--- a/arch/arm64/kernel/vdso32/Makefile
+++ b/arch/arm64/kernel/vdso32/Makefile
@@ -65,13 +65,7 @@ endif
# From arm vDSO Makefile
VDSO_CAFLAGS += -fPIC -fno-builtin -fno-stack-protector
VDSO_CAFLAGS += -DDISABLE_BRANCH_PROFILING
-
-
-# Try to compile for ARMv8. If the compiler is too old and doesn't support it,
-# fall back to v7. There is no easy way to check for what architecture the code
-# is being compiled, so define a macro specifying that (see arch/arm/Makefile).
-VDSO_CAFLAGS += $(call cc32-option,-march=armv8-a -D__LINUX_ARM_ARCH__=8,\
- -march=armv7-a -D__LINUX_ARM_ARCH__=7)
+VDSO_CAFLAGS += -march=armv8-a

VDSO_CFLAGS := $(VDSO_CAFLAGS)
VDSO_CFLAGS += -DENABLE_COMPAT_VDSO=1
--
2.33.0.1079.g6e70778dc9-goog


2021-10-20 00:50:15

by Nathan Chancellor

[permalink] [raw]
Subject: Re: [PATCH v2 2/4] arm64: vdso32: drop test for -march=armv8-a

On Tue, Oct 19, 2021 at 03:36:44PM -0700, Nick Desaulniers wrote:
> As Arnd points out:
> gcc-4.8 already supported -march=armv8, and we require gcc-5.1 now, so
> both this #if/#else construct and the corresponding
> "cc32-option,-march=armv8-a" check should be obsolete now.
>
> Link: https://lore.kernel.org/lkml/CAK8P3a3UBEJ0Py2ycz=rHfgog8g3mCOeQOwO0Gmp-iz6Uxkapg@mail.gmail.com/
> Suggested-by: Arnd Bergmann <[email protected]>
> Signed-off-by: Nick Desaulniers <[email protected]>

Reviewed-by: Nathan Chancellor <[email protected]>

> ---
> arch/arm64/include/asm/vdso/compat_barrier.h | 7 -------
> arch/arm64/kernel/vdso32/Makefile | 8 +-------
> 2 files changed, 1 insertion(+), 14 deletions(-)
>
> diff --git a/arch/arm64/include/asm/vdso/compat_barrier.h b/arch/arm64/include/asm/vdso/compat_barrier.h
> index fb60a88b5ed4..3ac35f4a667c 100644
> --- a/arch/arm64/include/asm/vdso/compat_barrier.h
> +++ b/arch/arm64/include/asm/vdso/compat_barrier.h
> @@ -20,16 +20,9 @@
>
> #define dmb(option) __asm__ __volatile__ ("dmb " #option : : : "memory")
>
> -#if __LINUX_ARM_ARCH__ >= 8
> #define aarch32_smp_mb() dmb(ish)
> #define aarch32_smp_rmb() dmb(ishld)
> #define aarch32_smp_wmb() dmb(ishst)
> -#else
> -#define aarch32_smp_mb() dmb(ish)
> -#define aarch32_smp_rmb() aarch32_smp_mb()
> -#define aarch32_smp_wmb() dmb(ishst)
> -#endif
> -
>
> #undef smp_mb
> #undef smp_rmb
> diff --git a/arch/arm64/kernel/vdso32/Makefile b/arch/arm64/kernel/vdso32/Makefile
> index 89299a26638b..1407516e041e 100644
> --- a/arch/arm64/kernel/vdso32/Makefile
> +++ b/arch/arm64/kernel/vdso32/Makefile
> @@ -65,13 +65,7 @@ endif
> # From arm vDSO Makefile
> VDSO_CAFLAGS += -fPIC -fno-builtin -fno-stack-protector
> VDSO_CAFLAGS += -DDISABLE_BRANCH_PROFILING
> -
> -
> -# Try to compile for ARMv8. If the compiler is too old and doesn't support it,
> -# fall back to v7. There is no easy way to check for what architecture the code
> -# is being compiled, so define a macro specifying that (see arch/arm/Makefile).
> -VDSO_CAFLAGS += $(call cc32-option,-march=armv8-a -D__LINUX_ARM_ARCH__=8,\
> - -march=armv7-a -D__LINUX_ARM_ARCH__=7)
> +VDSO_CAFLAGS += -march=armv8-a
>
> VDSO_CFLAGS := $(VDSO_CAFLAGS)
> VDSO_CFLAGS += -DENABLE_COMPAT_VDSO=1
> --
> 2.33.0.1079.g6e70778dc9-goog
>
>

2021-10-20 07:53:15

by Vincenzo Frascino

[permalink] [raw]
Subject: Re: [PATCH v2 2/4] arm64: vdso32: drop test for -march=armv8-a



On 10/20/21 12:36 AM, Nick Desaulniers wrote:
> As Arnd points out:
> gcc-4.8 already supported -march=armv8, and we require gcc-5.1 now, so
> both this #if/#else construct and the corresponding
> "cc32-option,-march=armv8-a" check should be obsolete now.
>
> Link: https://lore.kernel.org/lkml/CAK8P3a3UBEJ0Py2ycz=rHfgog8g3mCOeQOwO0Gmp-iz6Uxkapg@mail.gmail.com/
> Suggested-by: Arnd Bergmann <[email protected]>
> Signed-off-by: Nick Desaulniers <[email protected]>
Reviewed-by: Vincenzo Frascino <[email protected]>

> ---
> arch/arm64/include/asm/vdso/compat_barrier.h | 7 -------
> arch/arm64/kernel/vdso32/Makefile | 8 +-------
> 2 files changed, 1 insertion(+), 14 deletions(-)
>
> diff --git a/arch/arm64/include/asm/vdso/compat_barrier.h b/arch/arm64/include/asm/vdso/compat_barrier.h
> index fb60a88b5ed4..3ac35f4a667c 100644
> --- a/arch/arm64/include/asm/vdso/compat_barrier.h
> +++ b/arch/arm64/include/asm/vdso/compat_barrier.h
> @@ -20,16 +20,9 @@
>
> #define dmb(option) __asm__ __volatile__ ("dmb " #option : : : "memory")
>
> -#if __LINUX_ARM_ARCH__ >= 8
> #define aarch32_smp_mb() dmb(ish)
> #define aarch32_smp_rmb() dmb(ishld)
> #define aarch32_smp_wmb() dmb(ishst)
> -#else
> -#define aarch32_smp_mb() dmb(ish)
> -#define aarch32_smp_rmb() aarch32_smp_mb()
> -#define aarch32_smp_wmb() dmb(ishst)
> -#endif
> -
>
> #undef smp_mb
> #undef smp_rmb
> diff --git a/arch/arm64/kernel/vdso32/Makefile b/arch/arm64/kernel/vdso32/Makefile
> index 89299a26638b..1407516e041e 100644
> --- a/arch/arm64/kernel/vdso32/Makefile
> +++ b/arch/arm64/kernel/vdso32/Makefile
> @@ -65,13 +65,7 @@ endif
> # From arm vDSO Makefile
> VDSO_CAFLAGS += -fPIC -fno-builtin -fno-stack-protector
> VDSO_CAFLAGS += -DDISABLE_BRANCH_PROFILING
> -
> -
> -# Try to compile for ARMv8. If the compiler is too old and doesn't support it,
> -# fall back to v7. There is no easy way to check for what architecture the code
> -# is being compiled, so define a macro specifying that (see arch/arm/Makefile).
> -VDSO_CAFLAGS += $(call cc32-option,-march=armv8-a -D__LINUX_ARM_ARCH__=8,\
> - -march=armv7-a -D__LINUX_ARM_ARCH__=7)
> +VDSO_CAFLAGS += -march=armv8-a
>
> VDSO_CFLAGS := $(VDSO_CAFLAGS)
> VDSO_CFLAGS += -DENABLE_COMPAT_VDSO=1
>

--
Regards,
Vincenzo