[Interprocess Test]Boost Interprocess tests failed to compile on solaris 9

Hi, The interprocess test compilation fails on solaris 9. Error is thrown for solaris atomic operations. Following the command used and log - ./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, from ./boost/interprocess/detail/managed_multi_shared_memory.hpp:30, from libs/interprocess/test/intersegment_ptr_test.cpp:17: ./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 `volatile uint32_t*' to `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 `volatile uint32_t*' to `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 `volatile uint32_t*' to `uint32_t*' ./boost/interprocess/detail/atomic.hpp:353: error: initializing argument 1 of `uint32_t atomic_add_32_nv(uint32_t*, int32_t)' "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" ...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 <pbin.v2/libs/interprocess/test/intersegment_ptr_test.test/gcc-3.4.2/debug/threading-multi>intersegment_ptr_test for lack of <pbin.v2/libs/interprocess/test/intersegment_ptr_test.test/gcc-3.4.2/debug/threading-multi>intersegment_ptr_test.o... ...skipped <pbin.v2/libs/interprocess/test/intersegment_ptr_test.test/gcc-3.4.2/debug/threading-multi>intersegment_ptr_test.run for lack of <pbin.v2/libs/interprocess/test/intersegment_ptr_test.test/gcc-3.4.2/debug/threading-multi>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, from ./boost/interprocess/managed_shared_memory.hpp:22, from libs/interprocess/test/intrusive_ptr_test.cpp:15: ./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 `volatile uint32_t*' to `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 `volatile uint32_t*' to `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 `volatile uint32_t*' to `uint32_t*' ./boost/interprocess/detail/atomic.hpp:353: error: initializing argument 1 of `uint32_t atomic_add_32_nv(uint32_t*, int32_t)' I have checked online, it suggests that solaris 9 atomic operations are not available for user code. It can only be used by kernel. Kindly suggest what may be wrong, or any workaround for the same. Regards, DS
participants (2)
-
d s
-
Ion Gaztañaga