<div dir="ltr">and use 'gcc_atomic' in platform.hpp just for 4.8.x 4.9.x, <div> </div><div><br></div><div>#if ((defined(__GNUC__) && ((__GNUC__ * 100 + __GNUC_MINOR__) >= 407))</div><div><br></div><div>
I don't know why low version gcc can do the lock free atomic operation, but high version can't</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Fri, Aug 29, 2014 at 11:28 AM, Yi Qingliang <span dir="ltr"><<a href="mailto:niqingliang2003@gmail.com" target="_blank">niqingliang2003@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">hardware: samsung s3c6410<br><br>after updated to latest poky, the boost compile fail!<br><br>error info:<div>
<div>libs/atomic/src/lockpool.cpp:127:5: error: 'thread_fence' is not a member of 'boost::atomics::detail'<br>
</div><div>libs/atomic/src/lockpool.cpp:138:5: error: 'signal_fence' is not a member of 'boost::atomics::detail'</div></div><div><br></div><div><br></div><div>after dig into it, I found that:</div><div>the marco 'BOOST_ATOMIC_FLAG_LOCK_FREE' is 0, so it don't include 'operations_lockfree.hpp' which has 'thread_fence' and 'signal_fence', but pthread.h at line 21.<br>
<br></div><div>in file 'caps_gcc_atomic.hpp', 'BOOST_ATOMIC_FLAG_LOCK_FREE' is set to '0', the author think if '__GCC_ATOMIC_BOOL_LOCK_FREE' is 1, the atomic serial function gcc provided is not lock free.</div>
<div><br></div><div>at the end of 'caps_gcc_atomic.hpp', it defined 'BOOST_ATOMIC_THREAD_FENCE' as 2.</div><div><br></div><div>so the conflict is: <b>BOOST_ATOMIC_THREAD_FENCE</b> and <b>BOOST_ATOMIC_FLAG_LOCK_FREE</b></div>
<div><b><br></b></div><div>I don't know it is the new poky problem, or the boost problem, any idea?</div><span class="HOEnZb"><font color="#888888"><div><br></div><div><br></div><div>Yi Qingliang</div></font></span></div>
</blockquote></div><br></div>