[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: