Boost logo

Boost Users :

Subject: Re: [Boost-users] [interprocess] problem in HPUX
From: Ion Gaztañaga (igaztanaga_at_[hidden])
Date: 2009-09-13 17:09:07


Rui Pedro Fernandes escribió:
> 2009/9/13 Ion Gaztañaga <igaztanaga_at_[hidden] <mailto:igaztanaga_at_[hidden]>>
>
>
> >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


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net