about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2015-11-17 18:19:06 -0200
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2016-04-11 09:15:11 -0300
commit482b2f87a88d30fd5bc0277e6a3f75efeb1aff7f (patch)
tree98eb06f6ab835a2999b810ce11c31d14e8a5df44
parentd29fb41f4431ca35ea360498ef9d37558ce90d76 (diff)
downloadglibc-482b2f87a88d30fd5bc0277e6a3f75efeb1aff7f.tar.gz
glibc-482b2f87a88d30fd5bc0277e6a3f75efeb1aff7f.tar.xz
glibc-482b2f87a88d30fd5bc0277e6a3f75efeb1aff7f.zip
Define __ASSUME_ALIGNED_REGISTER_PAIRS for missing ports
This patch defines __ASSUME_ALIGNED_REGISTER_PAIRS for the missing
ports that require 64-bit value (e.g., long long) to be aligned to
an even register pair in argument passing.

No code change is expected, tested with builds for powerpc32,
mips-o32, and armhf.

	* sysdeps/unix/sysv/linux/arm/kernel-features.h
	(__ASSUME_ALIGNED_REGISTER_PAIRS): Define.
	* sysdeps/unix/sysv/linux/mips/kernel-features.h
	[_MIPS_SIM == _ABIO32] (__ASSUME_ALIGNED_REGISTER_PAIRS): Likewise.
	* sysdeps/unix/sysv/linux/powerpc/kernel-features.h
	[!__powerpc64__] (__ASSUME_ALIGNED_REGISTER_PAIRS): Likewise.
-rw-r--r--ChangeLog9
-rw-r--r--sysdeps/unix/sysv/linux/arm/kernel-features.h4
-rw-r--r--sysdeps/unix/sysv/linux/mips/kernel-features.h6
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/kernel-features.h6
4 files changed, 25 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index c8df2c239b..c0ff30780d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2016-04-11  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
+
+	* sysdeps/unix/sysv/linux/arm/kernel-features.h
+	(__ASSUME_ALIGNED_REGISTER_PAIRS): Define.
+	* sysdeps/unix/sysv/linux/mips/kernel-features.h
+	[_MIPS_SIM == _ABIO32] (__ASSUME_ALIGNED_REGISTER_PAIRS): Likewise.
+	* sysdeps/unix/sysv/linux/powerpc/kernel-features.h
+	[!__powerpc64__] (__ASSUME_ALIGNED_REGISTER_PAIRS): Likewise.
+
 2016-04-11  Florian Weimer  <fweimer@redhat.com>
 
 	[BZ #19865]
diff --git a/sysdeps/unix/sysv/linux/arm/kernel-features.h b/sysdeps/unix/sysv/linux/arm/kernel-features.h
index c04c4e2a02..0a9ed772e5 100644
--- a/sysdeps/unix/sysv/linux/arm/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/arm/kernel-features.h
@@ -27,3 +27,7 @@
 # undef __ASSUME_REQUEUE_PI
 # undef __ASSUME_SET_ROBUST_LIST
 #endif
+
+/* Define this if your 32-bit syscall API requires 64-bit register
+   pairs to start with an even-number register.  */
+#define __ASSUME_ALIGNED_REGISTER_PAIRS	1
diff --git a/sysdeps/unix/sysv/linux/mips/kernel-features.h b/sysdeps/unix/sysv/linux/mips/kernel-features.h
index 7f8c98a4da..ef4b5204ec 100644
--- a/sysdeps/unix/sysv/linux/mips/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/mips/kernel-features.h
@@ -28,3 +28,9 @@
 # undef __ASSUME_REQUEUE_PI
 # undef __ASSUME_SET_ROBUST_LIST
 #endif
+
+/* Define this if your 32-bit syscall API requires 64-bit register
+   pairs to start with an even-number register.  */
+#if _MIPS_SIM == _ABIO32
+# define __ASSUME_ALIGNED_REGISTER_PAIRS	1
+#endif
diff --git a/sysdeps/unix/sysv/linux/powerpc/kernel-features.h b/sysdeps/unix/sysv/linux/powerpc/kernel-features.h
index 171c030b03..38bb0bc3f9 100644
--- a/sysdeps/unix/sysv/linux/powerpc/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/powerpc/kernel-features.h
@@ -42,4 +42,10 @@
 /* The sendmmsg syscall was added for PowerPC in 3.0.  */
 #define __ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL	1
 
+/* Define this if your 32-bit syscall API requires 64-bit register
+   pairs to start with an even-number register.  */
+#ifndef __powerpc64__
+# define __ASSUME_ALIGNED_REGISTER_PAIRS	1
+#endif
+
 #include_next <kernel-features.h>