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] |
On 03/14/2014 03:30 PM, Joseph S. Myers wrote:
On Fri, 14 Mar 2014, Stefan Liebler wrote:Hi, on S390x the conformance test conform/POSIX/signal.h/conform.out is failing, due to incorrect type. The member sa_flags in struct sigaction on s390x is defined as unsigned long instead of int due to the kernel struct. On other platforms, sa_flags is also unsigned long: ia64, sparc, hppa.If you need to XFAIL such a test on an architecture-specific basis, the XFAIL should have a comment explaining why the test is expected to fail. However, in this case I don't see the need to XFAIL it. As far as I can tell, the upper bits of sa_flags aren't actually assigned. So you should be able to change the structure so that sa_flags is int, with an adjacent padding field. This would mean random padding is passed to the kernel in what the kernel thinks is the high part of the field, so you should either get kernel agreement that this is OK, or make glibc's sigaction implementation copy the structure and zero the padding. (Again, file a bug in glibc Bugzilla before fixing it.)
Hi,i talked to the kernel guys and the kernel has no problem with the padding variable and its random content. So i added the padding variable and changed sa_flags to int in order to be POSIX conform.
Afterwards tested on S390/S390x. Is this okay? Bye --- 2014-03-21 Stefan Liebler <stli@linux.vnet.ibm.com> [BZ #16713] * sysdeps/unix/sysv/linux/s390/bits/sigaction.h (__glibc_reserved0): New variable. (sa_flags): Change type to int. ---
Attachment:
patchglibc_sigactionPOSIXconform
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |