On 16.02.2024 12:16, Oleksii wrote: > On Thu, 2024-02-15 at 17:43 +0100, Jan Beulich wrote: >> On 15.02.2024 17:38, Oleksii wrote: >>> On Tue, 2024-02-13 at 14:33 +0100, Jan Beulich wrote: >>>> On 05.02.2024 16:32, Oleksii Kurochko wrote: >>>>> + depends on LLD_VERSION >= 150000 || LD_VERSION >= >>>>> 23600 >>>> >>>> What's the linker dependency here? Depending on the answer I >>>> might >>>> further >>>> ask why "TOOLCHAIN" when elsewhere we use CC_HAS_ or HAS_CC_ or >>>> HAS_AS_. >>> I missed to introduce {L}LLD_VERSION config. It should output from >>> the >>> command: >>> riscv64-linux-gnu-ld --version >> >> Doesn't answer my question though where the linker version matters >> here. > Then I misinterpreted your initial question. > Could you please provide further clarification or rephrase it for > better understanding? > > Probably, your question was about why linker dependency is needed here, > then > it is not sufficient to check if a toolchain supports a particular > extension without checking if the linker supports that extension > too. > For example, Clang 15 supports Zihintpause but GNU bintutils > 2.35.2 does not, leading build errors like so: > > riscv64-linux-gnu-ld: -march=rv64i_zihintpause2p0: Invalid or > unknown z ISA extension: 'zihintpause'
Hmm, that's certainly "interesting" behavior of the RISC-V linker. Yet isn't the linker capability expected to be tied to that of gas? I would find it far more natural if a gas dependency existed here. If such a connection cannot be taken for granted, I'm pretty sure you'd need to probe both then anyway. Jan