Uploaded image for project: 'MariaDB Server'
  1. MariaDB Server
  2. MDEV-21930

Rocksdb does not build with latest VS 2019

    XMLWordPrintable

    Details

      Description

      The problem is in the facebook rocksdb library that we use.

      Current head of https://github.com/facebook/rocksdb builds fine.

      The outdated submodule version in MariaDB source (at 10.5, revision e731f4402258554812c46334dc0d9483e6cc769b) fails.

      Here is the error message

       

      C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Tools\MSVC\14.25.28610\include\algorithm(2749,60): error C2676: binary '[': '_RanIt' does not define this operator or a conversion to a
      type acceptable to the predefined operator [C:\work\rocksdb2\rocksdb-shared.vcxproj]
      with
      [
      _RanIt=rocksdb::autovector<rocksdb::KeyContext *,32>::iterator_impl<rocksdb::autovector<rocksdb::KeyContext *,32>,rocksdb::KeyContext *>
      ]
      C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Tools\MSVC\14.25.28610\include\algorithm(3494): message : see reference to function template instantiation 'void std::_Make_heap_unchec
      ked<_RanIt,_Pr>(_RanIt,_RanIt,_Pr)' being compiled [C:\work\rocksdb2\rocksdb-shared.vcxproj]
      with
      [
      _RanIt=rocksdb::autovector<rocksdb::KeyContext *,32>::iterator_impl<rocksdb::autovector<rocksdb::KeyContext *,32>,rocksdb::KeyContext *>,
      _Pr=rocksdb::CompareKeyContext
      ]
      C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Tools\MSVC\14.25.28610\include\algorithm(3506): message : see reference to function template instantiation 'void std::Sort_unchecked<
      RanIt,Fn>(_RanIt,_RanIt,_int64,_Pr)' being compiled [C:\work\rocksdb2\rocksdb-shared.vcxproj]
      with
      [
      _RanIt=rocksdb::autovector<rocksdb::KeyContext *,32>::iterator_impl<rocksdb::autovector<rocksdb::KeyContext *,32>,rocksdb::KeyContext *>,
      _Fn=rocksdb::CompareKeyContext,
      _Pr=rocksdb::CompareKeyContext
      ]
      C:\work\rocksdb2\db\db_impl\db_impl.cc(1794): message : see reference to function template instantiation 'void std::sort<rocksdb::autovector<rocksdb::KeyContext *,32>::iterator_impl<rocksdb::autovec
      tor<rocksdb::KeyContext *,32>,rocksdb::KeyContext *>,rocksdb::CompareKeyContext>(const _RanIt,const _RanIt,_Pr)' being compiled [C:\work\rocksdb2\rocksdb-shared.vcxproj]
      with
      [
      _RanIt=rocksdb::autovector<rocksdb::KeyContext *,32>::iterator_impl<rocksdb::autovector<rocksdb::KeyContext *,32>,rocksdb::KeyContext *>,
      _Pr=rocksdb::CompareKeyContext
      ]
      C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Tools\MSVC\14.25.28610\include\algorithm(2749,43): error C2672: 'std::move': no matching overloaded function found [C:\work\rocksdb2\ro
      cksdb-shared.vcxproj]
      C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Tools\MSVC\14.25.28610\include\algorithm(2749,1): error C2780: '_DestTy *std::move(_InIt,_InIt,_DestTy (&)[_DestSize])': expects 3 argu
      ments - 1 provided [C:\work\rocksdb2\rocksdb-shared.vcxproj]
      C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Tools\MSVC\14.25.28610\include\xutility(3951): message : see declaration of 'std::move' [C:\work\rocksdb2\rocksdb-shared.vcxproj]
      C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Tools\MSVC\14.25.28610\include\algorithm(2749,1): error C2780: '_OutIt std::move(_InIt,_InIt,_OutIt)': expects 3 arguments - 1 provided
      [C:\work\rocksdb2\rocksdb-shared.vcxproj]
      C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Tools\MSVC\14.25.28610\include\xutility(3939): message : see declaration of 'std::move' [C:\work\rocksdb2\rocksdb-shared.vcxproj]
      db_filesnapshot.cc
      C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Tools\MSVC\14.25.28610\include\algorithm(2749,60): error C2676: binary '[': '_RanIt' does not define this operator or a conversion to a
      type acceptable to the predefined operator [C:\work\rocksdb2\rocksdb.vcxproj]
      with
      [
      _RanIt=rocksdb::autovector<rocksdb::KeyContext *,32>::iterator_impl<rocksdb::autovector<rocksdb::KeyContext *,32>,rocksdb::KeyContext *>
      ]
      C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Tools\MSVC\14.25.28610\include\algorithm(3494): message : see reference to function template instantiation 'void std::_Make_heap_unchec
      ked<_RanIt,_Pr>(_RanIt,_RanIt,_Pr)' being compiled [C:\work\rocksdb2\rocksdb.vcxproj]
      with
      [
      _RanIt=rocksdb::autovector<rocksdb::KeyContext *,32>::iterator_impl<rocksdb::autovector<rocksdb::KeyContext *,32>,rocksdb::KeyContext *>,
      _Pr=rocksdb::CompareKeyContext
      ]
      C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Tools\MSVC\14.25.28610\include\algorithm(3506): message : see reference to function template instantiation 'void std::Sort_unchecked<
      RanIt,Fn>(_RanIt,_RanIt,_int64,_Pr)' being compiled [C:\work\rocksdb2\rocksdb.vcxproj]
      with
      [
      _RanIt=rocksdb::autovector<rocksdb::KeyContext *,32>::iterator_impl<rocksdb::autovector<rocksdb::KeyContext *,32>,rocksdb::KeyContext *>,
      _Fn=rocksdb::CompareKeyContext,
      _Pr=rocksdb::CompareKeyContext
      ]
      C:\work\rocksdb2\db\db_impl\db_impl.cc(1794): message : see reference to function template instantiation 'void std::sort<rocksdb::autovector<rocksdb::KeyContext *,32>::iterator_impl<rocksdb::autovec
      tor<rocksdb::KeyContext *,32>,rocksdb::KeyContext *>,rocksdb::CompareKeyContext>(const _RanIt,const _RanIt,_Pr)' being compiled [C:\work\rocksdb2\rocksdb.vcxproj]
      with
      [
      _RanIt=rocksdb::autovector<rocksdb::KeyContext *,32>::iterator_impl<rocksdb::autovector<rocksdb::KeyContext *,32>,rocksdb::KeyContext *>,
      _Pr=rocksdb::CompareKeyContext
      ]
      C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Tools\MSVC\14.25.28610\include\algorithm(2749,43): error C2672: 'std::move': no matching overloaded function found [C:\work\rocksdb2\ro
      cksdb.vcxproj]
      C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Tools\MSVC\14.25.28610\include\algorithm(2749,1): error C2780: '_DestTy *std::move(_InIt,_InIt,_DestTy (&)[_DestSize])': expects 3 argu
      ments - 1 provided [C:\work\rocksdb2\rocksdb.vcxproj]
      C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Tools\MSVC\14.25.28610\include\xutility(3951): message : see declaration of 'std::move' [C:\work\rocksdb2\rocksdb.vcxproj]
      C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Tools\MSVC\14.25.28610\include\algorithm(2749,1): error C2780: '_OutIt std::move(_InIt,_InIt,_OutIt)': expects 3 arguments - 1 provided
      [C:\work\rocksdb2\rocksdb.vcxproj]
      C:\Program Files (x86)\Microsoft Visual Studio\2019\Preview\VC\Tools\MSVC\14.25.28610\include\xutility(3939): message : see declaration of 'std::move' [C:\work\rocksdb2\rocksdb.vcxproj]

      {format}

      Meaning, soon rocksdb could not be compiled on MSVC once anyone is using latest released version of it.

        Attachments

          Activity

            People

            Assignee:
            wlad Vladislav Vaintroub
            Reporter:
            wlad Vladislav Vaintroub
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Dates

              Created:
              Updated:
              Resolved: