I am using managed_shared_memory to implement a cache. However during compilation I get the following error -
g++ -o .build/CacheLib/cachebase.pic.o -c -fPIC -m64 -g -isystem
/usr/local/include/c++/3.4.2 -isystem
/usr/local/include/c++/3.4.2/sparc-sun-solaris2.9 -isystem /usr/include
-isystem /usr/local/include-isystem
/usr/local/lib/gcc/sparc-sun-solaris2.9/3.4.2/include -isystem
/usr/include/sys -nostdinc -nostdinc++ -I/usr/local/include/boost-1_39
-I/geneva1/apps/IRB_2.2.30/2.2.30_CURRENT/include
-I/oracle/product/9.2.0/rdbms/demo -I.build/CacheLib -Isrc/CacheLib
-I/usr/local/include/log4cpp src/CacheLib/cachebase.cpp
In file included from /usr/local/include/boost-1_39/boost/interprocess/detail/managed_open_or_create_impl.hpp:20,
from /usr/local/include/boost-1_39/boost/interprocess/managed_mapped_file.hpp:20,
from src/CacheLib/cachebase.h:12,
from src/CacheLib/cachebase.cpp:8:
/usr/local/include/boost-1_39/boost/interprocess/detail/atomic.hpp: In
function `boost::uint32_t
boost::interprocess::detail::atomic_add32(volatile boost::uint32_t*,
boost::uint32_t)':
/usr/local/include/boost-1_39/boost/interprocess/detail/atomic.hpp:331:
error: `atomic_add_32_nv' undeclared (first use this function)
/usr/local/include/boost-1_39/boost/interprocess/detail/atomic.hpp:331:
error: (Each undeclared identifier is reported only once for each
function it appears in.)
/usr/local/include/boost-1_39/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)':
/usr/local/include/boost-1_39/boost/interprocess/detail/atomic.hpp:341:
error: `atomic_cas_32' undeclared (first use this function)
/usr/local/include/boost-1_39/boost/interprocess/detail/atomic.hpp: In
function `boost::uint32_t
boost::interprocess::detail::atomic_inc32(volatile boost::uint32_t*)':
/usr/local/include/boost-1_39/boost/interprocess/detail/atomic.hpp:347:
error: `atomic_add_32_nv' undeclared (first use this function)
/usr/local/include/boost-1_39/boost/interprocess/detail/atomic.hpp: In
function `boost::uint32_t
boost::interprocess::detail::atomic_dec32(volatile boost::uint32_t*)':
/usr/local/include/boost-1_39/boost/interprocess/detail/atomic.hpp:353:
error: `atomic_add_32_nv' undeclared (first use this function)
scons: *** [.build/CacheLib/cachebase.pic.o] Error 1
scons: building terminated because of errors.
I am using gcc version 3.4.2 on solaris 9.
Reading specs from /usr/local/lib/gcc/sparc-sun-solaris2.9/3.4.2/specs
Configured with: ../configure --with-as=/usr/ccs/bin/as --with-ld=/usr/ccs/bin/ld --disable-nls
Thread model: posix
gcc version 3.4.2
Kindly advice what is the problem? Is there any way I can use pthread atomic operation instead to solaris atomic operations.
Note: The same code is working fine on RHEL Enterprise 5 and Hp-UX.