[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#336577: linux-kernel-headers: <linux/sem.h> broken on mips, mipsel



On Mon, Oct 31, 2005 at 05:51:45PM +0100, Matej Vela wrote:
> Daniel Jacobowitz <drow@false.org> writes:
> 
> > On Mon, Oct 31, 2005 at 10:45:55AM +0100, Matej Vela wrote:
> >> Including <linux/sem.h> results in the following error on mips and mipsel:
> [...]
> >
> > Why are you using this header from userspace?  In general it's the
> > wrong choice.
> >
> > The only advantage over the userspace header is that it provides union
> > semun; but POSIX is quite clear that it is the application's
> > responsibility to provide that type.
> 
> For SEMVMX.  And you're right, sysconf(_SC_SEM_VALUE_MAX) would be a
> better choice, but it isn't implemented...  Another solution would be
> to call semctl(..., SEM_INFO, arg) and use arg.__buf->semvmx, but that
> seemed unportable and inelegant (given that, as you note, the caller
> must also define union semun).
> 
> If the fix is non-trivial, feel free to downgrade this to wishlist,
> and I'll change dctc and dcgui to use _POSIX_SEM_VALUE_MAX.

In general, most of these headers are not intended or supported for
userspace use; so the correct thing to do is either to use the POSIX
equivalents, or else to copy the bits you need from some particular
version of the kernel headers.

-- 
Daniel Jacobowitz
CodeSourcery, LLC



Reply to: