Re: [PATCH AUTOSEL 4.19 58/73] x86/build: Fix compiler support check for CONFIG_RETPOLINE

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Dec 13, 2018 at 5:47 AM Sasha Levin <sashal@xxxxxxxxxx> wrote:
>
> From: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
>
> [ Upstream commit 25896d073d8a0403b07e6dec56f58e6c33678207 ]
>
> It is troublesome to add a diagnostic like this to the Makefile
> parse stage because the top-level Makefile could be parsed with
> a stale include/config/auto.conf.
>
> Once you are hit by the error about non-retpoline compiler, the
> compilation still breaks even after disabling CONFIG_RETPOLINE.
>
> The easiest fix is to move this check to the "archprepare" like
> this commit did:
>
>   829fe4aa9ac1 ("x86: Allow generating user-space headers without a compiler")
>
> Reported-by: Meelis Roos <mroos@xxxxxxxx>
> Tested-by: Meelis Roos <mroos@xxxxxxxx>
> Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx>
> Acked-by: Zhenzhong Duan <zhenzhong.duan@xxxxxxxxxx>
> Cc: Borislav Petkov <bp@xxxxxxxxx>
> Cc: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx>
> Cc: Thomas Gleixner <tglx@xxxxxxxxxxxxx>
> Cc: Zhenzhong Duan <zhenzhong.duan@xxxxxxxxxx>
> Fixes: 4cd24de3a098 ("x86/retpoline: Make CONFIG_RETPOLINE depend on compiler support")
> Link: http://lkml.kernel.org/r/1543991239-18476-1-git-send-email-yamada.masahiro@xxxxxxxxxxxxx
> Link: https://lkml.org/lkml/2018/12/4/206
> Signed-off-by: Ingo Molnar <mingo@xxxxxxxxxx>
> Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>
> ---
>  arch/x86/Makefile | 10 +++++++---
>  1 file changed, 7 insertions(+), 3 deletions(-)
>
> diff --git a/arch/x86/Makefile b/arch/x86/Makefile
> index 9298f0f3817a..b84f61bc5e7a 100644
> --- a/arch/x86/Makefile
> +++ b/arch/x86/Makefile
> @@ -223,9 +223,6 @@ KBUILD_CFLAGS += -fno-asynchronous-unwind-tables
>
>  # Avoid indirect branches in kernel to deal with Spectre
>  ifdef CONFIG_RETPOLINE
> -ifeq ($(RETPOLINE_CFLAGS),)
> -  $(error You are building kernel with non-retpoline compiler, please update your compiler.)
> -endif
>    KBUILD_CFLAGS += $(RETPOLINE_CFLAGS)
>  endif
>
> @@ -303,6 +300,13 @@ ifndef CC_HAVE_ASM_GOTO
>         @echo Compiler lacks asm-goto support.
>         @exit 1
>  endif
> +ifdef CONFIG_RETPOLINE
> +ifeq ($(RETPOLINE_CFLAGS),)
> +       @echo "You are building kernel with non-retpoline compiler." >&2
> +       @echo "Please update your compiler." >&2
> +       @false
> +endif
> +endif
>
>  archclean:
>         $(Q)rm -rf $(objtree)/arch/i386
> --
> 2.19.1
>


Hi Greg,

I think this patch needs to be merged to linux-stable 4.14.y branch.
I found out the same problem when I built my drivers on linux-stable 4.14.86.
Following is what I did to reproduce the problem.
The problem is gone after applying the patch.

1. I created and installed a headers package as following.
make -j7 deb-pkg
cd ..
sudo dpkg -i linux-headers-4.14.89+_4.14.89+-18_amd64.deb

2. I managed to re-produce the same problem as following.
gohkim@ws00837:~/study/drv$ make -C /usr/src/linux-headers-4.14.89+/
kernelrelease
make: Entering directory '/usr/src/linux-headers-4.14.89+'
arch/x86/Makefile:245: *** You are building kernel with non-retpoline
compiler, please update your compiler.. Stop.
make: Leaving directory '/usr/src/linux-headers-4.14.89+'

3. Weird thing is that it works fine if I use sudo command.
gohkim@ws00837:~/study/drv$ sudo make -C
/usr/src/linux-headers-4.14.89+/ kernelrelease
make: Entering directory '/usr/src/linux-headers-4.14.89+'
  HOSTCC  scripts/kconfig/conf.o
  HOSTCC  scripts/kconfig/zconf.tab.o
  HOSTLD  scripts/kconfig/conf
scripts/kconfig/conf  --silentoldconfig Kconfig
4.14.89
make: Leaving directory '/usr/src/linux-headers-4.14.89+'


-- 
GIOH KIM
Linux Kernel Entwickler

1&1 IONOS Cloud GmbH
Greifswalder Str. 207
D - 10405 Berlin

Tel:       +49 176 2697 8962
Fax:      +49 30 577 008 299
Email:    gi-oh.kim@xxxxxxxxxxxxxxx
URL:      https://www.ionos.com

Sitz der Gesellschaft: Berlin
Registergericht: Amtsgericht Charlottenburg, HRB 125506 B
Geschäftsführer: Achim Weiss, Matthias Steinberg, Christoph Steffens




[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux