Re: SYSV IPC broken for no-legacy syscall kernels (was Re: [RFC PATCHv1 26/31] ARC: Build system: Makefiles, Kconfig, Linker script)

From: Vineet Gupta
Date: Mon Mar 11 2013 - 09:49:14 EST


Hi Arnd,

On Monday 11 March 2013 07:00 PM, Arnd Bergmann wrote:
> On Monday 11 March 2013, James Hogan wrote:
>>> /*
>>> * Version flags for semctl, msgctl, and shmctl commands
>>> * These are passed as bitflags or-ed with the actual command
>>> */
>>> #define IPC_OLD 0 /* Old version (no 32-bit UID support on many
>>> architectures) */
>>> #define IPC_64 0x0100 /* New version (support 32-bit UIDs, bigger
>>> message sizes, etc. */
>>>
>>> So someone with more ABI wisdom needs to suggest what is the right approach.
>> Agreed.
>>
>> Note that in uClibc, 64bit arches (excl alpha/mips for some reason) were
>> already defining __IPC_64 as 0, so there's some precedent for it working
>> the way it does.
> Yes, there is no reason to need the distinction. If LTP is checking for
> IPC_OLD compatibility on anything but really old architectures, that is
> a bug in LTP, or possibly in the libc.
>
> Arnd

I'm sorrry - I don't quite understand what you mean.

The question is what should the msgctl(2) ABI be w.r.t. @cmd arg. Does it need to
be of type 0x01NN (i.e. IPC_64 ORed) or should it be be 0xNN. If it's 0x01NN,
then ARCH_WANT_IPC_PARSE_VERSION is needed in Kconfig, otherwise, I need to fix
uClibc.

The reason for confusion seems to be a comment in existing uapi/linux/ipc.h which
seems to suggest that IPC_OLD is 0 and IPC_64 is newer version.

Thx,
-Vineet

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/