summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2015-12-01 10:25:44 -0800
committerH.J. Lu <hjl.tools@gmail.com>2015-12-01 10:25:44 -0800
commit7635a88d320c665defd44085d3b9031d673fe1ee (patch)
treefa086fcc5a26969adc5752edce389d025a60f8c2
parentc960ded0d552ee20ea4688a5442dd75440355886 (diff)
downloadglibc-7635a88d320c665defd44085d3b9031d673fe1ee.tar.gz
Add __CPU_MASK_TYPE for __cpu_mask
Since x86-64 and x32 use the same set of sched_XXX system call interface: [hjl@gnu-6 linux-stable]$ grep sched_ arch/x86/entry/syscalls/syscall_64.tbl 24 common sched_yield sys_sched_yield 142 common sched_setparam sys_sched_setparam 143 common sched_getparam sys_sched_getparam 144 common sched_setscheduler sys_sched_setscheduler 145 common sched_getscheduler sys_sched_getscheduler 146 common sched_get_priority_max sys_sched_get_priority_max 147 common sched_get_priority_min sys_sched_get_priority_min 148 common sched_rr_get_interval sys_sched_rr_get_interval 203 common sched_setaffinity sys_sched_setaffinity 204 common sched_getaffinity sys_sched_getaffinity 314 common sched_setattr sys_sched_setattr 315 common sched_getattr sys_sched_getattr [hjl@gnu-6 linux-stable]$ __cpu_mask should be unsigned long long, instead of unsigned long, for x32. This patch adds __CPU_MASK_TYPE so that each architecture can define the proper type for __cpu_mask. [BZ #19313] * bits/typesizes.h (__CPU_MASK_TYPE): New. * sysdeps/mach/hurd/bits/typesizes.h (__CPU_MASK_TYPE): Likewise. * sysdeps/nacl/bits/typesizes.h (__CPU_MASK_TYPE): Likewise. * sysdeps/unix/sysv/linux/alpha/bits/typesizes.h (__CPU_MASK_TYPE): Likewise. * sysdeps/unix/sysv/linux/generic/bits/typesizes.h (__CPU_MASK_TYPE): Likewise. * sysdeps/unix/sysv/linux/s390/bits/typesizes.h (__CPU_MASK_TYPE): Likewise. * sysdeps/unix/sysv/linux/sparc/bits/typesizes.h (__CPU_MASK_TYPE): Likewise. * sysdeps/unix/sysv/linux/x86/bits/typesizes.h (__CPU_MASK_TYPE): * sysdeps/unix/sysv/linux/bits/sched.h (__cpu_mask): Replace unsigned long int with __CPU_MASK_TYPE.
-rw-r--r--ChangeLog18
-rw-r--r--bits/typesizes.h1
-rw-r--r--sysdeps/mach/hurd/bits/typesizes.h1
-rw-r--r--sysdeps/nacl/bits/typesizes.h1
-rw-r--r--sysdeps/unix/sysv/linux/alpha/bits/typesizes.h1
-rw-r--r--sysdeps/unix/sysv/linux/bits/sched.h2
-rw-r--r--sysdeps/unix/sysv/linux/generic/bits/typesizes.h1
-rw-r--r--sysdeps/unix/sysv/linux/s390/bits/typesizes.h1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/bits/typesizes.h1
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/typesizes.h1
10 files changed, 27 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index e22496ee49..9da4f3c75b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2015-12-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ [BZ #19313]
+ * bits/typesizes.h (__CPU_MASK_TYPE): New.
+ * sysdeps/mach/hurd/bits/typesizes.h (__CPU_MASK_TYPE): Likewise.
+ * sysdeps/nacl/bits/typesizes.h (__CPU_MASK_TYPE): Likewise.
+ * sysdeps/unix/sysv/linux/alpha/bits/typesizes.h (__CPU_MASK_TYPE):
+ Likewise.
+ * sysdeps/unix/sysv/linux/generic/bits/typesizes.h (__CPU_MASK_TYPE):
+ Likewise.
+ * sysdeps/unix/sysv/linux/s390/bits/typesizes.h (__CPU_MASK_TYPE):
+ Likewise.
+ * sysdeps/unix/sysv/linux/sparc/bits/typesizes.h (__CPU_MASK_TYPE):
+ Likewise.
+ * sysdeps/unix/sysv/linux/x86/bits/typesizes.h (__CPU_MASK_TYPE):
+ * sysdeps/unix/sysv/linux/bits/sched.h (__cpu_mask): Replace
+ unsigned long int with __CPU_MASK_TYPE.
+
2015-12-01 Szabolcs Nagy <szabolcs.nagy@arm.com>
* sysdeps/aarch64/libm-test-ulps: Regenerated.
diff --git a/bits/typesizes.h b/bits/typesizes.h
index 0c1e39c6a0..ec5853d805 100644
--- a/bits/typesizes.h
+++ b/bits/typesizes.h
@@ -59,6 +59,7 @@
#define __SSIZE_T_TYPE __SWORD_TYPE
#define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE
#define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE
+#define __CPU_MASK_TYPE __ULONGWORD_TYPE
#ifdef __LP64__
/* Tell the libc code that off_t and off64_t are actually the same type
diff --git a/sysdeps/mach/hurd/bits/typesizes.h b/sysdeps/mach/hurd/bits/typesizes.h
index 970e64e8f6..948517ed37 100644
--- a/sysdeps/mach/hurd/bits/typesizes.h
+++ b/sysdeps/mach/hurd/bits/typesizes.h
@@ -59,6 +59,7 @@
#define __SSIZE_T_TYPE __SWORD_TYPE
#define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE
#define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE
+#define __CPU_MASK_TYPE __ULONGWORD_TYPE
/* Number of descriptors that can fit in an `fd_set'. */
#define __FD_SETSIZE 256
diff --git a/sysdeps/nacl/bits/typesizes.h b/sysdeps/nacl/bits/typesizes.h
index ed1b5dc7ab..572ff9fa91 100644
--- a/sysdeps/nacl/bits/typesizes.h
+++ b/sysdeps/nacl/bits/typesizes.h
@@ -59,6 +59,7 @@
#define __SSIZE_T_TYPE __SWORD_TYPE
#define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE
#define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE
+#define __CPU_MASK_TYPE __ULONGWORD_TYPE
/* All our foo64_t types match their foo_t counterparts. */
#define __OFF_T_MATCHES_OFF64_T 1
diff --git a/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h b/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h
index b40a2c2f0b..aa00287fdb 100644
--- a/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/alpha/bits/typesizes.h
@@ -58,6 +58,7 @@
#define __SSIZE_T_TYPE __SWORD_TYPE
#define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE
#define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE
+#define __CPU_MASK_TYPE __ULONGWORD_TYPE
#define __FSWORD_T_TYPE __S32_TYPE
/* Tell the libc code that off_t and off64_t are actually the same type
diff --git a/sysdeps/unix/sysv/linux/bits/sched.h b/sysdeps/unix/sysv/linux/bits/sched.h
index ae089df522..7bee1b6cc4 100644
--- a/sysdeps/unix/sysv/linux/bits/sched.h
+++ b/sysdeps/unix/sysv/linux/bits/sched.h
@@ -115,7 +115,7 @@ struct __sched_param
# define __NCPUBITS (8 * sizeof (__cpu_mask))
/* Type for array elements in 'cpu_set_t'. */
-typedef unsigned long int __cpu_mask;
+typedef __CPU_MASK_TYPE __cpu_mask;
/* Basic access functions. */
# define __CPUELT(cpu) ((cpu) / __NCPUBITS)
diff --git a/sysdeps/unix/sysv/linux/generic/bits/typesizes.h b/sysdeps/unix/sysv/linux/generic/bits/typesizes.h
index de98a39017..22d857ff5b 100644
--- a/sysdeps/unix/sysv/linux/generic/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/generic/bits/typesizes.h
@@ -60,6 +60,7 @@
#define __SSIZE_T_TYPE __SWORD_TYPE
#define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE
#define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE
+#define __CPU_MASK_TYPE __ULONGWORD_TYPE
#ifdef __LP64__
/* Tell the libc code that off_t and off64_t are actually the same type
diff --git a/sysdeps/unix/sysv/linux/s390/bits/typesizes.h b/sysdeps/unix/sysv/linux/s390/bits/typesizes.h
index 78d377c863..38af1204e9 100644
--- a/sysdeps/unix/sysv/linux/s390/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/s390/bits/typesizes.h
@@ -65,6 +65,7 @@
#endif
#define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE
#define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE
+#define __CPU_MASK_TYPE __ULONGWORD_TYPE
#ifdef __s390x__
/* Tell the libc code that off_t and off64_t are actually the same type
diff --git a/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h b/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
index 2167c28aeb..4b7cac6675 100644
--- a/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/sparc/bits/typesizes.h
@@ -59,6 +59,7 @@
#define __SSIZE_T_TYPE __SWORD_TYPE
#define __SYSCALL_SLONG_TYPE __SLONGWORD_TYPE
#define __SYSCALL_ULONG_TYPE __ULONGWORD_TYPE
+#define __CPU_MASK_TYPE __ULONGWORD_TYPE
#if defined __arch64__ || defined __sparcv9
/* Tell the libc code that off_t and off64_t are actually the same type
diff --git a/sysdeps/unix/sysv/linux/x86/bits/typesizes.h b/sysdeps/unix/sysv/linux/x86/bits/typesizes.h
index 8889bc0039..f89d9d27f7 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/typesizes.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/typesizes.h
@@ -71,6 +71,7 @@
#define __BLKSIZE_T_TYPE __SYSCALL_SLONG_TYPE
#define __FSID_T_TYPE struct { int __val[2]; }
#define __SSIZE_T_TYPE __SWORD_TYPE
+#define __CPU_MASK_TYPE __SYSCALL_ULONG_TYPE
#ifdef __x86_64__
/* Tell the libc code that off_t and off64_t are actually the same type