[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 3/3] CHANGELOG: Minimum toolchain requirements


  • To: Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx>, Xen-devel <xen-devel@xxxxxxxxxxxxxxxxxxxx>
  • From: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
  • Date: Thu, 27 Mar 2025 17:03:58 +0000
  • Autocrypt: addr=andrew.cooper3@xxxxxxxxxx; keydata= xsFNBFLhNn8BEADVhE+Hb8i0GV6mihnnr/uiQQdPF8kUoFzCOPXkf7jQ5sLYeJa0cQi6Penp VtiFYznTairnVsN5J+ujSTIb+OlMSJUWV4opS7WVNnxHbFTPYZVQ3erv7NKc2iVizCRZ2Kxn srM1oPXWRic8BIAdYOKOloF2300SL/bIpeD+x7h3w9B/qez7nOin5NzkxgFoaUeIal12pXSR Q354FKFoy6Vh96gc4VRqte3jw8mPuJQpfws+Pb+swvSf/i1q1+1I4jsRQQh2m6OTADHIqg2E ofTYAEh7R5HfPx0EXoEDMdRjOeKn8+vvkAwhviWXTHlG3R1QkbE5M/oywnZ83udJmi+lxjJ5 YhQ5IzomvJ16H0Bq+TLyVLO/VRksp1VR9HxCzItLNCS8PdpYYz5TC204ViycobYU65WMpzWe LFAGn8jSS25XIpqv0Y9k87dLbctKKA14Ifw2kq5OIVu2FuX+3i446JOa2vpCI9GcjCzi3oHV e00bzYiHMIl0FICrNJU0Kjho8pdo0m2uxkn6SYEpogAy9pnatUlO+erL4LqFUO7GXSdBRbw5 gNt25XTLdSFuZtMxkY3tq8MFss5QnjhehCVPEpE6y9ZjI4XB8ad1G4oBHVGK5LMsvg22PfMJ ISWFSHoF/B5+lHkCKWkFxZ0gZn33ju5n6/FOdEx4B8cMJt+cWwARAQABzSlBbmRyZXcgQ29v cGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPsLBegQTAQgAJAIbAwULCQgHAwUVCgkI CwUWAgMBAAIeAQIXgAUCWKD95wIZAQAKCRBlw/kGpdefoHbdD/9AIoR3k6fKl+RFiFpyAhvO 59ttDFI7nIAnlYngev2XUR3acFElJATHSDO0ju+hqWqAb8kVijXLops0gOfqt3VPZq9cuHlh IMDquatGLzAadfFx2eQYIYT+FYuMoPZy/aTUazmJIDVxP7L383grjIkn+7tAv+qeDfE+txL4 SAm1UHNvmdfgL2/lcmL3xRh7sub3nJilM93RWX1Pe5LBSDXO45uzCGEdst6uSlzYR/MEr+5Z JQQ32JV64zwvf/aKaagSQSQMYNX9JFgfZ3TKWC1KJQbX5ssoX/5hNLqxMcZV3TN7kU8I3kjK mPec9+1nECOjjJSO/h4P0sBZyIUGfguwzhEeGf4sMCuSEM4xjCnwiBwftR17sr0spYcOpqET ZGcAmyYcNjy6CYadNCnfR40vhhWuCfNCBzWnUW0lFoo12wb0YnzoOLjvfD6OL3JjIUJNOmJy RCsJ5IA/Iz33RhSVRmROu+TztwuThClw63g7+hoyewv7BemKyuU6FTVhjjW+XUWmS/FzknSi dAG+insr0746cTPpSkGl3KAXeWDGJzve7/SBBfyznWCMGaf8E2P1oOdIZRxHgWj0zNr1+ooF /PzgLPiCI4OMUttTlEKChgbUTQ+5o0P080JojqfXwbPAyumbaYcQNiH1/xYbJdOFSiBv9rpt TQTBLzDKXok86M7BTQRS4TZ/ARAAkgqudHsp+hd82UVkvgnlqZjzz2vyrYfz7bkPtXaGb9H4 Rfo7mQsEQavEBdWWjbga6eMnDqtu+FC+qeTGYebToxEyp2lKDSoAsvt8w82tIlP/EbmRbDVn 7bhjBlfRcFjVYw8uVDPptT0TV47vpoCVkTwcyb6OltJrvg/QzV9f07DJswuda1JH3/qvYu0p vjPnYvCq4NsqY2XSdAJ02HrdYPFtNyPEntu1n1KK+gJrstjtw7KsZ4ygXYrsm/oCBiVW/OgU g/XIlGErkrxe4vQvJyVwg6YH653YTX5hLLUEL1NS4TCo47RP+wi6y+TnuAL36UtK/uFyEuPy wwrDVcC4cIFhYSfsO0BumEI65yu7a8aHbGfq2lW251UcoU48Z27ZUUZd2Dr6O/n8poQHbaTd 6bJJSjzGGHZVbRP9UQ3lkmkmc0+XCHmj5WhwNNYjgbbmML7y0fsJT5RgvefAIFfHBg7fTY/i kBEimoUsTEQz+N4hbKwo1hULfVxDJStE4sbPhjbsPCrlXf6W9CxSyQ0qmZ2bXsLQYRj2xqd1 bpA+1o1j2N4/au1R/uSiUFjewJdT/LX1EklKDcQwpk06Af/N7VZtSfEJeRV04unbsKVXWZAk uAJyDDKN99ziC0Wz5kcPyVD1HNf8bgaqGDzrv3TfYjwqayRFcMf7xJaL9xXedMcAEQEAAcLB XwQYAQgACQUCUuE2fwIbDAAKCRBlw/kGpdefoG4XEACD1Qf/er8EA7g23HMxYWd3FXHThrVQ HgiGdk5Yh632vjOm9L4sd/GCEACVQKjsu98e8o3ysitFlznEns5EAAXEbITrgKWXDDUWGYxd pnjj2u+GkVdsOAGk0kxczX6s+VRBhpbBI2PWnOsRJgU2n10PZ3mZD4Xu9kU2IXYmuW+e5KCA vTArRUdCrAtIa1k01sPipPPw6dfxx2e5asy21YOytzxuWFfJTGnVxZZSCyLUO83sh6OZhJkk b9rxL9wPmpN/t2IPaEKoAc0FTQZS36wAMOXkBh24PQ9gaLJvfPKpNzGD8XWR5HHF0NLIJhgg 4ZlEXQ2fVp3XrtocHqhu4UZR4koCijgB8sB7Tb0GCpwK+C4UePdFLfhKyRdSXuvY3AHJd4CP 4JzW0Bzq/WXY3XMOzUTYApGQpnUpdOmuQSfpV9MQO+/jo7r6yPbxT7CwRS5dcQPzUiuHLK9i nvjREdh84qycnx0/6dDroYhp0DFv4udxuAvt1h4wGwTPRQZerSm4xaYegEFusyhbZrI0U9tJ B8WrhBLXDiYlyJT6zOV2yZFuW47VrLsjYnHwn27hmxTC/7tvG3euCklmkn9Sl9IAKFu29RSo d5bD8kMSCYsTqtTfT6W4A3qHGvIDta3ptLYpIAOD2sY3GYq2nf3Bbzx81wZK14JdDDHUX2Rs 6+ahAA==
  • Cc: Anthony PERARD <anthony.perard@xxxxxxxxxx>, Michal Orzel <michal.orzel@xxxxxxx>, Jan Beulich <jbeulich@xxxxxxxx>, Julien Grall <julien@xxxxxxx>, Roger Pau Monné <roger.pau@xxxxxxxxxx>, Stefano Stabellini <sstabellini@xxxxxxxxxx>
  • Delivery-date: Thu, 27 Mar 2025 17:04:08 +0000
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On 27/03/2025 4:55 pm, Oleksii Kurochko wrote:
>
>
> On 3/27/25 4:45 PM, Andrew Cooper wrote:
>> On 21/03/2025 4:24 pm, Oleksii Kurochko wrote:
>>> On 3/20/25 4:59 PM, Andrew Cooper wrote:
>>>> Signed-off-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx>
>>>> ---
>>>> CC: Anthony PERARD <anthony.perard@xxxxxxxxxx>
>>>> CC: Michal Orzel <michal.orzel@xxxxxxx>
>>>> CC: Jan Beulich <jbeulich@xxxxxxxx>
>>>> CC: Julien Grall <julien@xxxxxxx>
>>>> CC: Roger Pau Monné <roger.pau@xxxxxxxxxx>
>>>> CC: Stefano Stabellini <sstabellini@xxxxxxxxxx>
>>>> CC: Oleksii Kurochko <oleksii.kurochko@xxxxxxxxx>
>>>> ---
>>>>  CHANGELOG.md | 3 +++
>>>>  1 file changed, 3 insertions(+)
>>>>
>>>> diff --git a/CHANGELOG.md b/CHANGELOG.md
>>>> index 9a5919585d43..4e333e608a96 100644
>>>> --- a/CHANGELOG.md
>>>> +++ b/CHANGELOG.md
>>>> @@ -7,6 +7,9 @@ The format is based on [Keep a 
>>>> Changelog](https://keepachangelog.com/en/1.0.0/)
>>>>  ## [4.21.0 
>>>> UNRELEASED](https://xenbits.xenproject.org/gitweb/?p=xen.git;a=shortlog;h=staging)
>>>>  - TBD
>>>>  
>>>>  ### Changed
>>>> + - The minimum toolchain requirements have been increased to either:
>>>> +   - GCC 5.1 and Binutils 2.25, or
>>>> +   - Clang/LLVM 11
>>> I think we want here to specify for which architectures it was done as 
>>> RISC-V, for example, uses
>>> different versions:
>>>  - GCC 12.2 or later
>>>  - GNU Binutils 2.39 or later
>>> And for clang the version will be 17 as:
>>>   f873029386dd415cd9caa78f600a593d9570c9ae("[BOLT] Add minimal RISC-V 
>>> 64-bit support")
>>>   $ git tag --contains f873029386dd415cd9caa78f600a593d9570c9ae
>>>     llvmorg-17.0.0
>>>   ...
>>> I have some patch to build Xen RISC-V using clang-17 but I haven't sent to 
>>> upstream yet as I am not
>>> really sure that if we need (or why we need) clang support just from the 
>>> start.
>> The same reason why we got an almost-nothing build in CI first, and are
>> currently looking for a "hello world" message on boot.
>>
>> Keeping it working as you go is much easier than retrofitting at a later
>> point, and supporting more than 1 of any $THING (not just compilers) is
>> good to prevent accidental reliance on an implementation specific property.
>>
>> The only question is what version of Clang exists in Debian bookworm, as
>> that affects how easy/hard it is to add to CI.
>>
>> According to https://packages.debian.org/search?keywords=clang, bookworm
>> has Clang 14, while trixie has Clang 19.
>>
>> So, how hard a limit is Clang-17?  Is Clang-14 doable or not?
> I think it is pretty hard limit because:
> 1. I haven't checked all the extension but, for example, we required 'H' 
> extension and
>    the support for it was added in 16.0.0:
>    [f4c887c3a8406d85f4f942c8350f10026994f4d8("RISCV] Add H extension")
>    $ git tag --contains f4c887c3a8406d85f4f942c8350f10026994f4d8
>      llvmorg-16.0.0
>      ...
> 2. Minimal support for RISCV-64 was added in clang17:
>    f873029386dd415cd9caa78f600a593d9570c9ae("[BOLT] Add minimal RISC-V 64-bit 
> support")
>    $ git tag --contains f873029386dd415cd9caa78f600a593d9570c9ae
>      llvmorg-17.0.0
>      ...
> And, actually, the second one reason was the reason why I tried to build with 
> clang17 and suggests to use
> it as a baseline.

That's fine.  It means we can't use Debian bookworm for this purpose.

>
>> Alternatively, we could start adding some trixie containers.  We have
>> passed the toolchain freeze (was 15th March), so the build container
>> should be stable now, even if it isn't quite released yet.
> clang has nice script to add any version. I did that in the following way
> for bookworm docker container:
> +    DEPS=(
> +        # Clang
> +        wget
> +        gnupg
> +        ca-certificates
> +        lsb-release
> +        software-properties-common
> ...
> +    update-ca-certificates
> +
> +    wget -O - https://apt.llvm.org/llvm.sh | bash -s 17
> +    wget -O - https://apt.llvm.org/llvm.sh | bash -s 18
> +    wget -O - https://apt.llvm.org/llvm.sh | bash -s 19
> +    wget -O - https://apt.llvm.org/llvm.sh | bash -s 20
> +    # ln -s /usr/bin/clang-17 /usr/bin/clang

We used to do this.

It backfired spectacularly when rebuilding a container after versions of
clang had been dropped, and took out testing on the stable-* trees as a
consequence.

Therefore, we don't do this any more.  (Or at least, not in a container
marked for blocking failures.)

~Andrew



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.