folly
folly copied to clipboard
Proxygen Linux compilation breaking in folly io_uring
For the past couple of days, a change in folly
is causing a compilation error in proxygen
. It looks like https://github.com/facebook/folly/commit/d85a0f6314f280575e8bc56965bbd8c5bb8b72c9 is the change causing the error. There hasn't been a liburing
release since 2.4
.
-- Generating done (0.0s)
-- Build files have been written to: /home/moderation/Library/proxygen/proxygen/_build/deps/folly/build
[ 1%] Building CXX object CMakeFiles/folly_base.dir/folly/experimental/io/IoUring.cpp.o
[ 1%] Building CXX object CMakeFiles/folly_base.dir/folly/io/async/EventBaseBackendBase.cpp.o
[ 2%] Building CXX object CMakeFiles/folly_base.dir/folly/io/async/EventBaseLocal.cpp.o
[ 2%] Building CXX object CMakeFiles/folly_base.dir/folly/io/async/EventBaseManager.cpp.o
[ 2%] Building CXX object CMakeFiles/folly_base.dir/folly/io/async/EventBaseThread.cpp.o
[ 3%] Building CXX object CMakeFiles/folly_base.dir/folly/io/async/EventHandler.cpp.o
[ 3%] Building CXX object CMakeFiles/folly_base.dir/folly/io/async/HHWheelTimer.cpp.o
[ 3%] Building CXX object CMakeFiles/folly_base.dir/folly/io/async/PasswordInFile.cpp.o
/home/moderation/Library/proxygen/proxygen/_build/deps/folly/folly/experimental/io/IoUring.cpp: In member function ‘virtual int folly::IoUring::submitOne(folly::AsyncBase::Op*)’:
/home/moderation/Library/proxygen/proxygen/_build/deps/folly/folly/experimental/io/IoUring.cpp:277:25: error: no match for ‘operator!=’ (operand types are ‘const folly::IoUringOp::Options’ and ‘const folly::IoUringOp::Options’)
277 | if (iop->getOptions() != getOptions()) {
| ~~~~~~~~~~~~~~~~~ ^~ ~~~~~~~~~~~~
| | |
| | const folly::IoUringOp::Options
| const folly::IoUringOp::Options
In file included from /home/moderation/Library/proxygen/proxygen/_build/deps/folly/folly/experimental/io/AsyncBase.h:30,
from /home/moderation/Library/proxygen/proxygen/_build/deps/folly/folly/experimental/io/IoUring.h:20,
from /home/moderation/Library/proxygen/proxygen/_build/deps/folly/folly/experimental/io/IoUring.cpp:17:
/home/moderation/Library/proxygen/proxygen/_build/deps/folly/folly/Function.h:956:6: note: candidate: ‘template<class FunctionType> bool folly::operator!=(const Function<F>&, std::nullptr_t)’
956 | bool operator!=(const Function<FunctionType>& fn, std::nullptr_t) {
| ^~~~~~~~
/home/moderation/Library/proxygen/proxygen/_build/deps/folly/folly/Function.h:956:6: note: template argument deduction/substitution failed:
/home/moderation/Library/proxygen/proxygen/_build/deps/folly/folly/experimental/io/IoUring.cpp:277:39: note: ‘const folly::IoUringOp::Options’ is not derived from ‘const folly::Function<F>’
277 | if (iop->getOptions() != getOptions()) {
| ^
/home/moderation/Library/proxygen/proxygen/_build/deps/folly/folly/Function.h:961:6: note: candidate: ‘template<class FunctionType> bool folly::operator!=(std::nullptr_t, const Function<F>&)’
961 | bool operator!=(std::nullptr_t, const Function<FunctionType>& fn) {
| ^~~~~~~~
/home/moderation/Library/proxygen/proxygen/_build/deps/folly/folly/Function.h:961:6: note: template argument deduction/substitution failed:
/home/moderation/Library/proxygen/proxygen/_build/deps/folly/folly/experimental/io/IoUring.cpp:277:39: note: ‘const folly::IoUringOp::Options’ is not derived from ‘const folly::Function<F>’
277 | if (iop->getOptions() != getOptions()) {
| ^
In file included from /home/moderation/Library/proxygen/proxygen/_build/deps/folly/folly/experimental/io/AsyncBase.h:32:
/home/moderation/Library/proxygen/proxygen/_build/deps/folly/folly/Range.h:1323:13: note: candidate: ‘template<class Iter> bool folly::operator!=(const Range<Iter>&, const Range<Iter>&)’
1323 | inline bool operator!=(const Range<Iter>& lhs, const Range<Iter>& rhs) {
| ^~~~~~~~
/home/moderation/Library/proxygen/proxygen/_build/deps/folly/folly/Range.h:1323:13: note: template argument deduction/substitution failed:
/home/moderation/Library/proxygen/proxygen/_build/deps/folly/folly/experimental/io/IoUring.cpp:277:39: note: ‘const folly::IoUringOp::Options’ is not derived from ‘const folly::Range<Iter>’
277 | if (iop->getOptions() != getOptions()) {
| ^
/home/moderation/Library/proxygen/proxygen/_build/deps/folly/folly/Range.h:1378:70: note: candidate: ‘template<class T, class U> std::enable_if_t<folly::detail::ComparableAsStringPiece<A, B>::value, bool> folly::operator!=(const T&, const U&)’
1378 | std::enable_if_t<detail::ComparableAsStringPiece<T, U>::value, bool> operator!=(
| ^~~~~~~~
/home/moderation/Library/proxygen/proxygen/_build/deps/folly/folly/Range.h:1378:70: note: template argument deduction/substitution failed:
In file included from /usr/include/c++/13/bits/move.h:37,
from /usr/include/c++/13/bits/atomic_base.h:39,
from /usr/include/c++/13/atomic:41,
from /home/moderation/Library/proxygen/proxygen/_build/deps/folly/folly/SharedMutex.h:23,
from /home/moderation/Library/proxygen/proxygen/_build/deps/folly/folly/experimental/io/IoUring.h:19:
/usr/include/c++/13/type_traits: In substitution of ‘template<bool _Cond, class _Tp> using std::enable_if_t = typename std::enable_if::type [with bool _Cond = false; _Tp = bool]’:
/home/moderation/Library/proxygen/proxygen/_build/deps/folly/folly/Range.h:1378:70: required by substitution of ‘template<class T, class U> std::enable_if_t<folly::detail::ComparableAsStringPiece<A, B>::value, bool> folly::operator!=(const T&, const U&) [with T = folly::IoUringOp::Options; U = folly::IoUringOp::Options]’
/home/moderation/Library/proxygen/proxygen/_build/deps/folly/folly/experimental/io/IoUring.cpp:277:39: required from here
/usr/include/c++/13/type_traits:2610:11: error: no type named ‘type’ in ‘struct std::enable_if<false, bool>’
2610 | using enable_if_t = typename enable_if<_Cond, _Tp>::type;
| ^~~~~~~~~~~
In file included from /home/moderation/Library/proxygen/proxygen/_build/deps/folly/folly/Demangle.h:19,
from /home/moderation/Library/proxygen/proxygen/_build/deps/folly/folly/Conv.h:124,
from /home/moderation/Library/proxygen/proxygen/_build/deps/folly/folly/Exception.h:25,
from /home/moderation/Library/proxygen/proxygen/_build/deps/folly/folly/experimental/io/IoUring.cpp:28: