kconfig: detect LD implementation
authorRoger Pau Monné <roger.pau@citrix.com>
Mon, 2 May 2022 06:50:39 +0000 (08:50 +0200)
committerJan Beulich <jbeulich@suse.com>
Mon, 2 May 2022 06:50:39 +0000 (08:50 +0200)
Detect GNU and LLVM ld implementations. This is required for further
patches that will introduce diverging behaviour depending on the
linker implementation in use.

Note that LLVM ld returns "compatible with GNU linkers" as part of the
version string, so be on the safe side and use '^' to only match at
the start of the line in case LLVM ever decides to change the text to
use "compatible with GNU ld" instead.

Signed-off-by: Roger Pau Monné <roger.pau@citrix.com>
Reviewed-by: Michal Orzel <michal.orzel@arm.com>
Acked-by: Julien Grall <jgrall@amazon.com>
xen/Kconfig

index ec2bd9fbcfaaec9fd89a19d46337e770c4fad2b7..134e6e68ad842c6108ca35d306ff247985b9448c 100644 (file)
@@ -23,6 +23,12 @@ config CLANG_VERSION
        int
        default $(shell,$(srctree)/scripts/clang-version.sh $(CC))
 
+config LD_IS_GNU
+       def_bool $(success,$(LD) --version | head -n 1 | grep -q "^GNU ld")
+
+config LD_IS_LLVM
+       def_bool $(success,$(LD) --version | head -n 1 | grep -q "^LLD")
+
 # -fvisibility=hidden reduces -fpic cost, if it's available
 config CC_HAS_VISIBILITY_ATTRIBUTE
        def_bool $(cc-option,-fvisibility=hidden)