Message ID | 20240229095529.17723-2-roger.pau@citrix.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Restrict Clang/LLVM supported versions | expand |
On 29.02.2024 10:55, Roger Pau Monne wrote: > --- a/README > +++ b/README > @@ -41,7 +41,7 @@ provided by your OS distributor: > - GCC 4.1.2_20070115 or later > - GNU Binutils 2.16.91.0.5 or later > or > - - Clang/LLVM 3.5 or later > + - Clang/LLVM 14.0.0 or later Wow, that's a big step. I'm build-testing with Clang7 on one system and with Clang5 on another (and the latter more frequently than the former). If any real dependency on this new a version (about 3 years old?) was introduced, I would then no longer be able to locally test any Clang builds (and hence the risk would again increase that I introduce issues that affect just Clang builds). Jan
On Thu, Feb 29, 2024 at 01:11:55PM +0100, Jan Beulich wrote: > On 29.02.2024 10:55, Roger Pau Monne wrote: > > --- a/README > > +++ b/README > > @@ -41,7 +41,7 @@ provided by your OS distributor: > > - GCC 4.1.2_20070115 or later > > - GNU Binutils 2.16.91.0.5 or later > > or > > - - Clang/LLVM 3.5 or later > > + - Clang/LLVM 14.0.0 or later > > Wow, that's a big step. I'm build-testing with Clang7 on one system and > with Clang5 on another (and the latter more frequently than the former). > If any real dependency on this new a version (about 3 years old?) was > introduced, I would then no longer be able to locally test any Clang > builds (and hence the risk would again increase that I introduce issues > that affect just Clang builds). Would it be possible for you to update to a newer version? I see both the OpenSUSE containers in Gitlab have newer versions of Clang. The reasoning for selecting such versions is in the commit message, I simply see no point in maintaining support for older Clang versions if there's no-one that actually runs such builds. Just listing them as supported for being able to output a binary that's never run tested is not helpful. Thanks, Roger.
On 29.02.2024 13:40, Roger Pau Monné wrote: > On Thu, Feb 29, 2024 at 01:11:55PM +0100, Jan Beulich wrote: >> On 29.02.2024 10:55, Roger Pau Monne wrote: >>> --- a/README >>> +++ b/README >>> @@ -41,7 +41,7 @@ provided by your OS distributor: >>> - GCC 4.1.2_20070115 or later >>> - GNU Binutils 2.16.91.0.5 or later >>> or >>> - - Clang/LLVM 3.5 or later >>> + - Clang/LLVM 14.0.0 or later >> >> Wow, that's a big step. I'm build-testing with Clang7 on one system and >> with Clang5 on another (and the latter more frequently than the former). >> If any real dependency on this new a version (about 3 years old?) was >> introduced, I would then no longer be able to locally test any Clang >> builds (and hence the risk would again increase that I introduce issues >> that affect just Clang builds). > > Would it be possible for you to update to a newer version? I see both > the OpenSUSE containers in Gitlab have newer versions of Clang. No. These are SLES versions which I'm not intending to touch. See https://lists.xen.org/archives/html/xen-devel/2024-02/msg01793.html and https://lists.xen.org/archives/html/xen-devel/2024-02/msg01795.html for why. The most recent piece of hardware I've installed a fresh (but not exactly new, yet still fully supported) SLES version on would apparently offer Clang7 only, either. If anything I could see about building a newer Clang version myself; no idea how involved that is compared to the building of gcc (which I consider pretty straightforward, but that's biased by me being used to doing so). Jan
On 29.02.2024 14:01, Jan Beulich wrote: > On 29.02.2024 13:40, Roger Pau Monné wrote: >> On Thu, Feb 29, 2024 at 01:11:55PM +0100, Jan Beulich wrote: >>> On 29.02.2024 10:55, Roger Pau Monne wrote: >>>> --- a/README >>>> +++ b/README >>>> @@ -41,7 +41,7 @@ provided by your OS distributor: >>>> - GCC 4.1.2_20070115 or later >>>> - GNU Binutils 2.16.91.0.5 or later >>>> or >>>> - - Clang/LLVM 3.5 or later >>>> + - Clang/LLVM 14.0.0 or later >>> >>> Wow, that's a big step. I'm build-testing with Clang7 on one system and >>> with Clang5 on another (and the latter more frequently than the former). >>> If any real dependency on this new a version (about 3 years old?) was >>> introduced, I would then no longer be able to locally test any Clang >>> builds (and hence the risk would again increase that I introduce issues >>> that affect just Clang builds). >> >> Would it be possible for you to update to a newer version? I see both >> the OpenSUSE containers in Gitlab have newer versions of Clang. > > No. These are SLES versions which I'm not intending to touch. See > > https://lists.xen.org/archives/html/xen-devel/2024-02/msg01793.html > > and > > https://lists.xen.org/archives/html/xen-devel/2024-02/msg01795.html > > for why. The most recent piece of hardware I've installed a fresh (but > not exactly new, yet still fully supported) SLES version on would > apparently offer Clang7 only, either. Bah, that's not even Clang, only LLVM. Jan
On Thu, Feb 29, 2024 at 02:12:26PM +0100, Jan Beulich wrote: > On 29.02.2024 14:01, Jan Beulich wrote: > > On 29.02.2024 13:40, Roger Pau Monné wrote: > >> On Thu, Feb 29, 2024 at 01:11:55PM +0100, Jan Beulich wrote: > >>> On 29.02.2024 10:55, Roger Pau Monne wrote: > >>>> --- a/README > >>>> +++ b/README > >>>> @@ -41,7 +41,7 @@ provided by your OS distributor: > >>>> - GCC 4.1.2_20070115 or later > >>>> - GNU Binutils 2.16.91.0.5 or later > >>>> or > >>>> - - Clang/LLVM 3.5 or later > >>>> + - Clang/LLVM 14.0.0 or later > >>> > >>> Wow, that's a big step. I'm build-testing with Clang7 on one system and > >>> with Clang5 on another (and the latter more frequently than the former). > >>> If any real dependency on this new a version (about 3 years old?) was > >>> introduced, I would then no longer be able to locally test any Clang > >>> builds (and hence the risk would again increase that I introduce issues > >>> that affect just Clang builds). > >> > >> Would it be possible for you to update to a newer version? I see both > >> the OpenSUSE containers in Gitlab have newer versions of Clang. > > > > No. These are SLES versions which I'm not intending to touch. See > > > > https://lists.xen.org/archives/html/xen-devel/2024-02/msg01793.html > > > > and > > > > https://lists.xen.org/archives/html/xen-devel/2024-02/msg01795.html > > > > for why. The most recent piece of hardware I've installed a fresh (but > > not exactly new, yet still fully supported) SLES version on would > > apparently offer Clang7 only, either. Hm, OK. Would containers be an option? I don't know for gcc, but for clang I'm quite sure the only run time tested builds are the ones used by FreeBSD. I'm hesitant to claim clang versions as supported when they are only tested to generate an output without triggering any errors, but there's no testing at all that the generated code is functional. > Bah, that's not even Clang, only LLVM. I'm confused by this, doesn't your llvm package include clang? Thanks, Roger.
On 29.02.2024 15:21, Roger Pau Monné wrote: > On Thu, Feb 29, 2024 at 02:12:26PM +0100, Jan Beulich wrote: >> Bah, that's not even Clang, only LLVM. > > I'm confused by this, doesn't your llvm package include clang? No, there are quite a few RPMs in general in SLES to cover everything, yet on the distro in question the clang* one(s) are (is) missing. Jan
Hi Roger, On 29/02/2024 09:55, Roger Pau Monne wrote: > We no longer have a way to build with the minimum required clang/llvm version > stated in the README on the gitlab CI loop, since we dropped the Debian Jessie > container that had Clang 3.5.0. > > Bump the minimum required Clang/LLVM to the one used in the oldest production > FreeBSD version (13.2 currently), as that's the main reason I care to maintain > Clang/LLVM support, and as far as I know FreeBSD is the only production > deployment of Xen built with Clang/LLVM. > > Purge the build jobs for non-supported Clang versions from Gitlab CI. Note the > .dockerfiles for the respective distros are explicitly not adjusted to drop the > install of the clang packages, or else those jobs would start to fail on older > Xen branches. > > Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> > --- > I'm willing to consider older versions, but there needs to be a reason (iow: > use-case) for considering those, as maintaining support for older toolchains is > a burden. It makes sense. On another thread I mentioned that QEMU also took the approach to only support compilers from currently (security?) supported distros. Acked-by: Julien Grall <jgrall@amazon.com> This could always be relaxed. Cheers,
diff --git a/README b/README index c8a108449e29..5fe52cc7a932 100644 --- a/README +++ b/README @@ -41,7 +41,7 @@ provided by your OS distributor: - GCC 4.1.2_20070115 or later - GNU Binutils 2.16.91.0.5 or later or - - Clang/LLVM 3.5 or later + - Clang/LLVM 14.0.0 or later - For ARM 32-bit: - GCC 4.9 or later - GNU Binutils 2.24 or later diff --git a/automation/gitlab-ci/build.yaml b/automation/gitlab-ci/build.yaml index 6d2cb18b8883..347fe1b5a8db 100644 --- a/automation/gitlab-ci/build.yaml +++ b/automation/gitlab-ci/build.yaml @@ -638,21 +638,6 @@ debian-stretch-gcc: variables: CONTAINER: debian:stretch -debian-stretch-clang: - extends: .clang-x86-64-build - variables: - CONTAINER: debian:stretch - -debian-stretch-clang-debug: - extends: .clang-x86-64-build-debug - variables: - CONTAINER: debian:stretch - -debian-stretch-32-clang-debug: - extends: .clang-x86-32-build-debug - variables: - CONTAINER: debian:stretch-i386 - debian-stretch-32-gcc-debug: extends: .gcc-x86-32-build-debug variables: @@ -725,16 +710,6 @@ ubuntu-trusty-gcc-debug: variables: CONTAINER: ubuntu:trusty -ubuntu-xenial-clang: - extends: .clang-x86-64-build - variables: - CONTAINER: ubuntu:xenial - -ubuntu-xenial-clang-debug: - extends: .clang-x86-64-build-debug - variables: - CONTAINER: ubuntu:xenial - ubuntu-xenial-gcc: extends: .gcc-x86-64-build variables: @@ -745,16 +720,6 @@ ubuntu-xenial-gcc-debug: variables: CONTAINER: ubuntu:xenial -ubuntu-bionic-clang: - extends: .clang-x86-64-build - variables: - CONTAINER: ubuntu:bionic - -ubuntu-bionic-clang-debug: - extends: .clang-x86-64-build-debug - variables: - CONTAINER: ubuntu:bionic - ubuntu-bionic-gcc: extends: .gcc-x86-64-build variables: @@ -775,16 +740,6 @@ ubuntu-focal-gcc-debug: variables: CONTAINER: ubuntu:focal -ubuntu-focal-clang: - extends: .clang-x86-64-build - variables: - CONTAINER: ubuntu:focal - -ubuntu-focal-clang-debug: - extends: .clang-x86-64-build-debug - variables: - CONTAINER: ubuntu:focal - opensuse-leap-clang: extends: .clang-x86-64-build variables:
We no longer have a way to build with the minimum required clang/llvm version stated in the README on the gitlab CI loop, since we dropped the Debian Jessie container that had Clang 3.5.0. Bump the minimum required Clang/LLVM to the one used in the oldest production FreeBSD version (13.2 currently), as that's the main reason I care to maintain Clang/LLVM support, and as far as I know FreeBSD is the only production deployment of Xen built with Clang/LLVM. Purge the build jobs for non-supported Clang versions from Gitlab CI. Note the .dockerfiles for the respective distros are explicitly not adjusted to drop the install of the clang packages, or else those jobs would start to fail on older Xen branches. Signed-off-by: Roger Pau Monné <roger.pau@citrix.com> --- I'm willing to consider older versions, but there needs to be a reason (iow: use-case) for considering those, as maintaining support for older toolchains is a burden. --- README | 2 +- automation/gitlab-ci/build.yaml | 45 --------------------------------- 2 files changed, 1 insertion(+), 46 deletions(-)