On Wed, Mar 16, 2022 at 11:28:48AM +0100, Michal Orzel wrote: > Hi Roger, > > On 14.03.2022 11:55, Roger Pau Monne wrote: > > 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....@citrix.com> > > --- > > xen/Kconfig | 6 ++++++ > > 1 file changed, 6 insertions(+) > > > > diff --git a/xen/Kconfig b/xen/Kconfig > > index d134397a0b..e8d5e70d46 100644 > > --- a/xen/Kconfig > > +++ b/xen/Kconfig > > @@ -23,6 +23,12 @@ config CLANG_VERSION > > int > > default $(shell,$(BASEDIR)/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) > > NIT: You do not really need to use head especiialy if grep for the beginning > of a line.
I'm afraid I don't agree. We use head because we only want to match against the first line of the output, and then we use '^' to match at the beginning of such line. Without using head we would end up matching at the beginning of any line present in the output. Thanks, Roger.