NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: port-amd64/54052: bump STACK_ALIGNBYTES for COMPAT_LINUX



On 2019/03/12 5:15, Joerg Sonnenberger wrote:
On Mon, Mar 11, 2019 at 05:50:00AM +0000, rokuyama.rk%gmail.com@localhost wrote:
Fix:
Index: sys/arch/amd64/include/param.h
===================================================================
RCS file: /home/netbsd/src/sys/arch/amd64/include/param.h,v
retrieving revision 1.29
diff -p -u -r1.29 param.h
--- sys/arch/amd64/include/param.h	11 Feb 2019 14:59:32 -0000	1.29
+++ sys/arch/amd64/include/param.h	10 Mar 2019 13:12:11 -0000
@@ -23,6 +23,8 @@
#define ALIGNED_POINTER(p,t) 1 +#define STACK_ALIGNBYTES (16 - 1) /* COMPAT_LINUX */
+
  #define ALIGNBYTES32		(sizeof(int) - 1)
  #define ALIGN32(p)		(((u_long)(p) + ALIGNBYTES32) &~ALIGNBYTES32)

I'm puzzled by this patch. Stack alignment should already be 16 Bytes on
AMD64.

Since we don't currently define STACK_ALIGNBYTES for amd64,
it falls back to __ALIGNBYTES = (8 - 1):

src/sys/sys/param.h
https://nxr.netbsd.org/xref/src/sys/sys/param.h#227
...
   227  #ifndef STACK_ALIGNBYTES
   228  #define STACK_ALIGNBYTES        __ALIGNBYTES
   229  #endif
...

src/sys/arch/amd64/include/cdefs.h
https://nxr.netbsd.org/xref/src/sys/arch/amd64/include/cdefs.h#6
...
     6  #define __ALIGNBYTES            (sizeof(long) - 1)
...

Do you mean this violates x86_64 System V ABI?

Thanks,
rin


Home | Main Index | Thread Index | Old Index