Boost C++ Libraries: Ticket #3245: Interprocess - Fails to compile on solaris 9 https://svn.boost.org/trac10/ticket/3245 <p> Interprocess fails to compile on solaris 9. It tries to use atomic operations which are available only for kernel use. Below the log of interprocess test compilation - </p> <p> ./bjam ./libs/interprocess/test/ ...patience... ...patience... ...found 1953 targets... ...updating 473 targets... common.mkdir bin.v2/libs/interprocess common.mkdir bin.v2/libs/interprocess/test common.mkdir bin.v2/libs/interprocess/test/intersegment_ptr_test.test common.mkdir bin.v2/libs/interprocess/test/intersegment_ptr_test.test/gcc-3.4.2 common.mkdir bin.v2/libs/interprocess/test/intersegment_ptr_test.test/gcc-3.4.2/debug common.mkdir bin.v2/libs/interprocess/test/intersegment_ptr_test.test/gcc-3.4.2/debug/threading-multi gcc.compile.c++ bin.v2/libs/interprocess/test/intersegment_ptr_test.test/gcc-3.4.2/debug/threading-multi/intersegment_ptr_test.o In file included from ./boost/interprocess/detail/managed_open_or_create_impl.hpp:20, </p> <blockquote> <p> from ./boost/interprocess/detail/managed_multi_shared_memory.hpp:30, from libs/interprocess/test/intersegment_ptr_test.cpp:17: </p> </blockquote> <p> ./boost/interprocess/detail/atomic.hpp: In function `boost::uint32_t boost::interprocess::detail::atomic_add32(volatile boost::uint32_t*, boost::uint32_t)': ./boost/interprocess/detail/atomic.hpp:331: error: invalid conversion from <code>volatile uint32_t*' to </code>uint32_t*' ./boost/interprocess/detail/atomic.hpp:331: error: initializing argument 1 of `uint32_t atomic_add_32_nv(uint32_t*, int32_t)' ./boost/interprocess/detail/atomic.hpp: In function `boost::uint32_t boost::interprocess::detail::atomic_cas32(volatile boost::uint32_t*, boost::uint32_t, boost::uint32_t)': ./boost/interprocess/detail/atomic.hpp:341: error: `atomic_cas_32' undeclared (first use this function) ./boost/interprocess/detail/atomic.hpp:341: error: (Each undeclared identifier is reported only once for each function it appears in.) ./boost/interprocess/detail/atomic.hpp: In function `boost::uint32_t boost::interprocess::detail::atomic_inc32(volatile boost::uint32_t*)': ./boost/interprocess/detail/atomic.hpp:347: error: invalid conversion from <code>volatile uint32_t*' to </code>uint32_t*' ./boost/interprocess/detail/atomic.hpp:347: error: initializing argument 1 of `uint32_t atomic_add_32_nv(uint32_t*, int32_t)' ./boost/interprocess/detail/atomic.hpp: In function `boost::uint32_t boost::interprocess::detail::atomic_dec32(volatile boost::uint32_t*)': ./boost/interprocess/detail/atomic.hpp:353: error: invalid conversion from <code>volatile uint32_t*' to </code>uint32_t*' ./boost/interprocess/detail/atomic.hpp:353: error: initializing argument 1 of `uint32_t atomic_add_32_nv(uint32_t*, int32_t)' </p> <blockquote> <p> "g++" -ftemplate-depth-128 -O0 -fno-inline -Wall -g -pthreads -fPIC -DBOOST_ALL_NO_LIB=1 -DBOOST_THREAD_POSIX -DBOOST_THREAD_USE_DLL=1 -I"." -c -o "bin.v2/libs/interprocess/test/intersegment_ptr_test.test/gcc-3.4.2/debug/threading-multi/intersegment_ptr_test.o" "libs/interprocess/test/intersegment_ptr_test.cpp" </p> </blockquote> <p> ...failed gcc.compile.c++ bin.v2/libs/interprocess/test/intersegment_ptr_test.test/gcc-3.4.2/debug/threading-multi/intersegment_ptr_test.o... common.mkdir bin.v2/libs/thread/build/gcc-3.4.2/debug common.mkdir bin.v2/libs/thread/build/gcc-3.4.2/debug/threading-multi common.mkdir bin.v2/libs/thread/build/gcc-3.4.2/debug/threading-multi/pthread gcc.compile.c++ bin.v2/libs/thread/build/gcc-3.4.2/debug/threading-multi/pthread/thread.o gcc.compile.c++ bin.v2/libs/thread/build/gcc-3.4.2/debug/threading-multi/pthread/exceptions.o gcc.compile.c++ bin.v2/libs/thread/build/gcc-3.4.2/debug/threading-multi/pthread/once.o gcc.link.dll bin.v2/libs/thread/build/gcc-3.4.2/debug/threading-multi/libboost_thread-gcc34-mt-d-1_39.so.1.39.0 ...skipped &lt;pbin.v2/libs/interprocess/test/intersegment_ptr_test.test/gcc-3.4.2/debug/threading-multi&gt;intersegment_ptr_test for lack of &lt;pbin.v2/libs/interprocess/test/intersegment_ptr_test.test/gcc-3.4.2/debug/threading-multi&gt;intersegment_ptr_test.o... ...skipped &lt;pbin.v2/libs/interprocess/test/intersegment_ptr_test.test/gcc-3.4.2/debug/threading-multi&gt;intersegment_ptr_test.run for lack of &lt;pbin.v2/libs/interprocess/test/intersegment_ptr_test.test/gcc-3.4.2/debug/threading-multi&gt;intersegment_ptr_test... common.mkdir bin.v2/libs/interprocess/test/intrusive_ptr_test.test common.mkdir bin.v2/libs/interprocess/test/intrusive_ptr_test.test/gcc-3.4.2 common.mkdir bin.v2/libs/interprocess/test/intrusive_ptr_test.test/gcc-3.4.2/debug common.mkdir bin.v2/libs/interprocess/test/intrusive_ptr_test.test/gcc-3.4.2/debug/threading-multi gcc.compile.c++ bin.v2/libs/interprocess/test/intrusive_ptr_test.test/gcc-3.4.2/debug/threading-multi/intrusive_ptr_test.o In file included from ./boost/interprocess/detail/managed_open_or_create_impl.hpp:20, </p> <blockquote> <p> from ./boost/interprocess/managed_shared_memory.hpp:22, from libs/interprocess/test/intrusive_ptr_test.cpp:15: </p> </blockquote> <p> ./boost/interprocess/detail/atomic.hpp: In function `boost::uint32_t boost::interprocess::detail::atomic_add32(volatile boost::uint32_t*, boost::uint32_t)': ./boost/interprocess/detail/atomic.hpp:331: error: invalid conversion from <code>volatile uint32_t*' to </code>uint32_t*' ./boost/interprocess/detail/atomic.hpp:331: error: initializing argument 1 of `uint32_t atomic_add_32_nv(uint32_t*, int32_t)' ./boost/interprocess/detail/atomic.hpp: In function `boost::uint32_t boost::interprocess::detail::atomic_cas32(volatile boost::uint32_t*, boost::uint32_t, boost::uint32_t)': ./boost/interprocess/detail/atomic.hpp:341: error: `atomic_cas_32' undeclared (first use this function) ./boost/interprocess/detail/atomic.hpp:341: error: (Each undeclared identifier is reported only once for each function it appears in.) ./boost/interprocess/detail/atomic.hpp: In function `boost::uint32_t boost::interprocess::detail::atomic_inc32(volatile boost::uint32_t*)': ./boost/interprocess/detail/atomic.hpp:347: error: invalid conversion from <code>volatile uint32_t*' to </code>uint32_t*' ./boost/interprocess/detail/atomic.hpp:347: error: initializing argument 1 of `uint32_t atomic_add_32_nv(uint32_t*, int32_t)' ./boost/interprocess/detail/atomic.hpp: In function `boost::uint32_t boost::interprocess::detail::atomic_dec32(volatile boost::uint32_t*)': ./boost/interprocess/detail/atomic.hpp:353: error: invalid conversion from <code>volatile uint32_t*' to </code>uint32_t*' ./boost/interprocess/detail/atomic.hpp:353: error: initializing argument 1 of `uint32_t atomic_add_32_nv(uint32_t*, int32_t)' </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/3245 Trac 1.4.3 Ion Gaztañaga Fri, 07 Aug 2009 09:25:57 GMT status changed; resolution set https://svn.boost.org/trac10/ticket/3245#comment:1 https://svn.boost.org/trac10/ticket/3245#comment:1 <ul> <li><strong>status</strong> <span class="trac-field-old">new</span> → <span class="trac-field-new">closed</span> </li> <li><strong>resolution</strong> → <span class="trac-field-new">wontfix</span> </li> </ul> <p> Resolving this bug would require writting assembler code in all processors supported by Solaris 9. Sandly, I have no skills and time to fix this bug. Patches are welcome. </p> Ticket