]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
conform: XFAIL siginfo_t si_band test on sparc64
authorFlorian Weimer <fweimer@redhat.com>
Thu, 25 Oct 2018 09:43:57 +0000 (11:43 +0200)
committerFlorian Weimer <fweimer@redhat.com>
Thu, 25 Oct 2018 12:36:57 +0000 (14:36 +0200)
We can use long int on sparcv9, but on sparc64, we must match the int
type used by the kernel (and not long int, as in POSIX).

ChangeLog
conform/data/signal.h-data
conform/data/sys/wait.h-data
sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h
sysdeps/unix/sysv/linux/sparc/sparc64/Makefile

index d2d04c024c4cf97ba0937b6db0d3fc1615d69031..d44c8376fedd8450e5314debca88f7aaee652195 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,16 @@
+2018-10-25  Florian Weimer  <fweimer@redhat.com>
+
+       [BZ #23562]
+       [BZ #23821]
+       XFAIL siginfo_t si_band conform test on sparc64.
+       * sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h
+       (__SI_BAND_TYPE): Only override long int default type on sparc64.
+       * sysdeps/unix/sysv/linux/sparc/sparc64/Makefile
+       (conformtest-xfail-conds): Add sparc64-linux.
+       * conform/data/signal.h-data (siginfo_t): XFAIL si_band test on
+       sparc64.
+       * conform/data/sys/wait.h-data (siginfo_t): Likewise.
+
 2018-10-25  Joseph Myers  <joseph@codesourcery.com>
 
        * elf/elf.h (NT_MIPS_DSP): New macro.
index 11e54adb04824c948de137503382602a77c90688..674e5793dbdf32b09cdd7105f6ebc35273116d18 100644 (file)
@@ -172,7 +172,8 @@ element siginfo_t pid_t si_pid
 element siginfo_t uid_t si_uid
 element siginfo_t {void*} si_addr
 element siginfo_t int si_status
-element siginfo_t long si_band
+// Bug 23821: si_band has type int on sparc64.
+xfail[sparc64-linux]-element siginfo_t long si_band
 #  endif
 #  ifndef XPG42
 element siginfo_t {union sigval} si_value
index ed3869b34fa6343e79481cdb93f4eccb9a0b456e..c0761424daa15738ccc607d6fe381bd3a46478d0 100644 (file)
@@ -46,7 +46,8 @@ element siginfo_t pid_t si_pid
 element siginfo_t uid_t si_uid
 element siginfo_t {void*} si_addr
 element siginfo_t int si_status
-element siginfo_t long si_band
+// Bug 23821: si_band has type int on sparc64.
+xfail[sparc64-linux]-element siginfo_t long si_band
 # ifndef XPG42
 element siginfo_t {union sigval} si_value
 # endif
index 9f79715ebe6c94828bb383be5edee5f2a1ea2007..4dd35237f67a63c555becffdf038e489558564e6 100644 (file)
@@ -2,7 +2,12 @@
 #ifndef _BITS_SIGINFO_ARCH_H
 #define _BITS_SIGINFO_ARCH_H 1
 
-#define __SI_BAND_TYPE int
+/* The kernel uses int instead of long int (as in POSIX).  In 32-bit
+   mode, we can still use long int, but in 64-bit mode, we need to
+   deviate from POSIX.  */
+#if __WORDSIZE == 64
+# define __SI_BAND_TYPE int
+#endif
 
 #define __SI_SIGFAULT_ADDL \
   int _si_trapno;
index 715af3df7b14857f760f02a46a27d59a1d4f0c2e..218c246f161256d8a7eb8a75bc0faa3e8bca8597 100644 (file)
@@ -7,3 +7,8 @@ LD += -melf64_sparc
 ifeq ($(subdir),stdlib)
 sysdep_routines += __start_context
 endif
+
+ifeq ($(subdir),conform)
+# For bug 23821 (incorrect type of si_band).
+conformtest-xfail-conds += sparc64-linux
+endif