diff mbox series

[05/11] arm64: Kconfig: Clean up tautological LLVM version checks

Message ID 20240125-bump-min-llvm-ver-to-13-0-1-v1-5-f5ff9bda41c5@kernel.org (mailing list archive)
State New, archived
Headers show
Series Bump the minimum supported version of LLVM to 13.0.1 | expand

Commit Message

Nathan Chancellor Jan. 25, 2024, 10:55 p.m. UTC
Now that the minimum supported version of LLVM for building the kernel
has been bumped to 13.0.1, several conditions become tautologies, as
they will always be true because the build will fail during the
configuration stage for older LLVM versions. Drop them, as they are
unnecessary.

Signed-off-by: Nathan Chancellor <nathan@kernel.org>
---
Cc: catalin.marinas@arm.com
Cc: will@kernel.org
Cc: mark.rutland@arm.com
Cc: linux-arm-kernel@lists.infradead.org
---
 arch/arm64/Kconfig | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

Comments

Mark Rutland Jan. 26, 2024, 12:59 p.m. UTC | #1
On Thu, Jan 25, 2024 at 03:55:11PM -0700, Nathan Chancellor wrote:
> Now that the minimum supported version of LLVM for building the kernel
> has been bumped to 13.0.1, several conditions become tautologies, as
> they will always be true because the build will fail during the
> configuration stage for older LLVM versions. Drop them, as they are
> unnecessary.
> 
> Signed-off-by: Nathan Chancellor <nathan@kernel.org>
> ---
> Cc: catalin.marinas@arm.com
> Cc: will@kernel.org
> Cc: mark.rutland@arm.com
> Cc: linux-arm-kernel@lists.infradead.org
> ---
>  arch/arm64/Kconfig | 5 +----
>  1 file changed, 1 insertion(+), 4 deletions(-)
> 
> diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> index 5a8acca4dbf4..cb34e7d780c0 100644
> --- a/arch/arm64/Kconfig
> +++ b/arch/arm64/Kconfig
> @@ -383,7 +383,7 @@ config BUILTIN_RETURN_ADDRESS_STRIPS_PAC
>  	bool
>  	# Clang's __builtin_return_adddress() strips the PAC since 12.0.0
>  	# https://github.com/llvm/llvm-project/commit/2a96f47c5ffca84cd774ad402cacd137f4bf45e2
> -	default y if CC_IS_CLANG && (CLANG_VERSION >= 120000)
> +	default y if CC_IS_CLANG
>  	# GCC's __builtin_return_address() strips the PAC since 11.1.0,
>  	# and this was backported to 10.2.0, 9.4.0, 8.5.0, but not earlier
>  	# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94891
> @@ -1387,7 +1387,6 @@ choice
>  
>  config CPU_BIG_ENDIAN
>  	bool "Build big-endian kernel"
> -	depends on !LD_IS_LLD || LLD_VERSION >= 130000
>  	# https://github.com/llvm/llvm-project/commit/1379b150991f70a5782e9a143c2ba5308da1161c

We can delete the URL here, since that was just to describe why this depended
upon LLVM 13+; it's weird for it to sit here on its own.

The URL above for __builtin_return_address() can stay or go; it may as well
stay since we have the comment aboout LLvm 12+ above it.

With that:

Acked-by: Mark Rutland <mark.rutland@arm.com>

Mark.

>  	depends on AS_IS_GNU || AS_VERSION >= 150000
>  	help
> @@ -2018,8 +2017,6 @@ config ARM64_BTI_KERNEL
>  	depends on !CC_IS_GCC || GCC_VERSION >= 100100
>  	# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106671
>  	depends on !CC_IS_GCC
> -	# https://github.com/llvm/llvm-project/commit/a88c722e687e6780dcd6a58718350dc76fcc4cc9
> -	depends on !CC_IS_CLANG || CLANG_VERSION >= 120000
>  	depends on (!FUNCTION_GRAPH_TRACER || DYNAMIC_FTRACE_WITH_ARGS)
>  	help
>  	  Build the kernel with Branch Target Identification annotations
> 
> -- 
> 2.43.0
>
Nathan Chancellor Jan. 26, 2024, 4:10 p.m. UTC | #2
On Fri, Jan 26, 2024 at 12:59:55PM +0000, Mark Rutland wrote:
> On Thu, Jan 25, 2024 at 03:55:11PM -0700, Nathan Chancellor wrote:
> > Now that the minimum supported version of LLVM for building the kernel
> > has been bumped to 13.0.1, several conditions become tautologies, as
> > they will always be true because the build will fail during the
> > configuration stage for older LLVM versions. Drop them, as they are
> > unnecessary.
> > 
> > Signed-off-by: Nathan Chancellor <nathan@kernel.org>
> > ---
> > Cc: catalin.marinas@arm.com
> > Cc: will@kernel.org
> > Cc: mark.rutland@arm.com
> > Cc: linux-arm-kernel@lists.infradead.org
> > ---
> >  arch/arm64/Kconfig | 5 +----
> >  1 file changed, 1 insertion(+), 4 deletions(-)
> > 
> > diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
> > index 5a8acca4dbf4..cb34e7d780c0 100644
> > --- a/arch/arm64/Kconfig
> > +++ b/arch/arm64/Kconfig
> > @@ -383,7 +383,7 @@ config BUILTIN_RETURN_ADDRESS_STRIPS_PAC
> >  	bool
> >  	# Clang's __builtin_return_adddress() strips the PAC since 12.0.0
> >  	# https://github.com/llvm/llvm-project/commit/2a96f47c5ffca84cd774ad402cacd137f4bf45e2
> > -	default y if CC_IS_CLANG && (CLANG_VERSION >= 120000)
> > +	default y if CC_IS_CLANG
> >  	# GCC's __builtin_return_address() strips the PAC since 11.1.0,
> >  	# and this was backported to 10.2.0, 9.4.0, 8.5.0, but not earlier
> >  	# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94891
> > @@ -1387,7 +1387,6 @@ choice
> >  
> >  config CPU_BIG_ENDIAN
> >  	bool "Build big-endian kernel"
> > -	depends on !LD_IS_LLD || LLD_VERSION >= 130000
> >  	# https://github.com/llvm/llvm-project/commit/1379b150991f70a5782e9a143c2ba5308da1161c
> 
> We can delete the URL here, since that was just to describe why this depended
> upon LLVM 13+; it's weird for it to sit here on its own.

I think this is the URL for the fix for the problem brought up by
commit 146a15b87335 ("arm64: Restrict CPU_BIG_ENDIAN to GNU as or LLVM
IAS 15.x or newer"), so I think it should stay? It does not look like I
ever added a link or context for the LLD line, I definitely should have.

> The URL above for __builtin_return_address() can stay or go; it may as well
> stay since we have the comment aboout LLvm 12+ above it.

That's the conclusion I came to as well.

Thanks a lot for taking a look!

Cheers,
Nathan

> With that:
> 
> Acked-by: Mark Rutland <mark.rutland@arm.com>
> 
> Mark.
> 
> >  	depends on AS_IS_GNU || AS_VERSION >= 150000
> >  	help
> > @@ -2018,8 +2017,6 @@ config ARM64_BTI_KERNEL
> >  	depends on !CC_IS_GCC || GCC_VERSION >= 100100
> >  	# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106671
> >  	depends on !CC_IS_GCC
> > -	# https://github.com/llvm/llvm-project/commit/a88c722e687e6780dcd6a58718350dc76fcc4cc9
> > -	depends on !CC_IS_CLANG || CLANG_VERSION >= 120000
> >  	depends on (!FUNCTION_GRAPH_TRACER || DYNAMIC_FTRACE_WITH_ARGS)
> >  	help
> >  	  Build the kernel with Branch Target Identification annotations
> > 
> > -- 
> > 2.43.0
> > 
>
Mark Rutland Jan. 26, 2024, 5 p.m. UTC | #3
On Fri, Jan 26, 2024 at 09:10:25AM -0700, Nathan Chancellor wrote:
> On Fri, Jan 26, 2024 at 12:59:55PM +0000, Mark Rutland wrote:
> > On Thu, Jan 25, 2024 at 03:55:11PM -0700, Nathan Chancellor wrote:
> > >  config CPU_BIG_ENDIAN
> > >  	bool "Build big-endian kernel"
> > > -	depends on !LD_IS_LLD || LLD_VERSION >= 130000
> > >  	# https://github.com/llvm/llvm-project/commit/1379b150991f70a5782e9a143c2ba5308da1161c
> > 
> > We can delete the URL here, since that was just to describe why this depended
> > upon LLVM 13+; it's weird for it to sit here on its own.
> 
> I think this is the URL for the fix for the problem brought up by
> commit 146a15b87335 ("arm64: Restrict CPU_BIG_ENDIAN to GNU as or LLVM
> IAS 15.x or newer"), so I think it should stay? It does not look like I
> ever added a link or context for the LLD line, I definitely should have.

Whoops; I clearly misread that, and yes it should stay.

Sorry about that; for the patch as-is:

Acked-by: Mark Rutland <mark.rutland@arm.com>

Mark.
diff mbox series

Patch

diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index 5a8acca4dbf4..cb34e7d780c0 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -383,7 +383,7 @@  config BUILTIN_RETURN_ADDRESS_STRIPS_PAC
 	bool
 	# Clang's __builtin_return_adddress() strips the PAC since 12.0.0
 	# https://github.com/llvm/llvm-project/commit/2a96f47c5ffca84cd774ad402cacd137f4bf45e2
-	default y if CC_IS_CLANG && (CLANG_VERSION >= 120000)
+	default y if CC_IS_CLANG
 	# GCC's __builtin_return_address() strips the PAC since 11.1.0,
 	# and this was backported to 10.2.0, 9.4.0, 8.5.0, but not earlier
 	# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94891
@@ -1387,7 +1387,6 @@  choice
 
 config CPU_BIG_ENDIAN
 	bool "Build big-endian kernel"
-	depends on !LD_IS_LLD || LLD_VERSION >= 130000
 	# https://github.com/llvm/llvm-project/commit/1379b150991f70a5782e9a143c2ba5308da1161c
 	depends on AS_IS_GNU || AS_VERSION >= 150000
 	help
@@ -2018,8 +2017,6 @@  config ARM64_BTI_KERNEL
 	depends on !CC_IS_GCC || GCC_VERSION >= 100100
 	# https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106671
 	depends on !CC_IS_GCC
-	# https://github.com/llvm/llvm-project/commit/a88c722e687e6780dcd6a58718350dc76fcc4cc9
-	depends on !CC_IS_CLANG || CLANG_VERSION >= 120000
 	depends on (!FUNCTION_GRAPH_TRACER || DYNAMIC_FTRACE_WITH_ARGS)
 	help
 	  Build the kernel with Branch Target Identification annotations