This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]