getting past gcc-11 for T
now that distros are starting to adopt gcc-14, it's time to revisit our supported compiler versions ceph has been pinned to gcc-11 ever since we enabled c++20 in https://github.com/ceph/ceph/pull/45133 this means that we're now trying to support 4 gcc major versions. an example where this is problematic: gcc-14 complains about the use of deprecated overloads atomic_store_explicit/atomic_load_explicit in ceph_context.h, with a warning that says "use 'std::atomic<std::shared_ptr<T>>' instead". i made this change in https://github.com/ceph/ceph/pull/58176, but it fails to compile under gcc-11 with "std::atomic requires a trivially copyable type". that works fine in gcc-12 and later crimson builds recently switched to gcc-13 in https://github.com/ceph/ceph/pull/55886, but an lto-related bug in gcc prevented the whole project from switching. in order to make that switch, we'll either need to: a) verify that the compiler bug is resolved in all supported distros, or b) measure the performance impact of disabling lto and decide whether it's significant if we're not able to switch to gcc-13 yet, then we should require at least gcc-12
On Thu, Jul 18, 2024 at 2:03 PM Casey Bodley <cbodley@redhat.com> wrote:
now that distros are starting to adopt gcc-14, it's time to revisit our supported compiler versions
ceph has been pinned to gcc-11 ever since we enabled c++20 in https://github.com/ceph/ceph/pull/45133
this means that we're now trying to support 4 gcc major versions. an example where this is problematic: gcc-14 complains about the use of deprecated overloads atomic_store_explicit/atomic_load_explicit in ceph_context.h, with a warning that says "use 'std::atomic<std::shared_ptr<T>>' instead". i made this change in https://github.com/ceph/ceph/pull/58176, but it fails to compile under gcc-11 with "std::atomic requires a trivially copyable type". that works fine in gcc-12 and later
crimson builds recently switched to gcc-13 in https://github.com/ceph/ceph/pull/55886, but an lto-related bug in gcc prevented the whole project from switching. in order to make that switch, we'll either need to: a) verify that the compiler bug is resolved in all supported distros, or
for reference, this bug is tracked by: https://tracker.ceph.com/issues/63867 https://bugzilla.redhat.com/show_bug.cgi?id=2241339 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113359 the gcc bug is RESOLVED with 13.3 as the target milestone in an up-to-date centos stream 9 vm, i see that appstream's gcc-toolset-13-gcc-c++ provides 13.3.1-2.1.el9. so we could switch to gcc-13 for rpm builds ubuntu jammy doesn't provide gcc-13. its toolchain ppa does, but i only see version 13.1.0-8ubuntu1~22.04 there. so we might stick to gcc-12 on ubuntu until we get 24.04 builders going in the lab
b) measure the performance impact of disabling lto and decide whether it's significant
if we're not able to switch to gcc-13 yet, then we should require at least gcc-12
sharing a retrospective on the 'make check' failures over the past few days: On Fri, Jul 26, 2024 at 3:15 PM Casey Bodley <cbodley@redhat.com> wrote:
On Thu, Jul 18, 2024 at 2:03 PM Casey Bodley <cbodley@redhat.com> wrote:
now that distros are starting to adopt gcc-14, it's time to revisit our supported compiler versions
ceph has been pinned to gcc-11 ever since we enabled c++20 in https://github.com/ceph/ceph/pull/45133
this means that we're now trying to support 4 gcc major versions. an example where this is problematic: gcc-14 complains about the use of deprecated overloads atomic_store_explicit/atomic_load_explicit in ceph_context.h, with a warning that says "use 'std::atomic<std::shared_ptr<T>>' instead". i made this change in https://github.com/ceph/ceph/pull/58176, but it fails to compile under gcc-11 with "std::atomic requires a trivially copyable type". that works fine in gcc-12 and later
crimson builds recently switched to gcc-13 in https://github.com/ceph/ceph/pull/55886, but an lto-related bug in gcc prevented the whole project from switching. in order to make that switch, we'll either need to: a) verify that the compiler bug is resolved in all supported distros, or
for reference, this bug is tracked by: https://tracker.ceph.com/issues/63867 https://bugzilla.redhat.com/show_bug.cgi?id=2241339 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113359
the gcc bug is RESOLVED with 13.3 as the target milestone
in an up-to-date centos stream 9 vm, i see that appstream's gcc-toolset-13-gcc-c++ provides 13.3.1-2.1.el9. so we could switch to gcc-13 for rpm builds
ubuntu jammy doesn't provide gcc-13. its toolchain ppa does, but i only see version 13.1.0-8ubuntu1~22.04 there. so we might stick to gcc-12 on ubuntu until we get 24.04 builders going in the lab
b) measure the performance impact of disabling lto and decide whether it's significant
if we're not able to switch to gcc-13 yet, then we should require at least gcc-12
in https://github.com/ceph/ceph/pull/58384, i tried what i considered the most conservative approach: bumping gcc from 11 to 12 this was successful in ceph-ci builds, but caused an unforeseen interaction with the clang builds for pull request checks. the presence of gcc-12 on these workers caused clang to choose the standard library from gcc-12 where it had previously used 11's. this affected the clang builds of all pull requests and all release branches the first symptom, tracked in https://tracker.ceph.com/issues/67233, was due to the fact that gcc-12 was installed but not libstdc++-12-dev. with help from #sepia, we went through and installed this package on all of the ubuntu builders while this fixed the immediate issue, crimson unit tests built with this toolchain still failed with exceptions from libfmt tracked in https://tracker.ceph.com/issues/66887. a libfmt upgrade was proposed in https://github.com/ceph/ceph/pull/58960 to address this, but could not be reasonably backported all the way to quincy so the only way to restore 'make check' on all releases was to remove all of the gcc-12-related packages from these workers and give up on gcc upgrades for now. this cleanup should be complete soon (if not already), thanks to help from Adam Kraitman. if you see further issues here, please raise them in the #sepia slack channel i apologize for the disruption, especially while the squid release process is still ongoing. i'll wait until after the squid release before trying to make any further progress here after squid is out, i think we need to prioritize the upgrade of these ubuntu 22.04 workers to 24.04 where we have access to gcc-13 (which has been working for crimson builds) and newer clang. this is tracked in https://tracker.ceph.com/issues/66914
On Thu, Aug 1, 2024 at 10:45 PM Casey Bodley <cbodley@redhat.com> wrote:
after squid is out, i think we need to prioritize the upgrade of these ubuntu 22.04 workers to 24.04 where we have access to gcc-13 (which has been working for crimson builds) and newer clang. this is tracked in https://tracker.ceph.com/issues/66914
Because of https://tracker.ceph.com/issues/65635, I am not sure it is compiler related. It would be helpful if we could take out an x86 and an arm machine to upgrade first.
Hi Casey, Rongqi, All, Yes I agree, and we also want to help on this, and after discussion with Rongqi, we thought that it would be worth to try on a upgraded Arm machine to locate the prb. On Fri, 2 Aug 2024 at 11:06, Rongqi Sun <rongqi.sun777@gmail.com> wrote:
On Thu, Aug 1, 2024 at 10:45 PM Casey Bodley <cbodley@redhat.com> wrote:
after squid is out, i think we need to prioritize the upgrade of these ubuntu 22.04 workers to 24.04 where we have access to gcc-13 (which has been working for crimson builds) and newer clang. this is tracked in https://tracker.ceph.com/issues/66914
Because of https://tracker.ceph.com/issues/65635, I am not sure it is compiler related. It would be helpful if we could take out an x86 and an arm machine to upgrade first. _______________________________________________ Dev mailing list -- dev@ceph.io To unsubscribe send an email to dev-leave@ceph.io
-- *Best Regards* *Kevin Zhao* Tech Lead, LDCG Confidential Computing & Storage Linaro Vertical Technologies Slack(cloud-native.slack.com) kevin.zhao@linaro.org | Mobile/Direct/Wechat: +86 18818270915
participants (3)
-
Casey Bodley
-
Kevin Zhao
-
Rongqi Sun