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