Boost logo

Boost Users :

Subject: Re: [Boost-users] Context and coroutine for ARM
From: d25fe0be_at_[hidden]
Date: 2017-05-13 18:52:42


> Playing around with #error's I found out ATOMIC_INT_LOCK_FREE is set to 1 so this condition isn't fulfilled. The next thing i tried out is to comment that condition. The result was:
>
> /cygdrive/d/Development/x-tools/arm-unknown-linux-gnueabihf/arm-unknown-linux-gnueabihf/include/c++/6.3.0/bits/nested_exception.h:43:4: error: #error This platform does not support exception propagation.
>
> I checked then if this example compiles on Pi. It worked. So it seems I have to rebuild my cross-compiler. Do you maybe know which option should I pay attention to, to have this option set?

According to https://gcc.gnu.org/bugzilla/show_bug.cgi?id=58938, configure GCC with '-with-arch=armv7-a' should do the job (setting __GCC_ATOMIC_INT_LOCK_FREE / ATOMIC_INT_LOCK_FREE to 2), IIUC.

FWIW, as pointed out by frankhb1989 in that post (#11), the behavior of GCC 6.3 should be a violation of the standard.

Also, starting from GCC 7.1, ATOMIC_INT_LOCK_FREE is no longer tested for exception-related stuffs. You may give it a try as well.

ps: It seems that in GCC 6.3, 'future' is also relying on ATOMIC_INT_LOCK_FREE to be 2. This restrictions is removed in GCC 7.1 as well.


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net