Module Name:    src
Committed By:   rin
Date:           Sat Mar 16 11:50:48 UTC 2019

Modified Files:
        src/sys/arch/amd64/include: param.h

Log Message:
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.


To generate a diff of this commit:
cvs rdiff -u -r1.29 -r1.30 src/sys/arch/amd64/include/param.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/arch/amd64/include/param.h
diff -u src/sys/arch/amd64/include/param.h:1.29 src/sys/arch/amd64/include/param.h:1.30
--- src/sys/arch/amd64/include/param.h:1.29	Mon Feb 11 14:59:32 2019
+++ src/sys/arch/amd64/include/param.h	Sat Mar 16 11:50:48 2019
@@ -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)
 

Reply via email to