[PATCH] Fix argument passing in sysvipc/test-sysvsem

Florian Weimer fweimer@redhat.com
Mon Jan 2 18:24:00 GMT 2017


On 01/02/2017 07:14 PM, Tulio Magno Quites Machado Filho wrote:
> Florian Weimer <fweimer@redhat.com> writes:
>
>> On 12/31/2016 05:04 PM, Zack Weinberg wrote:
>>> On Sat, Dec 31, 2016 at 1:07 AM, Florian Weimer <fweimer@redhat.com> wrote:
>>>> On 12/30/2016 09:43 PM, Tulio Magno Quites Machado Filho wrote:
>>>>>
>>>>> +/* Confirm if sys/sem.h defines semun.  */
>>>>> +#ifdef _SEM_SEMUN_UNDEFINED
>>>>> +union semun
>>>>> +{
>>>>> +  int val;
>>>>> +  struct semid_ds *buf;
>>>>> +    unsigned short int *array;
>>>>> +  struct seminfo *__buf;
>>>>> +};
>>>>> +#endif
>>>>
>>>>
>>>> Sorry, I don't understand the comment.  Why is this definition not provided
>>>> by the installed headers if IPC_STAT needs it?
>>>
>>> sys/sem.h is required *not* to declare union semun; applications are
>>> required to declare it themselves.  See
>>> http://pubs.opengroup.org/onlinepubs/9699919799/functions/semctl.html.
>>> Yes, this is ridiculous.  I can only guess that it was omitted by
>>> mistake from the original incarnation of SysV semaphores, so
>>> applications started declaring it themselves, and then POSIX was over
>>> a barrel since redundant complete aggregate definitions aren't
>>> allowed.
>>
>> This still doesn't make sense.  POSIX could have standardized the union
>> under a different name.  The existence struct sockaddr_storage strongly
>> suggests that implementations must be able to cope with this kind of
>> aliasing violation.
>
> Florian, could elaborate what your proposing here?
>
> It isn't clear whether you're suggesting that this test should be changed or
> if POSIX should be changed.

My comments are not relevant to the test case change.

Florian



More information about the Libc-alpha mailing list