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)