Build Fix for GCC 12.2.0 , Fedora
While building on Fedora with GCC 12.2, the CMake throws the following error in src/base/sequence_checker.cc & src/base/synchronization/auto_signaller.cc
/libbase/src/base/sequence_checker.cc: In constructor ‘base::SequenceChecker::SequenceChecker(base::SequenceChecker&&)’:
/libbase/src/base/sequence_checker.cc:14:23: error: ‘exchange’ is not a member of ‘std’
14 | sequence_id_ = std::exchange(other.sequence_id_, std::nullopt);
| ^~~~~~~~
/libbase/src/base/sequence_checker.cc: In member function ‘base::SequenceChecker& base::SequenceChecker::operator=(base::SequenceChecker&&)’:
/libbase/src/base/sequence_checker.cc:23:23: error: ‘exchange’ is not a member of ‘std’
23 | sequence_id_ = std::exchange(other.sequence_id_, std::nullopt);
/libbase/src/base/synchronization/auto_signaller.cc: In constructor ‘base::AutoSignaller::AutoSignaller(base::AutoSignaller&&)’:
/libbase/src/base/synchronization/auto_signaller.cc:16:19: error: ‘exchange’ is not a member of ‘std’
16 | : event_(std::exchange(other.event_, nullptr)) {}
| ^~~~~~~~
/libbase/src/base/synchronization/auto_signaller.cc: In member function ‘base::AutoSignaller& base::AutoSignaller::operator=(base::AutoSignaller&&)’:
/libbase/src/base/synchronization/auto_signaller.cc:23:19: error: ‘exchange’ is not a member of ‘std’
23 | event_ = std::exchange(other.event_, nullptr);
This has been fixed by adding <utility> header in src/base/sequence_checker.cc and src/base/synchronization/auto_signaller.cc.
Codecov Report
Merging #38 (2668d19) into master (5f1b049) will not change coverage. The diff coverage is
n/a.
@@ Coverage Diff @@
## master #38 +/- ##
=======================================
Coverage 85.95% 85.95%
=======================================
Files 40 40
Lines 840 840
=======================================
Hits 722 722
Misses 118 118
| Impacted Files | Coverage Δ | |
|---|---|---|
| src/base/sequence_checker.cc | 56.00% <ø> (ø) |
|
| src/base/synchronization/auto_signaller.cc | 95.23% <ø> (ø) |
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more
@RippeR37 The macOS builds are failing because of a linker issue with - Xcode 14.0.1 as discussed here gcc12. I partially resolved it via Xcode 14.1(beta) here patch with only remaining issue of gcc9
Unless the Xcode issue a patch for linker errors and the gcc9 issue( with Xcode 14.1) we can ignore g++9 on macos-12