QC compilation fails with arrow 0.17

Using an up-to-date alidist repository and the current QC master branch, QC compilation on SLC7 fails with arrow 0.17, which was recently bumped from 0.14 in alidist (see commit 1377d), with the following error in the root dictionary generation:

[  0%] Generating G__QualityControlTypes.cxx, ../lib/G__QualityControlTypes_rdict.pcm, ../lib/libQualityControlTypes.rootmap
Scanning dependencies of target QualityControlTypes
[  1%] Building CXX object Framework/CMakeFiles/QualityControlTypes.dir/src/MonitorObject.cxx.o
[  2%] Building CXX object Framework/CMakeFiles/QualityControlTypes.dir/G__QualityControlTypes.cxx.o
[  2%] Building CXX object Framework/CMakeFiles/QualityControlTypes.dir/src/Quality.cxx.o
[  2%] Building CXX object Framework/CMakeFiles/QualityControlTypes.dir/src/QualityObject.cxx.o
[  2%] Linking CXX shared library ../lib/libQualityControlTypes.so
[  2%] Built target QualityControlTypes
[  2%] Generating G__QualityControl.cxx, ../lib/G__QualityControl_rdict.pcm, ../lib/libQualityControl.rootmap
In file included from input_line_11:68:
In file included from /home/flp/alibuild-test/alice/sw/slc7_x86-64/O2/0_O2_DATAFLOW-1/include/Framework/DataProcessorSpec.h:13:
In file included from /home/flp/alibuild-test/alice/sw/slc7_x86-64/O2/0_O2_DATAFLOW-1/include/Framework/AlgorithmSpec.h:13:
In file included from /home/flp/alibuild-test/alice/sw/slc7_x86-64/O2/0_O2_DATAFLOW-1/include/Framework/ProcessingContext.h:14:
In file included from /home/flp/alibuild-test/alice/sw/slc7_x86-64/O2/0_O2_DATAFLOW-1/include/Framework/DataAllocator.h:30:
In file included from /home/flp/alibuild-test/alice/sw/slc7_x86-64/O2/0_O2_DATAFLOW-1/include/Framework/TableTreeHelpers.h:16:
In file included from /home/flp/alibuild-test/alice/sw/slc7_x86-64/O2/0_O2_DATAFLOW-1/include/Framework/TableBuilder.h:14:
In file included from /home/flp/alibuild-test/alice/sw/slc7_x86-64/O2/0_O2_DATAFLOW-1/include/Framework/ASoA.h:19:
In file included from /home/flp/alibuild-test/alice/sw/slc7_x86-64/O2/0_O2_DATAFLOW-1/include/Framework/Expressions.h:19:
In file included from /home/flp/alibuild-test/alice/sw/slc7_x86-64/arrow/v0.17.0-1/include/arrow/type.h:29:
/home/flp/alibuild-test/alice/sw/slc7_x86-64/arrow/v0.17.0-1/include/arrow/result.h:34:12: error: no member named 'launder' in namespace 'std'
using std::launder;
      ~~~~~^
/home/flp/alibuild-test/alice/sw/slc7_x86-64/arrow/v0.17.0-1/include/arrow/result.h:400:23: error: no member named 'launder' in namespace 'arrow::internal'
    return *internal::launder(reinterpret_cast<const T*>(&data_));
            ~~~~~~~~~~^
/home/flp/alibuild-test/alice/sw/slc7_x86-64/arrow/v0.17.0-1/include/arrow/result.h:403:42: error: no member named 'launder' in namespace 'arrow::internal'
  T& ValueUnsafe() & { return *internal::launder(reinterpret_cast<T*>(&data_)); }
                               ~~~~~~~~~~^
/home/flp/alibuild-test/alice/sw/slc7_x86-64/arrow/v0.17.0-1/include/arrow/result.h:408:33: error: no member named 'launder' in namespace 'arrow::internal'
    return std::move(*internal::launder(reinterpret_cast<T*>(&data_)));
                      ~~~~~~~~~~^
/home/flp/alibuild-test/alice/sw/slc7_x86-64/arrow/v0.17.0-1/include/arrow/result.h:422:17: error: no member named 'launder' in namespace 'arrow::internal'
      internal::launder(reinterpret_cast<const T*>(&data_))->~T();
      ~~~~~~~~~~^
Error: /home/flp/alibuild-test/alice/sw/slc7_x86-64/ROOT/v6-20-02-alice6-1/bin/rootcling: compilation failure (/home/flp/alibuild-test/alice/sw/BUILD/db54936dd74e37faa0d712fb5ffdc49ab729f7c0/QualityControl/Framework/G__QualityControlbc94411e08_dictUmbrella.h)
Error copying file (if different) from "/home/flp/alibuild-test/alice/sw/BUILD/db54936dd74e37faa0d712fb5ffdc49ab729f7c0/QualityControl/Framework/G__QualityControl_rdict.pcm" to "/home/flp/alibuild-test/alice/sw/BUILD/db54936dd74e37faa0d712fb5ffdc49ab729f7c0/QualityControl/lib/G__QualityControl_rdict.pcm".
gmake[2]: *** [Framework/G__QualityControl.cxx] Error 1
gmake[1]: *** [Framework/CMakeFiles/QualityControl.dir/all] Error 2
gmake: *** [all] Error 2

The code compiles fine with arrow 0.14.

Did you bump O2 as well? This was worked around in 42812aa96d0c965ab68e139c1568ec3922d640c4 and all the tests compiled with it applied.

Probably not recently enough… probably just before the weekend. I will update O2 and report back.
Thanks!

Hi,
the ALICE CI seems to have the same same problem with PR #3576. On my Mac it compiles without any errors.

Can you make sure you rebase on top of the latest head of both O2 and QC?

Actually I rebased to O2/dev before pushing. Anyway, I did it again now to also include the latest commits since yesterday. In QC I did not change anything.