libbase icon indicating copy to clipboard operation
libbase copied to clipboard

Build Fix for GCC 12.2.0 , Fedora

Open rohanverma94 opened this issue 3 years ago • 2 comments

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.

rohanverma94 avatar Oct 05 '22 05:10 rohanverma94

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

codecov[bot] avatar Oct 06 '22 17:10 codecov[bot]

@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

rohanverma94 avatar Oct 07 '22 11:10 rohanverma94