[PATCH RFC] riscv: Allow to build only with LLVM >= 17.0.0

Alexandre Ghiti alex at ghiti.fr
Wed Jul 17 07:20:59 PDT 2024


On 17/07/2024 13:41, Alexandre Ghiti wrote:
> Hi Conor,
>
> On 17/07/2024 13:32, Conor Dooley wrote:
>> On Wed, Jul 17, 2024 at 01:17:16PM +0200, Alexandre Ghiti wrote:
>>> The following build failure happens when using LLVM < 17.0.0:
>>>
>>> kernel/sched/core.c:11873:7: error: cannot jump from this asm goto 
>>> statement to one of its possible targets
>>>
>>> This is a known issue [1] so let's upgrade the minimal requirement for
>>> LLVM to the version 17.0.0, which is the first version to contain the
>>> fix.
>> I think doing this unilaterally is kinda insane, LLVM 17 isn't even a
>> year old. Debian testing doesn't have anything later than 16.
>
>
> Debian will very likely select the qspinlocks when available anyway, 
> so they'll need llvm >= 17. And Debian won't ship a kernel >= 6.11 
> until some time right? So they'll probably update their infra to llvm 
> >= 17 (and they'll probably do to take advantages of the new extensions).
>
>
>> Why does
>> it need to be done unilaterally rather than just when the qspinlock
>> stuff is built?
>
>
> We can do that indeed, it may happen again and we can keep requiring 
> llvm 17 on a per-config basis.
>
>
>>> Link: 
>>> https://github.com/ClangBuiltLinux/linux/issues/1886#issuecomment-1645979992 
>>> [1]
>>> Reported-by: kernel test robot <lkp at intel.com>
>>> Closes: 
>>> https://lore.kernel.org/oe-kbuild-all/202407041157.odTZAYZ6-lkp@intel.com/
>>> Signed-off-by: Nathan Chancellor <nathan at kernel.org>
>> If Nathan wrote the patch, you need to set him as the author of the
>> patch :)
>
>
> I thought I did, how should I do that then?
>
>
>>
>>> Signed-off-by: Alexandre Ghiti <alexghiti at rivosinc.com>
>>> ---
>>>
>>> This patch was done by Nathan, I'm just sending it as an RFC to get 
>>> quicker
>>> feedbacks.
>>>
>>> I tested it successfully.
>>>
>>> Note that the build failure happens on the not-yet merged qspinlock
>>> patchset.
>>>
>>>   scripts/min-tool-version.sh | 2 ++
>>>   1 file changed, 2 insertions(+)
>>>
>>> diff --git a/scripts/min-tool-version.sh b/scripts/min-tool-version.sh
>>> index 91c91201212c..e81eb7ed257d 100755
>>> --- a/scripts/min-tool-version.sh
>>> +++ b/scripts/min-tool-version.sh
>>> @@ -28,6 +28,8 @@ llvm)
>>>           echo 15.0.0
>>>       elif [ "$SRCARCH" = loongarch ]; then
>>>           echo 18.0.0
>>> +    elif [ "$SRCARCH" = riscv ]; then
>>> +        echo 17.0.0
>>>       else
>>>           echo 13.0.1
>>>       fi
>>> -- 
>>> 2.39.2
>>>
>>>
>>>
>>> _______________________________________________
>>> linux-riscv mailing list
>>> linux-riscv at lists.infradead.org
>>> http://lists.infradead.org/mailman/listinfo/linux-riscv
>
> _______________________________________________
> linux-riscv mailing list
> linux-riscv at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-riscv


So we discussed that during the patchwork meeting and this patch is not 
wanted, the idea is rather to get rid of the build error.

I was given a few ideas so I'll try those and we'll see what the 
resulting code looks like, hopefully not ugly otherwise I'll re-open the 
discussion :)

Thanks Nathan for the patch,

Alex




More information about the linux-riscv mailing list