chriskohlhoff / asio

Asio C++ Library
http://think-async.com/Asio
4.96k stars 1.22k forks source link

Does asio support compile on VxWorks7? #1470

Open yuzu-ogura opened 6 months ago

yuzu-ogura commented 6 months ago

Hello, I got dozens of questions when cross compile Asio for VxWorks.Like below: liuyu@liuyu-virtual-machine:~/Cross-Compile/asio$ make Making all in include make[1]: into directory “/home/liuyu/Cross-Compile/asio/include” make[1]: leave directory “/home/liuyu/Cross-Compile/asio/include” Making all in src make[1]: into directory “/home/liuyu/Cross-Compile/asio/src” Making all in examples/cpp11 make[2]: into directory “/home/liuyu/Cross-Compile/asio/src/examples/cpp11” depbase=echo allocation/server.o | sed 's|[^/]*$|.deps/&|;s|.o$||'`;\ wr-c++ -DPACKAGE_NAME=\"asio\" -DPACKAGE_TARNAME=\"asio\" -DPACKAGE_VERSION=\"1.18.1\" -DPACKAGE_STRING=\"asio\ 1.18.1\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"asio\" -DVERSION=\"1.18.1\" -D_REENTRANT=1 -I. -DASIO_STANDALONE -I./../../../include -g -O2 -ftemplate-depth-256 -MT allocation/server.o -MD -MP -MF $depbase.Tpo -c -o allocation/server.o allocation/server.cpp &&\ mv -f $depbase.Tpo $depbase.Po In file included from allocation/server.cpp:17: In file included from ./../../../include/asio.hpp:19: In file included from ./../../../include/asio/associated_executor.hpp:22: In file included from ./../../../include/asio/system_executor.hpp:20: In file included from ./../../../include/asio/execution.hpp:19: In file included from ./../../../include/asio/execution/any_executor.hpp:23: In file included from ./../../../include/asio/detail/executor_function.hpp:19: In file included from ./../../../include/asio/detail/handler_alloc_helpers.hpp:21: In file included from ./../../../include/asio/detail/recycling_allocator.hpp:20: In file included from ./../../../include/asio/detail/thread_context.hpp:20: In file included from ./../../../include/asio/detail/call_stack.hpp:20: ./../../../include/asio/detail/tss_ptr.hpp:29:3: error: Only Windows and POSIX are supported!

error Only Windows and POSIX are supported!

^ In file included from allocation/server.cpp:17: In file included from ./../../../include/asio.hpp:19: In file included from ./../../../include/asio/associated_executor.hpp:22: In file included from ./../../../include/asio/system_executor.hpp:660: In file included from ./../../../include/asio/impl/system_executor.hpp:22: In file included from ./../../../include/asio/system_context.hpp:19: In file included from ./../../../include/asio/detail/scheduler.hpp:229: In file included from ./../../../include/asio/detail/impl/scheduler.ipp:23: In file included from ./../../../include/asio/detail/reactor.hpp:29: In file included from ./../../../include/asio/detail/select_reactor.hpp:229: In file included from ./../../../include/asio/detail/impl/select_reactor.ipp:28: ./../../../include/asio/detail/signal_blocker.hpp:27:3: error: Only Windows and POSIX are supported!

error Only Windows and POSIX are supported!

^ In file included from allocation/server.cpp:17: In file included from ./../../../include/asio.hpp:19: In file included from ./../../../include/asio/associated_executor.hpp:22: In file included from ./../../../include/asio/system_executor.hpp:660: In file included from ./../../../include/asio/impl/system_executor.hpp:22: In file included from ./../../../include/asio/system_context.hpp:19: In file included from ./../../../include/asio/detail/scheduler.hpp:229: In file included from ./../../../include/asio/detail/impl/scheduler.ipp:23: In file included from ./../../../include/asio/detail/reactor.hpp:29: In file included from ./../../../include/asio/detail/select_reactor.hpp:229: In file included from ./../../../include/asio/detail/impl/select_reactor.ipp:29: In file included from ./../../../include/asio/detail/socket_ops.hpp:380: ./../../../include/asio/detail/impl/socket_ops.ipp:616:18: error: no member named 'socketpair' in the global namespace int result = ::socketpair(af, type, protocol, sv); ~~^ In file included from allocation/server.cpp:17: In file included from ./../../../include/asio.hpp:19: In file included from ./../../../include/asio/associated_executor.hpp:22: In file included from ./../../../include/asio/system_executor.hpp:660: In file included from ./../../../include/asio/impl/system_executor.hpp:22: In file included from ./../../../include/asio/system_context.hpp:19: In file included from ./../../../include/asio/detail/scheduler.hpp:229: ./../../../include/asio/detail/impl/scheduler.ipp:129:19: error: no type named 'signal_blocker' in namespace 'asio::detail' asio::detail::signal_blocker sb;


In file included from allocation/server.cpp:17:
In file included from ./../../../include/asio.hpp:28:
In file included from ./../../../include/asio/basic_signal_set.hpp:25:
In file included from ./../../../include/asio/detail/signal_set_service.hpp:226:
./../../../include/asio/detail/impl/signal_set_service.ipp:57:5: error: copying member subobject of type 'asio::detail::static_mutex' (aka 'asio::detail::std_static_mutex') invokes deleted constructor
    ASIO_STATIC_MUTEX_INIT, -1, -1, false, 0, { 0 } };
    ^~~~~~~~~~~~~~~~~~~~~~
./../../../include/asio/detail/static_mutex.hpp:46:33: note: expanded from macro 'ASIO_STATIC_MUTEX_INIT'
# define ASIO_STATIC_MUTEX_INIT ASIO_STD_STATIC_MUTEX_INIT
                                ^~~~~~~~~~~~~~~~~~~~~~~~~~
./../../../include/asio/detail/std_static_mutex.hpp:72:36: note: expanded from macro 'ASIO_STD_STATIC_MUTEX_INIT'
#define ASIO_STD_STATIC_MUTEX_INIT 0
                                   ^
./../../../include/asio/detail/std_static_mutex.hpp:34:5: note: copy constructor of 'std_static_mutex' is implicitly deleted because base class 'asio::detail::noncopyable' has an inaccessible copy constructor
  : private noncopyable
    ^
In file included from allocation/server.cpp:17:
In file included from ./../../../include/asio.hpp:28:
In file included from ./../../../include/asio/basic_signal_set.hpp:25:
In file included from ./../../../include/asio/detail/signal_set_service.hpp:226:
./../../../include/asio/detail/impl/signal_set_service.ipp:207:21: error: no type named 'signal_blocker' in namespace 'asio::detail'
      asio::detail::signal_blocker blocker;
      ~~~~~~~~~~~~~~^
In file included from allocation/server.cpp:17:
In file included from ./../../../include/asio.hpp:19:
In file included from ./../../../include/asio/associated_executor.hpp:22:
In file included from ./../../../include/asio/system_executor.hpp:20:
In file included from ./../../../include/asio/execution.hpp:19:
In file included from ./../../../include/asio/execution/any_executor.hpp:23:
In file included from ./../../../include/asio/detail/executor_function.hpp:19:
In file included from ./../../../include/asio/detail/handler_alloc_helpers.hpp:21:
In file included from ./../../../include/asio/detail/recycling_allocator.hpp:20:
In file included from ./../../../include/asio/detail/thread_context.hpp:20:
./../../../include/asio/detail/call_stack.hpp:107:14: error: no viable conversion from 'tss_ptr<asio::detail::call_stack<asio::detail::thread_context, asio::detail::thread_info_base>::context>' to 'asio::detail::call_stack<asio::detail::thread_context, asio::detail::thread_info_base>::context *'
    context* elem = top_;
             ^      ~~~~
./../../../include/asio/impl/handler_alloc_hook.ipp:35:50: note: in instantiation of member function 'asio::detail::call_stack<asio::detail::thread_context, asio::detail::thread_info_base>::top' requested here
      detail::thread_context::thread_call_stack::top(), size);
                                                 ^
In file included from allocation/server.cpp:17:
In file included from ./../../../include/asio.hpp:19:
In file included from ./../../../include/asio/associated_executor.hpp:22:
In file included from ./../../../include/asio/system_executor.hpp:20:
In file included from ./../../../include/asio/execution.hpp:19:
In file included from ./../../../include/asio/execution/any_executor.hpp:23:
In file included from ./../../../include/asio/detail/executor_function.hpp:19:
In file included from ./../../../include/asio/detail/handler_alloc_helpers.hpp:21:
In file included from ./../../../include/asio/detail/recycling_allocator.hpp:20:
In file included from ./../../../include/asio/detail/thread_context.hpp:20:
./../../../include/asio/detail/call_stack.hpp:94:14: error: no viable conversion from 'tss_ptr<typename call_stack<thread_context, thread_info_base>::context>' to 'asio::detail::call_stack<asio::detail::thread_context, asio::detail::thread_info_base>::context *'
    context* elem = top_;
             ^      ~~~~
./../../../include/asio/detail/scheduler.hpp:104:31: note: in instantiation of member function 'asio::detail::call_stack<asio::detail::thread_context, asio::detail::thread_info_base>::contains' requested here
    return thread_call_stack::contains(this) != 0;
                              ^
In file included from allocation/server.cpp:17:
In file included from ./../../../include/asio.hpp:19:
In file included from ./../../../include/asio/associated_executor.hpp:22:
In file included from ./../../../include/asio/system_executor.hpp:20:
In file included from ./../../../include/asio/execution.hpp:19:
In file included from ./../../../include/asio/execution/any_executor.hpp:23:
In file included from ./../../../include/asio/detail/executor_function.hpp:19:
In file included from ./../../../include/asio/detail/handler_alloc_helpers.hpp:21:
In file included from ./../../../include/asio/detail/recycling_allocator.hpp:20:
In file included from ./../../../include/asio/detail/thread_context.hpp:20:
./../../../include/asio/detail/call_stack.hpp:51:9: error: no viable conversion from 'tss_ptr<typename call_stack<thread_context, thread_info_base>::context>' to 'asio::detail::call_stack<asio::detail::thread_context, asio::detail::thread_info_base>::context *'
        next_(call_stack<Key, Value>::top_)
        ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./../../../include/asio/detail/impl/scheduler.ipp:198:30: note: in instantiation of member function 'asio::detail::call_stack<asio::detail::thread_context, asio::detail::thread_info_base>::context::context' requested here
  thread_call_stack::context ctx(this, this_thread);
                             ^
In file included from allocation/server.cpp:17:
In file included from ./../../../include/asio.hpp:19:
In file included from ./../../../include/asio/associated_executor.hpp:22:
In file included from ./../../../include/asio/system_executor.hpp:20:
In file included from ./../../../include/asio/execution.hpp:19:
In file included from ./../../../include/asio/execution/any_executor.hpp:23:
In file included from ./../../../include/asio/detail/executor_function.hpp:19:
In file included from ./../../../include/asio/detail/handler_alloc_helpers.hpp:21:
In file included from ./../../../include/asio/detail/recycling_allocator.hpp:20:
In file included from ./../../../include/asio/detail/thread_context.hpp:20:
./../../../include/asio/detail/call_stack.hpp:94:14: error: no viable conversion from 'tss_ptr<asio::detail::call_stack<asio::detail::strand_service::strand_impl>::context>' to 'asio::detail::call_stack<asio::detail::strand_service::strand_impl>::context *'
    context* elem = top_;
             ^      ~~~~
./../../../include/asio/detail/impl/strand_service.ipp:91:35: note: in instantiation of member function 'asio::detail::call_stack<asio::detail::strand_service::strand_impl>::contains' requested here
  return call_stack<strand_impl>::contains(impl) != 0;
                                  ^
In file included from allocation/server.cpp:17:
In file included from ./../../../include/asio.hpp:19:
In file included from ./../../../include/asio/associated_executor.hpp:22:
In file included from ./../../../include/asio/system_executor.hpp:20:
In file included from ./../../../include/asio/execution.hpp:19:
In file included from ./../../../include/asio/execution/any_executor.hpp:23:
In file included from ./../../../include/asio/detail/executor_function.hpp:19:
In file included from ./../../../include/asio/detail/handler_alloc_helpers.hpp:21:
In file included from ./../../../include/asio/detail/recycling_allocator.hpp:20:
In file included from ./../../../include/asio/detail/thread_context.hpp:20:
./../../../include/asio/detail/call_stack.hpp:41:9: error: no viable conversion from 'tss_ptr<typename call_stack<strand_impl, unsigned char>::context>' to 'asio::detail::call_stack<asio::detail::strand_service::strand_impl>::context *'
        next_(call_stack<Key, Value>::top_)
        ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
./../../../include/asio/detail/impl/strand_service.ipp:156:38: note: in instantiation of member function 'asio::detail::call_stack<asio::detail::strand_service::strand_impl>::context::context' requested here
    call_stack<strand_impl>::context ctx(impl);
                                     ^
In file included from allocation/server.cpp:17:
In file included from ./../../../include/asio.hpp:19:
In file included from ./../../../include/asio/associated_executor.hpp:22:
In file included from ./../../../include/asio/system_executor.hpp:20:
In file included from ./../../../include/asio/execution.hpp:19:
In file included from ./../../../include/asio/execution/any_executor.hpp:23:
In file included from ./../../../include/asio/detail/executor_function.hpp:19:
In file included from ./../../../include/asio/detail/handler_alloc_helpers.hpp:21:
In file included from ./../../../include/asio/detail/recycling_allocator.hpp:20:
In file included from ./../../../include/asio/detail/thread_context.hpp:20:
./../../../include/asio/detail/call_stack.hpp:94:14: error: no viable conversion from 'tss_ptr<asio::detail::call_stack<asio::detail::strand_executor_service::strand_impl>::context>' to 'asio::detail::call_stack<asio::detail::strand_executor_service::strand_impl>::context *'
    context* elem = top_;
             ^      ~~~~
./../../../include/asio/detail/impl/strand_executor_service.ipp:126:37: note: in instantiation of member function 'asio::detail::call_stack<asio::detail::strand_executor_service::strand_impl>::contains' requested here
  return !!call_stack<strand_impl>::contains(impl.get());
                                    ^
12 errors generated.`
Could you tell how to solve these questions
razr commented 6 months ago

There are some patches necessary, see here https://github.com/Wind-River/vxworks7-layer-for-ros2/tree/humble-release-23.09/asio/user_src