Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-10478

C++17 library filesystem.h not available on evergreen platforms

    • Type: Icon: Build Failure Build Failure
    • Resolution: Duplicate
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Labels:

      This may be a BUILD ticket, but we'll investigate on the WT side first.

      Commit WT-10456 introduced some changes to workgen that make use of the filesystem library added in C+17. This should be fine as WT supports C+17 - and has CMake checks enforcing a C++17 compliant compiler - but we're seeing the following errors in evergreen tests and when running locally:

      ImportError: /data/mci/47e37614325f95f8a45c0afef1f0f3ad/wiredtiger/cmake_build/bench/workgen/_workgen.so: undefined symbol: _ZTINSt10filesystem7__cxx1116filesystem_errorE
      [2023/01/09 11:15:54.592] /data/mci/a05566cf9cb5da042d4bf692b7b768c1/wiredtiger/test-compatibility-run/develop/bench/workgen/workgen.cxx:42:10: fatal error: filesystem: No such file or directory
      [2023/01/09 11:15:54.592]  #include <filesystem> 


      This can be fixed on local machines by forcing the v3 compiler. Courtesy of Will:

      You can work around this by forcing /usr/bin/c++ to point to the mongo toolchain v3 c++ compiler. (v4 doesn't work unfortunately, since the system libc++ is too old for gcc 11.)



            sulabh.mahajan@mongodb.com Sulabh Mahajan
            andrew.morton@mongodb.com Andrew Morton
            0 Vote for this issue
            1 Start watching this issue