Opened 4 years ago
Closed 4 years ago
#13552 closed Bugs (duplicate)
boost::process doesn't compile with MinGW if BOOST_ASIO_NO_DEPRECATED is defined
Reported by: | Owned by: | ||
---|---|---|---|
Milestone: | To Be Determined | Component: | process |
Version: | Boost 1.67.0 | Severity: | Problem |
Keywords: | Cc: |
Description
The following minimal example doesn't compile:
#define BOOST_ASIO_NO_DEPRECATED #include <boost/process.hpp> int main(int /* argc */, char ** /* argv */) { return 0; }
gcc is 7.1.0
gcc -v Using built-in specs. COLLECT_GCC=...\c\bin\gcc.exe COLLECT_LTO_WRAPPER=.../c/bin/../libexec/gcc/i686-w64-mingw32/7.1.0/lto-wrapper.exe Target: i686-w64-mingw32 Configured with: ../../../src/gcc-7.1.0/configure --host=i686-w64-mingw32 --build=i686-w64-mingw32 --target=i686-w64-mingw32 --prefix=/mingw32 --enable-shared --enable-static --disable-multilib --enable-languages=c,c++,fortran,lto --enable-libstdcxx-time=yes --enable-threads=posix --enable-libgomp --enable-libatomic --enable-lto --enable-graphite --enable-checking=release --enable-fully-dynamic-string --enable-version-specific-runtime-libs --enable-libstdcxx-filesystem-ts=yes --disable-sjlj-exceptions --with-dwarf2 --disable-libstdcxx-pch --disable-libstdcxx-debug --disable-bootstrap --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-gnu-as --with-gnu-ld --with-arch=i686 --with-tune=generic --with-libiconv --with-system-zlib --with-gmp=/opt/build/prerequisites/i686-w64-mingw32-static --with-mpfr=/opt/build/prerequisites/i686-w64-mingw32-static --with-mpc=/opt/build/prerequisites/i686-w64-mingw32-static --with-isl=/opt/build/prerequisites/i686-w64-mingw32-static --with-pkgversion='i686-posix-dwarf, Built by strawberryperl.com project' CFLAGS='-O2 -pipe -fno-ident -I/opt/build/i686-710-posix-dwarf-rt_v502/mingw32/opt/include -I/opt/build/prerequisites/i686-zlib-static/include -I/opt/build/prerequisites/i686-w64-mingw32-static/include' CXXFLAGS='-O2 -pipe -fno-ident -I/opt/build/i686-710-posix-dwarf-rt_v502/mingw32/opt/include -I/opt/build/prerequisites/i686-zlib-static/include -I/opt/build/prerequisites/i686-w64-mingw32-static/include' CPPFLAGS=' -I/opt/build/i686-710-posix-dwarf-rt_v502/mingw32/opt/include -I/opt/build/prerequisites/i686-zlib-static/include -I/opt/build/prerequisites/i686-w64-mingw32-static/include' LDFLAGS='-pipe -fno-ident -L/opt/build/i686-710-posix-dwarf-rt_v502/mingw32/opt/lib -L/opt/build/prerequisites/i686-zlib-static/lib -L/opt/build/prerequisites/i686-w64-mingw32-static/lib -Wl,--large-address-aware' Thread model: posix gcc version 7.1.0 (i686-posix-dwarf, Built by strawberryperl.com project)
Errors are:
In file included from boost\include/boost/process/async_pipe.hpp:20:0, from boost\include/boost/process/detail/windows/async_in.hpp:22, from boost\include/boost/process/async.hpp:49, from boost\include/boost/process.hpp:23, from src/testing/testing_main.cpp:7: boost\include/boost/process/detail/windows/async_pipe.hpp: In member function 'void boost::process::detail::windows::async_pipe::close()': boost\include/boost/process/detail/windows/async_pipe.hpp:102:39: error: 'class boost::asio::windows::stream_handle' has no member named 'get_io_context' _sink = handle_type(_sink.get_io_context()); ^~~~~~~~~~~~~~ boost\include/boost/process/detail/windows/async_pipe.hpp:107:43: error: 'class boost::asio::windows::stream_handle' has no member named 'get_io_context' _source = handle_type(_source.get_io_context()); ^~~~~~~~~~~~~~ boost\include/boost/process/detail/windows/async_pipe.hpp: In member function 'void boost::process::detail::windows::async_pipe::close(boost::system::error_code&)': boost\include/boost/process/detail/windows/async_pipe.hpp:115:39: error: 'class boost::asio::windows::stream_handle' has no member named 'get_io_context' _sink = handle_type(_sink.get_io_context()); ^~~~~~~~~~~~~~ boost\include/boost/process/detail/windows/async_pipe.hpp:120:43: error: 'class boost::asio::windows::stream_handle' has no member named 'get_io_context' _source = handle_type(_source.get_io_context()); ^~~~~~~~~~~~~~ boost\include/boost/process/detail/windows/async_pipe.hpp: In member function 'void boost::process::detail::windows::async_pipe::async_close()': boost\include/boost/process/detail/windows/async_pipe.hpp:131:19: error: 'class boost::asio::windows::stream_handle' has no member named 'get_io_context' _sink.get_io_context(). post([this]{_sink.close();}); ^~~~~~~~~~~~~~ boost\include/boost/process/detail/windows/async_pipe.hpp:133:21: error: 'class boost::asio::windows::stream_handle' has no member named 'get_io_context' _source.get_io_context().post([this]{_source.close();}); ^~~~~~~~~~~~~~ In file included from boost\include/boost/process/async_pipe.hpp:20:0, from boost\include/boost/process/detail/windows/async_in.hpp:22, from boost\include/boost/process/async.hpp:49, from boost\include/boost/process.hpp:23, from src/testing/testing_main.cpp:7: boost\include/boost/process/detail/windows/async_pipe.hpp: In copy constructor 'boost::process::detail::windows::async_pipe::async_pipe(const boost::process::detail::windows::async_pipe&)': boost\include/boost/process/detail/windows/async_pipe.hpp:240:49: error: 'boost::process::detail::windows::async_pipe::handle_type {aka class boost::asio::windows::stream_handle}' has no member named 'get_io_context' _source(const_cast<handle_type&>(p._source).get_io_context()), ^~~~~~~~~~~~~~ boost\include/boost/process/detail/windows/async_pipe.hpp:241:47: error: 'boost::process::detail::windows::async_pipe::handle_type {aka class boost::asio::windows::stream_handle}' has no member named 'get_io_context' _sink (const_cast<handle_type&>(p._sink).get_io_context()) ^~~~~~~~~~~~~~ boost\include/boost/process/detail/windows/async_pipe.hpp: In member function 'boost::process::detail::windows::async_pipe& boost::process::detail::windows::async_pipe::operator=(const boost::process::detail::windows::async_pipe&)': boost\include/boost/process/detail/windows/async_pipe.hpp:340:63: error: 'class boost::asio::windows::stream_handle' has no member named 'get_io_context' _source = ::boost::asio::windows::stream_handle(source_in.get_io_context(), source); ^~~~~~~~~~~~~~ boost\include/boost/process/detail/windows/async_pipe.hpp:341:61: error: 'class boost::asio::windows::stream_handle' has no member named 'get_io_context' _sink = ::boost::asio::windows::stream_handle(source_in.get_io_context(), sink); ^~~~~~~~~~~~~~ In file included from boost\include/boost/process.hpp:24:0, from src/testing/testing_main.cpp:7: boost\include/boost/process/async_system.hpp: In member function 'void boost::process::detail::async_system_handler<ExitHandler>::on_error(Exec&, const std::error_code&)': boost\include/boost/process/async_system.hpp:67:13: error: 'class boost::asio::io_context' has no member named 'post'; did you mean 'poll'? ios.post( ^~~~ poll
Note:
See TracTickets
for help on using tickets.
This is already tracked in github: https://github.com/boostorg/process/issues/29