From 7c5e34d7f1b8f8f5acd94c2b885ae13b85414dcd Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Thu, 25 Oct 2018 11:43:57 +0200 Subject: conform: XFAIL siginfo_t si_band test on sparc64 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). --- sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h | 7 ++++++- sysdeps/unix/sysv/linux/sparc/sparc64/Makefile | 5 +++++ 2 files changed, 11 insertions(+), 1 deletion(-) (limited to 'sysdeps/unix/sysv/linux/sparc') diff --git a/sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h b/sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h index 9f79715..4dd3523 100644 --- a/sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h +++ b/sysdeps/unix/sysv/linux/sparc/bits/siginfo-arch.h @@ -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; diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile b/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile index 715af3d..218c246 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile @@ -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 -- cgit v1.1