[lkml]   [2019]   [Jul]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: kbuild: Fail if gold linker is detected
On Tue, Jul 16, 2019 at 02:47:56PM +0200, Thomas Gleixner wrote:
> The gold linker has known issues of failing the build in random and
> predictible ways. H.J. stated:
> "Since building a workable kernel for different kernel configurations
> isn't a requirement for gold, I don't recommend gold for kernel."
> So instead of dealing with attempts to duct tape gold support without
> understanding the root cause, fail the build when gold is detected.
> Signed-off-by: Thomas Gleixner <>
> Link:
> ---
> scripts/Kconfig.include | 3 +++
> 1 file changed, 3 insertions(+)
> --- a/scripts/Kconfig.include
> +++ b/scripts/Kconfig.include
> @@ -35,5 +35,8 @@ ld-option = $(success,$(LD) -v $(1))
> $(error-if,$(failure,command -v $(CC)),compiler '$(CC)' not found)
> $(error-if,$(failure,command -v $(LD)),linker '$(LD)' not found)
> +# Fail if the linker is gold as it's not capable of linking the kernel proper
> +$(error-if,$(success, command -v $(LD) -v | grep -q gold), gold linker '$(LD)' not supported)

Why are there two '-v' flags here? The second one is ignored since
command -v just prints out the path of the binary that is being used,
which would work in most cases but not if gold is the default system

$ command -v -v

$ command -v

$ command -v
GNU gold (GNU Binutils 2.32) 1.16

Thus, wouldn't it be better to just call $(LD) directly, like
CC_IS_GCC and CC_IS_CLANG in init/Kconfig?

$(success, $(LD) -v | grep -q gold)


 \ /
  Last update: 2019-07-16 19:09    [W:0.126 / U:10.168 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site