>>>>> 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 <[email protected]> >> --- >> 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:
signature.asc
Description: PGP signature
