wheybags / wcp

Experimental file copy tool using io_uring
MIT License
198 stars 7 forks source link

Fail when compile on CentOS 7.4 #12

Open kiemrong08 opened 3 years ago

kiemrong08 commented 3 years ago
/build $ make
[  5%] Building C object liburing/CMakeFiles/Uring.dir/src/setup.c.o
[ 10%] Building C object liburing/CMakeFiles/Uring.dir/src/queue.c.o
[ 15%] Building C object liburing/CMakeFiles/Uring.dir/src/syscall.c.o
[ 21%] Building C object liburing/CMakeFiles/Uring.dir/src/register.c.o
[ 26%] Linking C static library libUring.a
[ 26%] Built target Uring
[ 31%] Building CXX object CMakeFiles/wcp_lib.dir/src/CopyRunner.cpp.o
[ 36%] Building CXX object CMakeFiles/wcp_lib.dir/src/CopyQueue.cpp.o
/root/test/wcptest/wcpsource/src/CopyQueue.cpp: In member function ‘void CopyQueue::addRecursiveCopy(std::string, std::string)’:
/root/test/wcptest/wcpsource/src/CopyQueue.cpp:634:30: error: variable ‘statx sb’ has initializer but incomplete type
  634 |                 struct statx sb = {};
      |                              ^~
/root/test/wcptest/wcpsource/src/CopyQueue.cpp:640:72: error: ‘STATX_BASIC_STATS’ was not declared in this scope
  640 |                         Result result = myStatx(AT_FDCWD, fullPath, 0, STATX_BASIC_STATS, sb);
      |                                                                        ^~~~~~~~~~~~~~~~~
/root/test/wcptest/wcpsource/src/CopyQueue.cpp:678:72: error: ‘STATX_BASIC_STATS’ was not declared in this scope
  678 |                         Result result = myStatx(AT_FDCWD, fullPath, 0, STATX_BASIC_STATS, sb);
      |                                                                        ^~~~~~~~~~~~~~~~~
/root/test/wcptest/wcpsource/src/CopyQueue.cpp: In member function ‘void CopyQueue::addFileCopy(const string&, const string&, const statx*)’:
/root/test/wcptest/wcpsource/src/CopyQueue.cpp:725:52: error: ‘STATX_BASIC_STATS’ was not declared in this scope
  725 |         Result result = myStatx(AT_FDCWD, from, 0, STATX_BASIC_STATS, *tmp);
      |                                                    ^~~~~~~~~~~~~~~~~
/root/test/wcptest/wcpsource/src/CopyQueue.cpp: In member function ‘void CopyQueue::addCopyJob(const string&, const string&, const statx&)’:
/root/test/wcptest/wcpsource/src/CopyQueue.cpp:739:99: error: invalid use of incomplete type ‘const struct statx’
  739 | uto* destFd = new QueueFileDescriptor(*this, dest, O_WRONLY | O_CREAT | O_TRUNC | O_CLOEXEC, st.stx_mode);
      |                                                                                              ^~

In file included from /root/test/wcptest/wcpsource/src/CopyQueue.hpp:2,
                 from /root/test/wcptest/wcpsource/src/CopyQueue.cpp:8:
/root/test/wcptest/wcpsource/liburing/src/include/liburing.h:417:8: note: forward declaration of ‘struct statx’
  417 | struct statx;
      |        ^~~~~
/root/test/wcptest/wcpsource/src/CopyQueue.cpp:741:9: error: invalid use of incomplete type ‘const struct statx’
  741 |     if (st.stx_size == 0)
      |         ^~
In file included from /root/test/wcptest/wcpsource/src/CopyQueue.hpp:2,
                 from /root/test/wcptest/wcpsource/src/CopyQueue.cpp:8:
/root/test/wcptest/wcpsource/liburing/src/include/liburing.h:417:8: note: forward declaration of ‘struct statx’
  417 | struct statx;
      |        ^~~~~
/root/test/wcptest/wcpsource/src/CopyQueue.cpp:755:32: error: invalid use of incomplete type ‘const struct statx’
  755 |     size_t requiredAlignment = st.stx_blksize;
      |                                ^~
In file included from /root/test/wcptest/wcpsource/src/CopyQueue.hpp:2,
                 from /root/test/wcptest/wcpsource/src/CopyQueue.cpp:8:
/root/test/wcptest/wcpsource/liburing/src/include/liburing.h:417:8: note: forward declaration of ‘struct statx’
  417 | struct statx;
      |        ^~~~~
/root/test/wcptest/wcpsource/src/CopyQueue.cpp:769:26: error: invalid use of incomplete type ‘const struct statx’
  769 |     int32_t chunkCount = st.stx_size / chunkSize;
      |                          ^~
In file included from /root/test/wcptest/wcpsource/src/CopyQueue.hpp:2,
                 from /root/test/wcptest/wcpsource/src/CopyQueue.cpp:8:
/root/test/wcptest/wcpsource/liburing/src/include/liburing.h:417:8: note: forward declaration of ‘struct statx’
  417 | struct statx;
      |        ^~~~~
/root/test/wcptest/wcpsource/src/CopyQueue.cpp:770:9: error: invalid use of incomplete type ‘const struct statx’
  770 |     if (st.stx_size % chunkSize != 0)
      |         ^~
In file included from /root/test/wcptest/wcpsource/src/CopyQueue.hpp:2,
                 from /root/test/wcptest/wcpsource/src/CopyQueue.cpp:8:
/root/test/wcptest/wcpsource/liburing/src/include/liburing.h:417:8: note: forward declaration of ‘struct statx’
  417 | struct statx;
      |        ^~~~~
/root/test/wcptest/wcpsource/src/CopyQueue.cpp:777:22: error: invalid use of incomplete type ‘const struct statx’
  777 |     while (offset != st.stx_size)
      |                      ^~
In file included from /root/test/wcptest/wcpsource/src/CopyQueue.hpp:2,
                 from /root/test/wcptest/wcpsource/src/CopyQueue.cpp:8:
/root/test/wcptest/wcpsource/liburing/src/include/liburing.h:417:8: note: forward declaration of ‘struct statx’
  417 | struct statx;
      |        ^~~~~
/root/test/wcptest/wcpsource/src/CopyQueue.cpp:779:52: error: invalid use of incomplete type ‘const struct statx’
  779 |         size_t count = std::min<size_t>(chunkSize, st.stx_size - offset);
      |                                                    ^~
In file included from /root/test/wcptest/wcpsource/src/CopyQueue.hpp:2,
                 from /root/test/wcptest/wcpsource/src/CopyQueue.cpp:8:
/root/test/wcptest/wcpsource/liburing/src/include/liburing.h:417:8: note: forward declaration of ‘struct statx’
  417 | struct statx;
      |        ^~~~~
In file included from /usr/local/include/c++/9.1.0/bits/locale_conv.h:41,
                 from /usr/local/include/c++/9.1.0/locale:43,
                 from /usr/local/include/c++/9.1.0/iomanip:43,
                 from /root/test/wcptest/wcpsource/src/CopyQueue.cpp:1:
/usr/local/include/c++/9.1.0/bits/unique_ptr.h: In instantiation of ‘typename std::_MakeUniq<_Tp>::__single_object std::make_unique(_Args&& ...) [with _Tp = statx; _Args = {}; typename std::_MakeUniq<_Tp>::__single_object = std::unique_ptr<statx>]’:
/root/test/wcptest/wcpsource/src/CopyQueue.cpp:723:46:   required from here
/usr/local/include/c++/9.1.0/bits/unique_ptr.h:853:30: error: invalid use of incomplete type ‘struct statx’
  853 |     { return unique_ptr<_Tp>(new _Tp(std::forward<_Args>(__args)...)); }
      |                              ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /root/test/wcptest/wcpsource/src/CopyQueue.hpp:2,
                 from /root/test/wcptest/wcpsource/src/CopyQueue.cpp:8:
/root/test/wcptest/wcpsource/liburing/src/include/liburing.h:417:8: note: forward declaration of ‘struct statx’
  417 | struct statx;
      |        ^~~~~
In file included from /usr/local/include/c++/9.1.0/bits/locale_conv.h:41,
                 from /usr/local/include/c++/9.1.0/locale:43,
                 from /usr/local/include/c++/9.1.0/iomanip:43,
                 from /root/test/wcptest/wcpsource/src/CopyQueue.cpp:1:
/usr/local/include/c++/9.1.0/bits/unique_ptr.h: In instantiation of ‘void std::default_delete<_Tp>::operator()(_Tp*) const [with _Tp = statx]’:
/usr/local/include/c++/9.1.0/bits/unique_ptr.h:289:17:   required from ‘std::unique_ptr<_Tp, _Dp>::~unique_ptr() [with _Tp = statx; _Dp = std::default_delete<statx>]’
/root/test/wcptest/wcpsource/src/CopyQueue.cpp:720:35:   required from here
/usr/local/include/c++/9.1.0/bits/unique_ptr.h:79:16: error: invalid application of ‘sizeof’ to incomplete type ‘statx’
   79 |  static_assert(sizeof(_Tp)>0,
      |                ^~~~~~~~~~~
make[2]: *** [CMakeFiles/wcp_lib.dir/build.make:90: CMakeFiles/wcp_lib.dir/src/CopyQueue.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:131: CMakeFiles/wcp_lib.dir/all] Error 2
make: *** [Makefile:91: all] Error 2