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