>>>>> On Fri, 13 Sep 2019, Manoj Gupta wrote: >> LLD is a new linker for LLVM project. >> Add tc-ld-is-lld helper to be able to detect it. >> >> Signed-off-by: Manoj Gupta >> --- >> eclass/toolchain-funcs.eclass | 30 ++++++++++++++++++++++++++++++ >> 1 file changed, 30 insertions(+) >> >> diff --git a/eclass/toolchain-funcs.eclass b/eclass/toolchain-funcs.eclass >> index 7bd90bb4e4a..e358d484417 100644 >> --- a/eclass/toolchain-funcs.eclass >> +++ b/eclass/toolchain-funcs.eclass >> @@ -453,6 +453,36 @@ tc-ld-is-gold() { >> return 1 >> } >> >> +# @FUNCTION: tc-ld-is-lld >> +# @USAGE: [toolchain prefix] >> +# @DESCRIPTION: >> +# Return true if the current linker is set to lld. >> +tc-ld-is-lld() { >> + local out >> + >> + # First check the linker directly. >> + out=$($(tc-getLD "$@") --version 2>&1) Why 2>&1 here, and not 2>/dev/null? >> + if [[ ${out} == *"LLD"* ]] ; then >> + return 0 >> + fi >> + >> + # Then see if they're selecting lld via compiler flags. >> + # Note: We're assuming they're using LDFLAGS to hold the >> + # options and not CFLAGS/CXXFLAGS. >> + local base="${T}/test-tc-lld" >> + cat <<-EOF > "${base}.c" >> + int main() { return 0; } >> + EOF >> + out=$($(tc-getCC "$@") ${CFLAGS} ${CPPFLAGS} ${LDFLAGS} -Wl,--version "${base}.c" -o "${base}" 2>&1) Ditto. >> + rm -f "${base}"* >> + if [[ ${out} == *"LLD"* ]] ; then >> + return 0 >> + fi >> + >> + # No lld here! >> + return 1 The previous 6 lines could be shortened to one: [[ ${out} == *"LLD"* ]] >> +} >> + >> # @FUNCTION: tc-ld-disable-gold >> # @USAGE: [toolchain prefix] >> # @DESCRIPTION: