That was such a low-grade, I need a swift-kick-in-the-pants flub -
apologies!

T.

On Wed, Feb 16, 2022 at 4:58 AM Oliver Kowalke via Boost-users <
boost-users@lists.boost.org> wrote:

> It's a linker error - the linker doesn't sees the jump_fcontext().
>
> tjisana (泰志) via Boost-users <boost-users@lists.boost.org> schrieb am
> Mi., 16. Feb. 2022, 10:17:
>
>> Team,
>>
>> I'm trying to get a simple coroutine2 program to work with address
>> sanitizer and I'm running into a block.  I'm building boost_1_78_0 as
>> follows: ./b2 context-impl=ucontext and compiling with -DBOOST_USE_ASAN and
>> -DBOOST_USE_CONTEXT.  I've built and rebuilt the library thinking I've made
>> an error somewhere and it boils down to jump_fcontext and make_fcontext.
>> What am I doing wrong/missing?
>>
>> Cheers,
>>
>> TJ
>>
>>
>> g++ -DBOOST_USE_ASAN -DBOOST_USE_UCONTEXT
>> -I/home/tjisana/Downloads/boost_1_78_0 -O0 -g3 -fsanitize=address -pedantic
>> -Wall -c -fmessage-length=0 -o src/Testbed II.o ../src/Testbed II.cpp
>> g++ -L/home/tjisana/Downloads/boost_1_78_0/stage/lib -fsanitize=address
>> -o Testbed II src/Testbed II.o -lboost_context -lboost_coroutine
>> /usr/lib64/gcc/x86_64-suse-linux/11/../../../../x86_64-suse-linux/bin/ld:
>> /home/tjisana/Downloads/boost_1_78_0/stage/lib/libboost_coroutine.so:
>> undefined reference to `jump_fcontext'
>> /usr/lib64/gcc/x86_64-suse-linux/11/../../../../x86_64-suse-linux/bin/ld:
>> /home/tjisana/Downloads/boost_1_78_0/stage/lib/libboost_coroutine.so:
>> undefined reference to `make_fcontext'
>> collect2: error: ld returned 1 exit status
>>
>>
>> #include <queue>
>>
>> #include <memory>
>>
>> #include "boost/coroutine2/coroutine.hpp"
>>
>>
>> typedef boost::coroutines2::coroutine<int> coro_t;
>>
>>
>>
>> int main() {
>>
>>                 int l = 0;
>>
>>                 std::queue<int> y({1,2,3,4});
>>
>>                 std::queue<std::unique_ptr<int>> w;
>>
>>
>>
>>                 coro_t::push_type sink([&](coro_t::pull_type& source) {
>>
>>                                 for (const auto& i : source) {
>>
>>                                                 while (!w.empty()) {
>>
>>                                                                 auto ptr
>> = std::move(w.front());
>>
>>                                                                 w.pop();
>>
>>                                                                  if
>> (*ptr == 1) {
>>
>>
>> std::cout << "first: " << i << std::endl;
>>
>>
>>
>>
>> auto item = 21;
>>
>>
>> w.push(std::move(std::make_unique<int>(item)));
>>
>>                                                                 }
>>
>>                                                                 else if
>> (*ptr == 21) {
>>
>>
>> std::cout << "second: " << i+2*i << std::endl;
>>
>>
>>
>>
>> auto item = 32;
>>
>>
>> w.push(std::move(std::make_unique<int>(item)));
>>
>>                                                                 }
>>
>>                                                                 else if
>> (*ptr == 32) {
>>
>>
>> std::cout << "third: " << i*i << std::endl;
>>
>>                                                                 }
>>
>>                                                 }
>>
>>                                 }
>>
>>                                 source();
>>
>>                 });
>>
>>
>>
>>                 while (!y.empty()) {
>>
>>                                 if (!y.empty()) {
>>
>>                                                 l = y.front();
>>
>>                                                 y.pop();
>>
>>
>>
>>
>> w.push(std::move(std::make_unique<int>(1)));
>>
>>                                                 sink(l);
>>
>>                                 }
>>
>>                 }
>>
>>
>>
>>                 return 0;
>>
>> }
>> _______________________________________________
>> Boost-users mailing list
>> Boost-users@lists.boost.org
>> https://lists.boost.org/mailman/listinfo.cgi/boost-users
>>
> _______________________________________________
> Boost-users mailing list
> Boost-users@lists.boost.org
> https://lists.boost.org/mailman/listinfo.cgi/boost-users
>
_______________________________________________
Boost-users mailing list
Boost-users@lists.boost.org
https://lists.boost.org/mailman/listinfo.cgi/boost-users

Reply via email to