about summary refs log tree commit diff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2013-01-10 08:38:48 -0800
committerH.J. Lu <hjl.tools@gmail.com>2013-01-10 08:38:48 -0800
commit1a20cb20ff0201815691ccd3249d139a7cbfbfa8 (patch)
tree5de7f34fd3c774a3bf8d221e6d725a7f380cc145
parent176f2fe0a1c2aeb7551eeddf651b2b32eb456137 (diff)
downloadglibc-1a20cb20ff0201815691ccd3249d139a7cbfbfa8.tar.gz
glibc-1a20cb20ff0201815691ccd3249d139a7cbfbfa8.tar.xz
glibc-1a20cb20ff0201815691ccd3249d139a7cbfbfa8.zip
Correct _XXX_ILP32_OFFBIG for x32
-rw-r--r--ChangeLog11
-rw-r--r--NEWS2
-rw-r--r--sysdeps/unix/sysv/linux/x86/bits/environments.h25
3 files changed, 29 insertions, 9 deletions
diff --git a/ChangeLog b/ChangeLog
index 1e8a85c1d1..e9a7cb7007 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2013-01-10  H.J. Lu  <hongjiu.lu@intel.com>
+
+	[BZ #14200]
+	* sysdeps/unix/sysv/linux/x86/bits/environments.h
+	(_POSIX_V7_ILP32_OFF32): Defined as 1 only if __x86_64__ isn't
+	defined.
+	(_POSIX_V6_ILP32_OFF32): Likewise.
+	(_XBS5_ILP32_OFF32): Likewise.
+	(__ILP32_OFFBIG_CFLAGS): Defined as "-mx32" for x32.
+	(__ILP32_OFFBIG_LDFLAGS): Likewise.
+
 2013-01-10  Siddhesh Poyarekar  <siddhesh@redhat.com>
 
 	* sysdeps/ieee754/dbl-64/mpexp.c: Fix formatting.
diff --git a/NEWS b/NEWS
index 430c5d9d1e..1cdc37a215 100644
--- a/NEWS
+++ b/NEWS
@@ -9,7 +9,7 @@ Version 2.18
 
 * The following bugs are resolved with this release:
 
-  13951, 14317, 14964, 14981, 14982, 14985, 14994, 14996, 15003.
+  13951, 14200, 14317, 14964, 14981, 14982, 14985, 14994, 14996, 15003.
 
 
 Version 2.17
diff --git a/sysdeps/unix/sysv/linux/x86/bits/environments.h b/sysdeps/unix/sysv/linux/x86/bits/environments.h
index 0fe1e3f5fd..27b37b30e7 100644
--- a/sysdeps/unix/sysv/linux/x86/bits/environments.h
+++ b/sysdeps/unix/sysv/linux/x86/bits/environments.h
@@ -64,15 +64,19 @@
 
 #else /* __WORDSIZE == 32 */
 
-/* By default we have 32-bit wide `int', `long int', pointers and `off_t'
-   and all platforms support LFS.  */
-# define _POSIX_V7_ILP32_OFF32	1
+/* We have 32-bit wide `int', `long int' and pointers and all platforms
+   support LFS.  -mx32 has 64-bit wide `off_t'.  */
 # define _POSIX_V7_ILP32_OFFBIG	1
-# define _POSIX_V6_ILP32_OFF32	1
-# define _POSIX_V6_ILP32_OFFBIG	1
-# define _XBS5_ILP32_OFF32	1
+# define _POSIX_V6_ILP32_OFFBIG 1
 # define _XBS5_ILP32_OFFBIG	1
 
+# ifndef __x86_64__
+/* -m32 has 32-bit wide `off_t'.  */
+#  define _POSIX_V7_ILP32_OFF32	1
+#  define _POSIX_V6_ILP32_OFF32	1
+#  define _XBS5_ILP32_OFF32	1
+# endif
+
 /* We optionally provide an environment with the above size but an 64-bit
    side `off_t'.  Therefore we don't define _POSIX_V7_ILP32_OFFBIG.  */
 
@@ -89,8 +93,13 @@
 #endif /* __WORDSIZE == 32 */
 
 #define __ILP32_OFF32_CFLAGS	"-m32"
-#define __ILP32_OFFBIG_CFLAGS	"-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
 #define __ILP32_OFF32_LDFLAGS	"-m32"
-#define __ILP32_OFFBIG_LDFLAGS	"-m32"
+#if defined __x86_64__ && defined __ILP32__
+# define __ILP32_OFFBIG_CFLAGS	"-mx32"
+# define __ILP32_OFFBIG_LDFLAGS	"-mx32"
+#else
+# define __ILP32_OFFBIG_CFLAGS	"-m32 -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
+# define __ILP32_OFFBIG_LDFLAGS	"-m32"
+#endif
 #define __LP64_OFF64_CFLAGS	"-m64"
 #define __LP64_OFF64_LDFLAGS	"-m64"