瀏覽代碼

sys/user.h: derive __WORDSIZE from __LONG_MAX

previously, only a few archs defined it here. this change makes the
presence consistent across all archs, and reduces the amount of header
duplication (and potential for future inconsistency) between archs.
Rich Felker 10 月之前
父節點
當前提交
7019fbe103
共有 5 個文件被更改,包括 9 次插入12 次删除
  1. 0 3
      arch/s390x/bits/user.h
  2. 0 3
      arch/sh/bits/user.h
  3. 0 3
      arch/x32/bits/user.h
  4. 0 3
      arch/x86_64/bits/user.h
  5. 9 0
      include/sys/user.h

+ 0 - 3
arch/s390x/bits/user.h

@@ -1,6 +1,3 @@
-#undef __WORDSIZE
-#define __WORDSIZE 64
-
 typedef union {
 	double d;
 	float f;

+ 0 - 3
arch/sh/bits/user.h

@@ -1,6 +1,3 @@
-#undef __WORDSIZE
-#define __WORDSIZE 32
-
 #define REG_REG0	 0
 #define REG_REG15	15
 #define REG_PC		16

+ 0 - 3
arch/x32/bits/user.h

@@ -1,6 +1,3 @@
-#undef __WORDSIZE
-#define __WORDSIZE 32
-
 typedef struct user_fpregs_struct {
 	uint16_t cwd, swd, ftw, fop;
 	uint64_t rip, rdp;

+ 0 - 3
arch/x86_64/bits/user.h

@@ -1,6 +1,3 @@
-#undef __WORDSIZE
-#define __WORDSIZE 64
-
 typedef struct user_fpregs_struct {
 	uint16_t cwd, swd, ftw, fop;
 	uint64_t rip, rdp;

+ 9 - 0
include/sys/user.h

@@ -8,6 +8,15 @@ extern "C" {
 #include <stdint.h>
 #include <unistd.h>
 
+#include <bits/alltype.h>
+
+#undef __WORDSIZE
+#if __LONG_MAX == 0x7fffffffL
+#define __WORDSIZE 32
+#else
+#define __WORDSIZE 64
+#endif
+
 #include <bits/user.h>
 
 #ifdef __cplusplus