All of lore.kernel.org
 help / color / mirror / Atom feed
From: Anders Roxell <anders.roxell@linaro.org>
To: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>,
	mingo@kernel.org, linux-kernel@vger.kernel.org,
	torvalds@linux-foundation.org
Subject: Re: [PATCH 1/2] x86: Force asm-goto
Date: Tue, 27 Mar 2018 18:43:43 +0200	[thread overview]
Message-ID: <20180327164343.GA4002@localhost.localdomain> (raw)
In-Reply-To: <20180319201327.GJ4043@hirez.programming.kicks-ass.net>

On 2018-03-19 21:13, Peter Zijlstra wrote:
> On Mon, Mar 19, 2018 at 08:57:48PM +0100, Thomas Gleixner wrote:
> > On Mon, 19 Mar 2018, Peter Zijlstra wrote:
> > 
> > > We want to start using asm-goto to guarantee the absence of dynamic
> > > branches (and thus speculation).
> > > 
> > > A primary prerequisite for this is of course that the compiler
> > > supports asm-goto. This effecively lifts the minimum GCC version to
> > > build an x86 kernel to gcc-4.5.
> > > 
> > > Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
> > > ---
> > >  Makefile          |   13 +++++++------
> > >  arch/x86/Makefile |    4 ++++
> > >  2 files changed, 11 insertions(+), 6 deletions(-)
> > > 
> > > --- a/Makefile
> > > +++ b/Makefile
> > > @@ -494,6 +494,13 @@ RETPOLINE_CFLAGS_CLANG := -mretpoline-ex
> > >  RETPOLINE_CFLAGS := $(call cc-option,$(RETPOLINE_CFLAGS_GCC),$(call cc-option,$(RETPOLINE_CFLAGS_CLANG)))
> > >  export RETPOLINE_CFLAGS
> > >  
> > > +# check for 'asm goto'
> > > +ifeq ($(shell $(srctree)/scripts/gcc-goto.sh $(CC) $(KBUILD_CFLAGS)), y)
> > 
> > Why are you not using the shell-cached version which you remove further
> > down?
> 
> Bah, I'm an idiot. I fixed that up at least two times, but clearly I
> forgot to check that again before sending.
> 
> ---
> Subject: x86: Force asm-goto
> From: Peter Zijlstra <peterz@infradead.org>
> Date: Wed Jan 17 11:42:07 CET 2018
> 
> We want to start using asm-goto to guarantee the absence of dynamic
> branches (and thus speculation).
> 
> A primary prerequisite for this is of course that the compiler
> supports asm-goto. This effecively lifts the minimum GCC version to
> build an x86 kernel to gcc-4.5.

With this patch applied I'm not able to do "make kernelversion" without
any toolchain to get the kernel version, I was able to do that before.

Cheers,
Anders

> 
> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
> ---
>  Makefile          |   13 +++++++------
>  arch/x86/Makefile |    4 ++++
>  2 files changed, 11 insertions(+), 6 deletions(-)
> 
> --- a/Makefile
> +++ b/Makefile
> @@ -494,6 +494,13 @@ RETPOLINE_CFLAGS_CLANG := -mretpoline-ex
>  RETPOLINE_CFLAGS := $(call cc-option,$(RETPOLINE_CFLAGS_GCC),$(call cc-option,$(RETPOLINE_CFLAGS_CLANG)))
>  export RETPOLINE_CFLAGS
>  
> +# check for 'asm goto'
> +ifeq ($(call shell-cached,$(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC) $(KBUILD_CFLAGS)), y)
> +  CC_HAVE_ASM_GOTO := 1
> +  KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO
> +  KBUILD_AFLAGS += -DCC_HAVE_ASM_GOTO
> +endif
> +
>  ifeq ($(config-targets),1)
>  # ===========================================================================
>  # *config targets only - make sure prerequisites are updated, and descend
> @@ -658,12 +665,6 @@ KBUILD_CFLAGS += $(call cc-ifversion, -l
>  # Tell gcc to never replace conditional load with a non-conditional one
>  KBUILD_CFLAGS	+= $(call cc-option,--param=allow-store-data-races=0)
>  
> -# check for 'asm goto'
> -ifeq ($(call shell-cached,$(CONFIG_SHELL) $(srctree)/scripts/gcc-goto.sh $(CC) $(KBUILD_CFLAGS)), y)
> -	KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO
> -	KBUILD_AFLAGS += -DCC_HAVE_ASM_GOTO
> -endif
> -
>  include scripts/Makefile.kcov
>  include scripts/Makefile.gcc-plugins
>  
> --- a/arch/x86/Makefile
> +++ b/arch/x86/Makefile
> @@ -181,6 +181,10 @@ ifdef CONFIG_FUNCTION_GRAPH_TRACER
>    endif
>  endif
>  
> +ifndef CC_HAVE_ASM_GOTO
> +  $(error Compiler lacks asm-goto support.)
> +endif
> +
>  #
>  # Jump labels need '-maccumulate-outgoing-args' for gcc < 4.5.2 to prevent a
>  # GCC bug (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46226).  There's no way

  parent reply	other threads:[~2018-03-27 17:11 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-19 15:41 [PATCH 0/2] x86: Mandate asm-goto support Peter Zijlstra
2018-03-19 15:41 ` [PATCH 1/2] x86: Force asm-goto Peter Zijlstra
2018-03-19 19:57   ` Thomas Gleixner
2018-03-19 20:13     ` Peter Zijlstra
2018-03-20 10:00       ` [tip:x86/build] " tip-bot for Peter Zijlstra
2018-03-27 16:43       ` Anders Roxell [this message]
2018-03-20 15:45   ` [PATCH 1/2] " Jonathan Corbet
2018-03-20 15:50     ` Peter Zijlstra
2018-03-20 18:44       ` Jonathan Corbet
2018-03-22 12:10       ` Pavel Machek
2018-03-19 15:41 ` [PATCH 2/2] x86: Remove FAST_FEATURE_TESTS Peter Zijlstra
2018-03-20 10:01   ` [tip:x86/build] " tip-bot for Peter Zijlstra

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=20180327164343.GA4002@localhost.localdomain \
    --to=anders.roxell@linaro.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=peterz@infradead.org \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.