Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/amd64/include Bump STACK_ALIGNBYTES to (16 - 1) to ...
details: https://anonhg.NetBSD.org/src/rev/965460f0aaf8
branches: trunk
changeset: 997615:965460f0aaf8
user: rin <rin%NetBSD.org@localhost>
date: Sat Mar 16 11:50:48 2019 +0000
description:
Bump STACK_ALIGNBYTES to (16 - 1) to satisfy requirement by AMD64
System V ABI in kernel level. This is because
(1) for LLDB, we want to bypass libc/csu (and therefore manual stack
alignment in _start), and
(2) rtld in glibc >= 2.23 for Linux/x86_64 requires it.
Fix SEGV for Linux/x86_64 binaries with glibc >= 2.23, reported as
PR port-amd64/54052.
diffstat:
sys/arch/amd64/include/param.h | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletions(-)
diffs (23 lines):
diff -r 42362fc3132b -r 965460f0aaf8 sys/arch/amd64/include/param.h
--- a/sys/arch/amd64/include/param.h Sat Mar 16 11:43:40 2019 +0000
+++ b/sys/arch/amd64/include/param.h Sat Mar 16 11:50:48 2019 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: param.h,v 1.29 2019/02/11 14:59:32 cherry Exp $ */
+/* $NetBSD: param.h,v 1.30 2019/03/16 11:50:48 rin Exp $ */
#ifdef __x86_64__
@@ -23,6 +23,13 @@
#define ALIGNED_POINTER(p,t) 1
+/*
+ * Align stack as required by AMD64 System V ABI. This is because
+ * (1) we want to bypass libc/csu in LLDB, and
+ * (2) rtld in glibc >= 2.23 for Linux/x86_64 requires it.
+ */
+#define STACK_ALIGNBYTES (16 - 1)
+
#define ALIGNBYTES32 (sizeof(int) - 1)
#define ALIGN32(p) (((u_long)(p) + ALIGNBYTES32) &~ALIGNBYTES32)
Home |
Main Index |
Thread Index |
Old Index