[Bug c/100771] New: Types differ between i386-elf and x86_64-elf -m32
pmenzel+gcc at molgen dot mpg.de
gcc-bugzilla@gcc.gnu.org
Wed May 26 14:54:42 GMT 2021
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100771
Bug ID: 100771
Summary: Types differ between i386-elf and x86_64-elf -m32
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c
Assignee: unassigned at gcc dot gnu.org
Reporter: pmenzel+gcc at molgen dot mpg.de
Target Milestone: ---
coreboot still builds 32-bit objects(?), and passes `-m32` for “64-bit
compilers”. Doing that, sometimes there are type differences, which is
unexpected.
For GCC 8.3.0:
```
$ diff -u <(:|/dev/shm/coreboot/util/crossgcc/xgcc/bin/i386-elf-gcc -E -dM
-|sort) <(:|/dev/shm/coreboot/util/crossgcc/xgcc/bin/x86_64-elf-gcc -m32 -E -dM
-|sort)
--- /dev/fd/63 2021-05-26 16:51:51.948000000 +0200
+++ /dev/fd/62 2021-05-26 16:51:51.948000000 +0200
@@ -132,18 +132,23 @@
#define __FLT_MIN_EXP__ (-125)
#define __FLT_NORM_MAX__ 3.40282346638528859811704183484516925e+38F
#define __FLT_RADIX__ 2
+#define __FXSR__ 1
#define __GCC_ASM_FLAG_OUTPUTS__ 1
-#define __GCC_ATOMIC_BOOL_LOCK_FREE 1
-#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 1
-#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 1
-#define __GCC_ATOMIC_CHAR_LOCK_FREE 1
-#define __GCC_ATOMIC_INT_LOCK_FREE 1
-#define __GCC_ATOMIC_LLONG_LOCK_FREE 1
-#define __GCC_ATOMIC_LONG_LOCK_FREE 1
-#define __GCC_ATOMIC_POINTER_LOCK_FREE 1
-#define __GCC_ATOMIC_SHORT_LOCK_FREE 1
+#define __GCC_ATOMIC_BOOL_LOCK_FREE 2
+#define __GCC_ATOMIC_CHAR16_T_LOCK_FREE 2
+#define __GCC_ATOMIC_CHAR32_T_LOCK_FREE 2
+#define __GCC_ATOMIC_CHAR_LOCK_FREE 2
+#define __GCC_ATOMIC_INT_LOCK_FREE 2
+#define __GCC_ATOMIC_LLONG_LOCK_FREE 2
+#define __GCC_ATOMIC_LONG_LOCK_FREE 2
+#define __GCC_ATOMIC_POINTER_LOCK_FREE 2
+#define __GCC_ATOMIC_SHORT_LOCK_FREE 2
#define __GCC_ATOMIC_TEST_AND_SET_TRUEVAL 1
-#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 1
+#define __GCC_ATOMIC_WCHAR_T_LOCK_FREE 2
+#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_1 1
+#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_2 1
+#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_4 1
+#define __GCC_HAVE_SYNC_COMPARE_AND_SWAP_8 1
#define __GCC_IEC_559 2
#define __GCC_IEC_559_COMPLEX 2
#define __GNUC__ 11
@@ -200,10 +205,12 @@
#define __INTMAX_MAX__ 0x7fffffffffffffffLL
#define __INTMAX_TYPE__ long long int
#define __INTMAX_WIDTH__ 64
-#define __INTPTR_MAX__ 0x7fffffffL
-#define __INTPTR_TYPE__ long int
+#define __INTPTR_MAX__ 0x7fffffff
+#define __INTPTR_TYPE__ int
#define __INTPTR_WIDTH__ 32
#define __INT_WIDTH__ 32
+#define __k8 1
+#define __k8__ 1
#define __LAHF_SAHF__ 1
#define __LDBL_DECIMAL_DIG__ 21
#define __LDBL_DENORM_MIN__ 3.64519953188247460252840593361941982e-4951L
@@ -225,13 +232,14 @@
#define __LONG_LONG_WIDTH__ 64
#define __LONG_MAX__ 0x7fffffffL
#define __LONG_WIDTH__ 32
+#define __MMX__ 1
#define __NO_INLINE__ 1
#define __ORDER_BIG_ENDIAN__ 4321
#define __ORDER_LITTLE_ENDIAN__ 1234
#define __ORDER_PDP_ENDIAN__ 3412
#define __PRAGMA_REDEFINE_EXTNAME 1
-#define __PTRDIFF_MAX__ 0x7fffffffL
-#define __PTRDIFF_TYPE__ long int
+#define __PTRDIFF_MAX__ 0x7fffffff
+#define __PTRDIFF_TYPE__ int
#define __PTRDIFF_WIDTH__ 32
#define __REGISTER_PREFIX__
#define __SCHAR_MAX__ 0x7f
@@ -244,7 +252,7 @@
#define __SIG_ATOMIC_MIN__ (-__SIG_ATOMIC_MAX__ - 1)
#define __SIG_ATOMIC_TYPE__ int
#define __SIG_ATOMIC_WIDTH__ 32
-#define __SIZE_MAX__ 0xffffffffUL
+#define __SIZE_MAX__ 0xffffffffU
#define __SIZEOF_DOUBLE__ 8
#define __SIZEOF_FLOAT128__ 16
#define __SIZEOF_FLOAT__ 4
@@ -259,14 +267,15 @@
#define __SIZEOF_SIZE_T__ 4
#define __SIZEOF_WCHAR_T__ 4
#define __SIZEOF_WINT_T__ 4
-#define __SIZE_TYPE__ long unsigned int
+#define __SIZE_TYPE__ unsigned int
#define __SIZE_WIDTH__ 32
+#define __SSE__ 1
+#define __SSE2__ 1
#define __STDC__ 1
#define __STDC_HOSTED__ 1
#define __STDC_UTF_16__ 1
#define __STDC_UTF_32__ 1
#define __STDC_VERSION__ 201710L
-#define __tune_i386__ 1
#define __UINT16_C(c) c
#define __UINT16_MAX__ 0xffff
#define __UINT16_TYPE__ short unsigned int
@@ -298,8 +307,8 @@
#define __UINTMAX_C(c) c ## ULL
#define __UINTMAX_MAX__ 0xffffffffffffffffULL
#define __UINTMAX_TYPE__ long long unsigned int
-#define __UINTPTR_MAX__ 0xffffffffUL
-#define __UINTPTR_TYPE__ long unsigned int
+#define __UINTPTR_MAX__ 0xffffffffU
+#define __UINTPTR_TYPE__ unsigned int
#define __USER_LABEL_PREFIX__
#define __VERSION__ "11.1.0"
#define __WCHAR_MAX__ 0x7fffffff
```
More information about the Gcc-bugs
mailing list