[interprocess] problem in HPUX

Hi, I've been trying boost.interprocess v. 1.40 in a HP-UX 11.23 IA64 machine. Firstly I tried a 64 bit compilation of the interprocess test with aCC compiler (v. A.06.15). It failed with error: "No atomic operations implemented for this platform, sorry!". Then I used gcc 4.1.2 and compilation did succeed. Many tests got passed, however some failed with "boost::interprocess_exception::library_error". Here is an output example of both cases:
gcc.compile.c++ ../../../bin.v2/libs/interprocess/test/named_construct_test.test/gcc-4.1.2/debug/threading-multi/named_construct_test.o "g++" -ftemplate-depth-128 -O0 -fno-inline -Wall -g -pthread -fPIC -mlp64 -DBOOST_ALL_NO_LIB=1 -DBOOST_THREAD_POSIX -DBOOST_THREAD_USE_DLL=1 -I"../../.." -c -o "../../../bin.v2/libs/interprocess/test/named_construct_test.test/gcc-4.1.2/debug/threading-multi/named_construct_test.o" "named_construct_test.cpp" gcc.link ../../../bin.v2/libs/interprocess/test/named_construct_test.test/gcc-4.1.2/debug/threading-multi/named_construct_test "g++" -o "../../../bin.v2/libs/interprocess/test/named_construct_test.test/gcc-4.1.2/debug/threading-multi/named_construct_test" "../../../bin.v2/libs/interprocess/test/named_construct_test.test/gcc-4.1.2/debug/threading-multi/named_construct_test.o" "../../../bin.v2/libs/thread/build/gcc-4.1.2/debug/threading-multi/libboost_thread-gcc41-mt-d-1_40.so.1.40.0" -lrt -g -fPIC -pthread -mlp64 testing.capture-output ../../../bin.v2/libs/interprocess/test/named_construct_test.test/gcc-4.1.2/debug/threading-multi/named_construct_test.run LD_LIBRARY_PATH="/usr/local/bin:/usr/local/lib:/usr/local/lib32:/usr/local/lib64:/usr/users/genesys/src/boost_1_40_0/bin.v2/libs/thread/build/gcc-4.1.2/debug/threading-multi:$LD_LIBRARY_PATH" export LD_LIBRARY_PATH "../../../bin.v2/libs/interprocess/test/named_construct_test.test/gcc-4.1.2/debug/threading-multi/named_construct_test"
"../../../bin.v2/libs/interprocess/test/named_construct_test.test/gcc-4.1.2/debug/threading-multi/named_construct_test.output" 2>&1 status=$? echo >> "../../../bin.v2/libs/interprocess/test/named_construct_test.test/gcc-4.1.2/debug/threading-multi/named_construct_test.output" echo EXIT STATUS: $status >> "../../../bin.v2/libs/interprocess/test/named_construct_test.test/gcc-4.1.2/debug/threading-multi/named_construct_test.output" if test $status -eq 0 ; then cp "../../../bin.v2/libs/interprocess/test/named_construct_test.test/gcc-4.1.2/debug/threading-multi/named_construct_test.output" "../../../bin.v2/libs/interprocess/test/named_construct_test.test/gcc-4.1.2/debug/threading-multi/named_construct_test.run" fi verbose=0 if test $status -ne 0 ; then verbose=1 fi if test $verbose -eq 1 ; then echo ====== BEGIN OUTPUT ====== cat "../../../bin.v2/libs/interprocess/test/named_construct_test.test/gcc-4.1.2/debug/threading-multi/named_construct_test.output" echo ====== END OUTPUT ====== fi exit $status ...on 100th target... **passed** ../../../bin.v2/libs/interprocess/test/named_construct_test.test/gcc-4.1.2/debug/threading-multi/named_construct_test.test echo passed > "../../../bin.v2/libs/interprocess/test/named_construct_test.test/gcc-4.1.2/debug/threading-multi/named_construct_test.test" gcc.compile.c++ ../../../bin.v2/libs/interprocess/test/named_mutex_test.test/gcc-4.1.2/debug/threading-multi/named_mutex_test.o "g++" -ftemplate-depth-128 -O0 -fno-inline -Wall -g -pthread -fPIC -mlp64 -DBOOST_ALL_NO_LIB=1 -DBOOST_THREAD_POSIX -DBOOST_THREAD_USE_DLL=1 -I"../../.." -c -o "../../../bin.v2/libs/interprocess/test/named_mutex_test.test/gcc-4.1.2/debug/threading-multi/named_mutex_test.o" "named_mutex_test.cpp" gcc.link ../../../bin.v2/libs/interprocess/test/named_mutex_test.test/gcc-4.1.2/debug/threading-multi/named_mutex_test "g++" -o "../../../bin.v2/libs/interprocess/test/named_mutex_test.test/gcc-4.1.2/debug/threading-multi/named_mutex_test" "../../../bin.v2/libs/interprocess/test/named_mutex_test.test/gcc-4.1.2/debug/threading-multi/named_mutex_test.o" "../../../bin.v2/libs/thread/build/gcc-4.1.2/debug/threading-multi/libboost_thread-gcc41-mt-d-1_40.so.1.40.0" -lrt -g -fPIC -pthread -mlp64 testing.capture-output ../../../bin.v2/libs/interprocess/test/named_mutex_test.test/gcc-4.1.2/debug/threading-multi/named_mutex_test.run LD_LIBRARY_PATH="/usr/local/bin:/usr/local/lib:/usr/local/lib32:/usr/local/lib64:/usr/users/genesys/src/boost_1_40_0/bin.v2/libs/thread/build/gcc-4.1.2/debug/threading-multi:$LD_LIBRARY_PATH" export LD_LIBRARY_PATH "../../../bin.v2/libs/interprocess/test/named_mutex_test.test/gcc-4.1.2/debug/threading-multi/named_mutex_test"
"../../../bin.v2/libs/interprocess/test/named_mutex_test.test/gcc-4.1.2/debug/threading-multi/named_mutex_test.output" 2>&1 status=$? echo >> "../../../bin.v2/libs/interprocess/test/named_mutex_test.test/gcc-4.1.2/debug/threading-multi/named_mutex_test.output" echo EXIT STATUS: $status >> "../../../bin.v2/libs/interprocess/test/named_mutex_test.test/gcc-4.1.2/debug/threading-multi/named_mutex_test.output" if test $status -eq 0 ; then cp "../../../bin.v2/libs/interprocess/test/named_mutex_test.test/gcc-4.1.2/debug/threading-multi/named_mutex_test.output" "../../../bin.v2/libs/interprocess/test/named_mutex_test.test/gcc-4.1.2/debug/threading-multi/named_mutex_test.run" fi verbose=0 if test $status -ne 0 ; then verbose=1 fi if test $verbose -eq 1 ; then echo ====== BEGIN OUTPUT ====== cat "../../../bin.v2/libs/interprocess/test/named_mutex_test.test/gcc-4.1.2/debug/threading-multi/named_mutex_test.output" echo ====== END OUTPUT ====== fi exit $status ====== BEGIN OUTPUT ====== create_then_open_then_open_or_create<33named_mutex_creation_test_wrapper> Failed: false file: named_creation_template.hpp line : 34 boost::interprocess_exception::library_error EXIT STATUS: 1 ====== END OUTPUT ====== ...failed testing.capture-output ../../../bin.v2/libs/interprocess/test/named_mutex_test.test/gcc-4.1.2/debug/threading-multi/named_mutex_test.run... <<<<<< Could anyone explain this error? Is it possible to overcome the problem? Thanks in advance. Rui

Rui Pedro Fernandes escribió:
Hi,
I've been trying boost.interprocess v. 1.40 in a HP-UX 11.23 IA64 machine.
Firstly I tried a 64 bit compilation of the interprocess test with aCC compiler (v. A.06.15). It failed with error: "No atomic operations implemented for this platform, sorry!".
Yes, I would need to implement those operations in aCC assembler (or maybe the OS has some nice wrappers?).
Then I used gcc 4.1.2 and compilation did succeed. Many tests got passed, however some failed with "boost::interprocess_exception::library_error". Here is an output example of both cases:
Recent GCC versions have portable wrappers for atomic operations. I don't have a machine to test HP-UX. Could you debug it with gdb and help me discover the issue? Best, Ion

2009/9/2 Ion Gaztañaga <igaztanaga@gmail.com>:
Rui Pedro Fernandes escribió:
Hi, I've been trying boost.interprocess v. 1.40 in a HP-UX 11.23 IA64 machine.
Firstly I tried a 64 bit compilation of the interprocess test with aCC compiler (v. A.06.15). It failed with error: "No atomic operations implemented for this platform, sorry!".
Yes, I would need to implement those operations in aCC assembler (or maybe the OS has some nice wrappers?).
Couldn't find any...
Then I used gcc 4.1.2 and compilation did succeed. Many tests got passed, however some failed with "boost::interprocess_exception::library_error". Here is an output example of both cases:
Recent GCC versions have portable wrappers for atomic operations. I don't have a machine to test HP-UX. Could you debug it with gdb and help me discover the issue?
In attachment I send you a snapshot of a gdb run. Regards, Rui
Best,
Ion _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users

http://rcpt.yousendit.com/735503565/0bf36578fbd945a3670cefb0c5945122 Two more gdb runs in the link above. Notice that gdb couldn't show me the values of local variables like origname, name or oflag - bad address. I rebuilt the test and this kept appearing. I just don't know why this happens and I think the gdb runs are not reliable at all. ** 1st run: errno = 22 after sem_open failure Then I changed file semaphore_wrapper.hpp, function semaphore_open, line 68:
before: case detail::DoOpen: //No addition break;
after: case detail::DoOpen: oflag = 0; break;
and I could pass that exit point and go further. ** 2nd run: Apparently the test passed. However, if I run the test out of gdb, it keeps failing exactly the same way: « ====== BEGIN OUTPUT ====== create_then_open_then_open_or_create<33named_mutex_creation_test_wrapper> Failed: false file: named_creation_template.hpp line : 34 boost::interprocess_exception::library_error EXIT STATUS: 1 ====== END OUTPUT ====== » I was wondering that in case you are interested, you could connect to the hpux host via VPN... Best regards, Rui 2009/9/2 Ion Gaztañaga <igaztanaga@gmail.com>
Rui Pedro Fernandes escribió:
In attachment I send you a snapshot of a gdb run.
I see that open is throwing and that seems strange. Could you debug a bit more deeper into Interprocess to the place where the exception is launched?
Best,
Ion _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users

Please don't loose time looking at the files I sent. I found that I must update the debugger to be able to debug programs built with gcc440. I'll try to send more news soon. On Fri, Sep 4, 2009 at 5:59 PM, Rui Pedro Fernandes <ruipfernandes@gmail.com
wrote:
http://rcpt.yousendit.com/735503565/0bf36578fbd945a3670cefb0c5945122
Two more gdb runs in the link above.
Notice that gdb couldn't show me the values of local variables like origname, name or oflag - bad address. I rebuilt the test and this kept appearing. I just don't know why this happens and I think the gdb runs are not reliable at all.
** 1st run: errno = 22 after sem_open failure
Then I changed file semaphore_wrapper.hpp, function semaphore_open, line 68:
before: case detail::DoOpen: //No addition break;
after: case detail::DoOpen: oflag = 0; break;
and I could pass that exit point and go further.
** 2nd run: Apparently the test passed. However, if I run the test out of gdb, it keeps failing exactly the same way:
« ====== BEGIN OUTPUT ====== create_then_open_then_open_or_create<33named_mutex_creation_test_wrapper> Failed: false file: named_creation_template.hpp line : 34 boost::interprocess_exception::library_error
EXIT STATUS: 1 ====== END OUTPUT ====== »
I was wondering that in case you are interested, you could connect to the hpux host via VPN...
Best regards, Rui
2009/9/2 Ion Gaztañaga <igaztanaga@gmail.com>
Rui Pedro Fernandes escribió:
In attachment I send you a snapshot of a gdb run.
I see that open is throwing and that seems strange. Could you debug a bit more deeper into Interprocess to the place where the exception is launched?
Best,
Ion _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users

Dear, I'm new in Boost and I need a code to start. I want to create a Graph with following features: 1. In every vertex has 4 integers, 4 doubles and 2 bools. 2. Directed Graph 3. At most 9 Out edges for every Vertex and I should know which one is the first one. Could any one help me to start. Regards

seyfollah wrote:
Dear,
I'm new in Boost and I need a code to start.
I want to create a Graph with following features: 1. In every vertex has 4 integers, 4 doubles and 2 bools. 2. Directed Graph 3. At most 9 Out edges for every Vertex and I should know which one is the first one.
Could any one help me to start.
http://www.google.com/#hl=en&safe=off&num=100&newwindow=1&q=c%2B%2B+boost+graph&aq=f&aqi=g1&oq=&fp=3aa7f458acaa2672 http://www.google.com/#hl=en&safe=off&num=100&newwindow=1&q=c%2B%2B+boost+graph+tutorial&aq=f&aqi=&oq=&fp=3aa7f458acaa2672 The tutorial is a pretty good starting place if you have not read through those examples yet. -Steve

I've updated gdb to the latest version for hpux (6.0). In attachment, the another output of gdb as you requested. Notice that when inside "boost::interprocess::detail::semaphore_open" gdb is unable to show me local variables such as "name" and "oflag" - this is weird enough. In what concerns atomic operations and aCC, you can find an interesting library here <http://www.hpl.hp.com/research/linux/atomic_ops/> that supports aCC. 2009/9/2 Ion Gaztañaga <igaztanaga@gmail.com>
Rui Pedro Fernandes escribió:
In attachment I send you a snapshot of a gdb run.
I see that open is throwing and that seems strange. Could you debug a bit more deeper into Interprocess to the place where the exception is launched?
Best,
Ion _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users

Hi, Mr. Gaztañaga, I would be very grateful if you could give me a feedback about the message I sent you before, concerning the problem I'm facing in a HPUX platform. Thank you in advance. Rui On Mon, Sep 7, 2009 at 11:16 AM, Rui Pedro Fernandes < ruipfernandes@gmail.com> wrote:
I've updated gdb to the latest version for hpux (6.0). In attachment, the another output of gdb as you requested. Notice that when inside "boost::interprocess::detail::semaphore_open" gdb is unable to show me local variables such as "name" and "oflag" - this is weird enough.
In what concerns atomic operations and aCC, you can find an interesting library here <http://www.hpl.hp.com/research/linux/atomic_ops/> that supports aCC.
2009/9/2 Ion Gaztañaga <igaztanaga@gmail.com>
Rui Pedro Fernandes escribió:
In attachment I send you a snapshot of a gdb run.
I see that open is throwing and that seems strange. Could you debug a bit more deeper into Interprocess to the place where the exception is launched?
Best,
Ion _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users

Rui Pedro Fernandes escribió:
Hi, Mr. Gaztañaga,
I would be very grateful if you could give me a feedback about the message I sent you before, concerning the problem I'm facing in a HPUX platform.
From the gdb output you sent, I can't deduce why is falling in HPUX, because sem_open is failing but I can't see the errno value and that errno is not a value that can be translated to standardized interprocess values. Let's see if the value of errno after sem_open fails can give us any hint. Regarding the atomic library, it's beyond my skills to port it properly and requires a support that I can't provide. If you feel confident you can port it and fill the few functions needed in interprocess/detail/atomic.hpp to support aCC, supposing aCC is C++ standard compliant enough to compler the rest of interprocess and its dependencies. Best, Ion

2009/9/13 Ion Gaztañaga <igaztanaga@gmail.com>
From the gdb output you sent, I can't deduce why is falling in HPUX, because sem_open is failing but I can't see the errno value and that errno is not a value that can be translated to standardized interprocess values. Let's see if the value of errno after sem_open fails can give us any hint.
In that gdb output, you can see I've printed out the errno value: 22 (EINVAL) . As for the fact that gdb can't show stack variables, can you give me a hint for a possible cause? As I told you, now I'm using the latest available version of gdb for HPUX. The platform linker is being used (not gnu linker) and the only additional flags I've passed to bjam were: cxxflags=-mlp64 linkflags=-mlp64. I don't know how much you're interested that boost.interprocess supports HPUX platforms, if at all. I you think it would be useful, I could provide you a VPN access to the HPUX host, so that you could check for your self what's happening.
Regarding the atomic library, it's beyond my skills to port it properly and requires a support that I can't provide. If you feel confident you can port it and fill the few functions needed in interprocess/detail/atomic.hpp to support aCC,
I'm afraid my experience doesn't allow me to accomplish such a task, I'm sorry. Maybe someone else in the mailing list could have the knowledge to do it.
supposing aCC is C++ standard compliant enough to compler the rest of interprocess and its dependencies.
I think it is. At least Boost.thread builds correctly with aCC. Thank you very much for your help.
Best,
Ion _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users

On Sun, Sep 13, 2009 at 06:55:27PM +0100, Rui Pedro Fernandes wrote:
In that gdb output, you can see I've printed out the errno value: 22 (EINVAL) . As for the fact that gdb can't show stack variables, can you give me a hint for a possible cause? As I told you, now I'm using the latest
The most likely cause is that you are compiling with optimizations turned on.

Rui Pedro Fernandes escribió:
2009/9/13 Ion Gaztañaga <igaztanaga@gmail.com <mailto:igaztanaga@gmail.com>>
>From the gdb output you sent, I can't deduce why is falling in HPUX, because sem_open is failing but I can't see the errno value and that errno is not a value that can be translated to standardized interprocess values. Let's see if the value of errno after sem_open fails can give us any hint.
In that gdb output, you can see I've printed out the errno value: 22 (EINVAL) . As for the fact that gdb can't show stack variables, can you give me a hint for a possible cause? As I told you, now I'm using the latest available version of gdb for HPUX. The platform linker is being used (not gnu linker) and the only additional flags I've passed to bjam were: cxxflags=-mlp64 linkflags=-mlp64.
I don't know how much you're interested that boost.interprocess supports HPUX platforms, if at all. I you think it would be useful, I could provide you a VPN access to the HPUX host, so that you could check for your self what's happening.
I don't have much time for this, but it seems that seeing: http://docs.hp.com/en/B9106-90009/sem_open.2.html [EINVAL] "The name argument does not begin with "/" or contains "." or ".." as a pathname component." and... "The name argument points to a string referring to a semaphore. It should begin with a "/" and shall conform to pathname rules except that no path component should be "." or ".."." Whereas for shm_open: http://docs.hp.com/en/B9106-90009/shm_open.2.html "The name argument points to the shared memory object name, and must conform to the general construction rules for a pathname." Interprocess supposes that if shm_open needs path-based names(POSIX allows that), sem_open also needs them, so try to comment this line in inteprocess/detail/workaround.hpp: #ifdef BOOST_INTERPROCESS_POSIX_NAMED_SEMAPHORES #if defined(BOOST_INTERPROCESS_FILESYSTEM_BASED_POSIX_RESOURCES) //THIS-> #define BOOST_INTERPROCESS_FILESYSTEM_BASED_POSIX_SEMAPHORES #endif #endif And let's see if simple "/name" names are what hpux needs for sems. Best, Ion

2009/9/13 Ion Gaztañaga <igaztanaga@gmail.com>
Interprocess supposes that if shm_open needs path-based names(POSIX allows that), sem_open also needs them, so try to comment this line in inteprocess/detail/workaround.hpp:
#ifdef BOOST_INTERPROCESS_POSIX_NAMED_SEMAPHORES #if defined(BOOST_INTERPROCESS_FILESYSTEM_BASED_POSIX_RESOURCES) //THIS-> #define BOOST_INTERPROCESS_FILESYSTEM_BASED_POSIX_SEMAPHORES #endif #endif
And let's see if simple "/name" names are what hpux needs for sems.
This solved the problem. Thank you! I'm glad to say that after some additional work all tests have passed. Apart from the problem with named_mutex test, there were other tests failing: a) file_mapping_test, message_queue_test, named_condition_test, named_recursive_mutex_test and a few others, all failed with the same error: ENOMEM; b) shared_ptr_test was also failing because of an error in the call to __sync_val_compare_and_swap. Here is what I've done to solve these problems: a) The problem was due to limitations on the default HP-UX address space model. See http://h20338.www2.hp.com/hpux11i/downloads/aas_white_paper.pdf(page 9). Based on this information I solved the problem by adding this line to file Jamfile.v2, after line 29: <host-os>hpux,<toolset>gcc:<linkflags>"-Wl,+as,mpas" b) The problem here was the wrong order of the parameters passed to method __sync_val_compare_and_swap (in detail::atomic_cas32): wrong: __sync_val_compare_and_swap(const_cast<boost::uint32_t *>(mem), with, cmp) correct: __sync_val_compare_and_swap(const_cast<boost::uint32_t *>(mem), cmp, with) After these fixes, we can say boost.interprocess works fine in HP-UX with gcc44. Thank you very much for you patience and valuable help. Best regards, Rui

Hi, I'd like to know if you intend to integrate the fixes that emerged from the effort we spent on trying to solve the problems in HP-UX, so that I can expect they will be included in the next boost version. Best regards, Rui On Wed, Sep 16, 2009 at 10:40 AM, Rui Pedro Fernandes < ruipfernandes@gmail.com> wrote:
2009/9/13 Ion Gaztañaga <igaztanaga@gmail.com>
Interprocess supposes that if shm_open needs path-based names(POSIX allows that), sem_open also needs them, so try to comment this line in inteprocess/detail/workaround.hpp:
#ifdef BOOST_INTERPROCESS_POSIX_NAMED_SEMAPHORES #if defined(BOOST_INTERPROCESS_FILESYSTEM_BASED_POSIX_RESOURCES) //THIS-> #define BOOST_INTERPROCESS_FILESYSTEM_BASED_POSIX_SEMAPHORES #endif #endif
And let's see if simple "/name" names are what hpux needs for sems.
This solved the problem. Thank you!
(...)
Based on this information I solved the problem by adding this line to file Jamfile.v2, after line 29:
<host-os>hpux,<toolset>gcc:<linkflags>"-Wl,+as,mpas"
wrong order of the parameters passed to method __sync_val_compare_and_swap (in detail::atomic_cas32): wrong: __sync_val_compare_and_swap(const_cast<boost::uint32_t *>(mem), with, cmp) correct: __sync_val_compare_and_swap(const_cast<boost::uint32_t *>(mem), cmp, with)

Rui Pedro Fernandes escribió:
Hi,
I'd like to know if you intend to integrate the fixes that emerged from the effort we spent on trying to solve the problems in HP-UX, so that I can expect they will be included in the next boost version.
Best regards, Rui
I will integrate them and try to include them for the next boost version. Best, Ion

I am installing the boost on itanium (64 bit red hat) machine. I am following the three steps. ./bootstrap.sh --prefix=/usr/local ./bjam ./bjam install After installation, libboost files are all located in /usr/lib. But i am trying to run one simple code. #include <boost/interprocess/managed_shared_memory.hpp> #include <boost/interprocess/allocators/allocator.hpp> #include <boost/interprocess/containers/map.hpp> #include <boost/interprocess/containers/string.hpp> #include <iostream> using namespace boost::interprocess; //Typedefs of allocators and containers typedef managed_shared_memory::segment_manager segment_manager_t; typedef allocator<void, segment_manager_t> void_allocator; typedef allocator<char, segment_manager_t> char_allocator; typedef basic_string<char, std::char_traits<char>, char_allocator> char_string; //Definition of the map holding a string as key and complex_data as mapped type typedef std:air<const char_string, int> map_value_type; typedef allocator<map_value_type, segment_manager_t> map_value_type_allocator; typedef map< char_string, int, std::less<char_string>, map_value_type_allocator> complex_map_type; int main () { shared_memory_object::remove("MySharedMemory"); //Create shared memory managed_shared_memory segment(create_only,"MySharedMemory", 65536); //An allocator convertible to any allocator<T, segment_manager_t> type void_allocator alloc_inst (segment.get_segment_manager()); //Construct the shared memory map and fill it complex_map_type *mymap = segment.construct<complex_map_type>("MyMap")(std:: less<char_string>(), alloc_inst); char_string cs("test", alloc_inst); for(int i = 0; i < 100; ++i) { mymap->insert(std:air<char_string, int>(cs , i)); } return 0; } My machine configuration is ia64 architecture with gcc 3.4.6 on a Redhat Enterprise Linux 4 Update 5. when i am trying to compile my program g++ -I /usr/local/include/boost-1_39 boostindex.cpp -lrt and gettting the following error In file included from /usr/local/include/boost-1_39/boost/interprocess/sync/interprocess_mutex.hpp:47, from /usr/local/include/boost-1_39/boost/interprocess/mem_algo/rbtree_best_fit.hpp:27, from /usr/local/include/boost-1_39/boost/interprocess/detail/managed_memory_impl.hpp:22, from /usr/local/include/boost-1_39/boost/interprocess/managed_shared_memory.hpp:21, from boostindex.cpp:1: /usr/local/include/boost-1_39/boost/interprocess/detail/atomic.hpp:466:2: #error No atomic operations implemented for this platform, sorry! /usr/local/include/boost-1_39/boost/interprocess/detail/atomic.hpp:45: warning: inline function `uint32_t boost::interprocess::detail::atomic_cas32(volatile uint32_t*, uint32_t, uint32_t)' used but never defined /usr/local/include/boost-1_39/boost/interprocess/detail/atomic.hpp:36: warning: inline function `void boost::interprocess::detail::atomic_write32(volatile uint32_t*, uint32_t)' used but never defined /usr/local/include/boost-1_39/boost/interprocess/detail/atomic.hpp:31: warning: inline function `uint32_t boost::interprocess::detail::atomic_read32(volatile uint32_t*)' used but never defined Since you have already solved the pblm may i know what can i do solve this pblm. I wll be really grateful to you. Rui Pedro Fernandes wrote:
2009/9/2 Ion Gaztañaga <igaztanaga@gmail.com>:
Rui Pedro Fernandes escribió:
Hi, I've been trying boost.interprocess v. 1.40 in a HP-UX 11.23 IA64 machine.
Firstly I tried a 64 bit compilation of the interprocess test with aCC compiler (v. A.06.15). It failed with error: "No atomic operations implemented for this platform, sorry!".
Yes, I would need to implement those operations in aCC assembler (or maybe the OS has some nice wrappers?).
Couldn't find any...
Then I used gcc 4.1.2 and compilation did succeed. Many tests got passed, however some failed with "boost::interprocess_exception::library_error". Here is an output example of both cases:
Recent GCC versions have portable wrappers for atomic operations. I don't have a machine to test HP-UX. Could you debug it with gdb and help me discover the issue?
In attachment I send you a snapshot of a gdb run.
Regards, Rui
Best,
Ion _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
-- View this message in context: http://www.nabble.com/-interprocess--problem-in-HPUX-tp25244956p25704083.htm... Sent from the Boost - Users mailing list archive at Nabble.com.
participants (6)
-
Ion Gaztañaga
-
manish4gupta
-
Rui Pedro Fernandes
-
seyfollah
-
Stephen Woodbridge
-
Zeljko Vrba