On Tue, Mar 24, 2020 at 3:06 AM Jason A. Donenfeld <Jason@xxxxxxxxx> wrote: > > On Sun, Mar 22, 2020 at 8:10 PM Masahiro Yamada <masahiroy@xxxxxxxxxx> wrote: > > diff --git a/lib/raid6/algos.c b/lib/raid6/algos.c > > index bf1b4765c8f6..77457ea5a239 100644 > > --- a/lib/raid6/algos.c > > +++ b/lib/raid6/algos.c > > @@ -103,9 +103,7 @@ const struct raid6_recov_calls *const raid6_recov_algos[] = { > > #ifdef CONFIG_AS_AVX2 > > &raid6_recov_avx2, > > #endif > > -#ifdef CONFIG_AS_SSSE3 > > &raid6_recov_ssse3, > > -#endif > > #ifdef CONFIG_S390 > > &raid6_recov_s390xc, > > #endif > > algos.c is compiled on all platforms, so you'll need to ifdef that x86 > section where SSSE3 is no longer guarding it. The pattern in the rest > of the file, if you want to follow it, is "#if defined(__x86_64__) && > !defined(__arch_um__)". That seems ugly and like there are better > ways, but in the interest of uniformity and a lack of desire to > rewrite all the raid6 code, I went with that in this cleanup: > > https://git.zx2c4.com/linux-dev/commit/?h=jd/kconfig-assembler-support&id=512a00ddebbe5294a88487dcf1dc845cf56703d9 Thanks for the pointer, but I think guarding with CONFIG_X86 makes more sense. raid6_recov_ssse3 is defined in lib/raid6/recov_ssse3.c, which is guarded by like this: raid6_pq-$(CONFIG_X86) += recov_ssse3.o recov_avx2.o mmx.o sse1.o sse2.o avx2.o avx512.o recov_avx512.o Indeed, #if defined(__x86_64__) && !defined(__arch_um__) is ugly. I wonder why the code was written like that. I rather want to check a single CONFIG option. Please see the attached patch. > -- > You received this message because you are subscribed to the Google Groups "Clang Built Linux" group. > To unsubscribe from this group and stop receiving emails from it, send an email to clang-built-linux+unsubscribe@xxxxxxxxxxxxxxxx. > To view this discussion on the web visit https://groups.google.com/d/msgid/clang-built-linux/CAHmME9p3LAnrUMmcGPEUFqY5vOASe8MVk4%3DpzqFRj3E9C-bM%2BQ%40mail.gmail.com. -- Best Regards Masahiro Yamada
From 5b32698b09c156479e16f554d1ad027149a6ed05 Mon Sep 17 00:00:00 2001 From: Masahiro Yamada <masahiroy@xxxxxxxxxx> Date: Tue, 24 Mar 2020 05:25:20 +0900 Subject: [PATCH] x86: replace arch macros from compiler with CONFIG_X86_{32,64} If the intention is to check i386/x86_64 excluding UML, checking CONFIG_X86_{32,64} is simpler. Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx> --- kernel/signal.c | 2 +- lib/raid6/algos.c | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/kernel/signal.c b/kernel/signal.c index 5b2396350dd1..db557e1629e5 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -1246,7 +1246,7 @@ static void print_fatal_signal(int signr) struct pt_regs *regs = signal_pt_regs(); pr_info("potentially unexpected fatal signal %d.\n", signr); -#if defined(__i386__) && !defined(__arch_um__) +#ifdef CONFIG_X86_32 pr_info("code at %08lx: ", regs->ip); { int i; diff --git a/lib/raid6/algos.c b/lib/raid6/algos.c index df08664d3432..b5a02326cfb7 100644 --- a/lib/raid6/algos.c +++ b/lib/raid6/algos.c @@ -29,7 +29,7 @@ struct raid6_calls raid6_call; EXPORT_SYMBOL_GPL(raid6_call); const struct raid6_calls * const raid6_algos[] = { -#if defined(__i386__) && !defined(__arch_um__) +#ifdef CONFIG_X86_32 #ifdef CONFIG_AS_AVX512 &raid6_avx512x2, &raid6_avx512x1, @@ -45,7 +45,7 @@ const struct raid6_calls * const raid6_algos[] = { &raid6_mmxx2, &raid6_mmxx1, #endif -#if defined(__x86_64__) && !defined(__arch_um__) +#ifdef CONFIG_X86_64 #ifdef CONFIG_AS_AVX512 &raid6_avx512x4, &raid6_avx512x2, -- 2.17.1