Index: kernel/arch/abs32le/include/arch/fpu_context.h
===================================================================
--- kernel/arch/abs32le/include/arch/fpu_context.h	(revision 7c5320cc53df744a0d53d60a263d390f3fe84b5e)
+++ kernel/arch/abs32le/include/arch/fpu_context.h	(revision e994898da769c2fefc731de899af8f1370cd52f4)
@@ -36,6 +36,4 @@
 #define KERN_abs32le_FPU_CONTEXT_H_
 
-#define FPU_CONTEXT_ALIGN  16
-
 /*
  * On real hardware this stores the FPU registers
Index: kernel/arch/arm32/include/arch/fpu_context.h
===================================================================
--- kernel/arch/arm32/include/arch/fpu_context.h	(revision 7c5320cc53df744a0d53d60a263d390f3fe84b5e)
+++ kernel/arch/arm32/include/arch/fpu_context.h	(revision e994898da769c2fefc731de899af8f1370cd52f4)
@@ -40,11 +40,9 @@
 #include <stdint.h>
 
-#define FPU_CONTEXT_ALIGN    8
-
 /*
  * ARM Architecture reference manual, p B-1529.
  */
 typedef struct {
-	uint32_t fpexc;
+	_Alignas(8) uint32_t fpexc;
 	uint32_t fpscr;
 	uint32_t s[64];
Index: kernel/arch/arm64/include/arch/fpu_context.h
===================================================================
--- kernel/arch/arm64/include/arch/fpu_context.h	(revision 7c5320cc53df744a0d53d60a263d390f3fe84b5e)
+++ kernel/arch/arm64/include/arch/fpu_context.h	(revision e994898da769c2fefc731de899af8f1370cd52f4)
@@ -39,6 +39,4 @@
 #include <arch/fpu_context_struct.h>
 
-#define FPU_CONTEXT_ALIGN  16
-
 #endif
 
Index: kernel/arch/arm64/include/arch/fpu_context_struct.h
===================================================================
--- kernel/arch/arm64/include/arch/fpu_context_struct.h	(revision 7c5320cc53df744a0d53d60a263d390f3fe84b5e)
+++ kernel/arch/arm64/include/arch/fpu_context_struct.h	(revision e994898da769c2fefc731de899af8f1370cd52f4)
@@ -42,5 +42,5 @@
 /** ARM64 FPU context. */
 typedef struct fpu_context {
-	uint128_t vregs[32];
+	_Alignas(16) uint128_t vregs[32];
 	uint32_t fpcr;
 	uint32_t fpsr;
Index: kernel/arch/ia32/include/arch/fpu_context.h
===================================================================
--- kernel/arch/ia32/include/arch/fpu_context.h	(revision 7c5320cc53df744a0d53d60a263d390f3fe84b5e)
+++ kernel/arch/ia32/include/arch/fpu_context.h	(revision e994898da769c2fefc731de899af8f1370cd52f4)
@@ -38,8 +38,6 @@
 #include <stdint.h>
 
-#define FPU_CONTEXT_ALIGN  16
-
 typedef struct {
-	uint8_t fpu[512];  /* FXSAVE & FXRSTOR storage area */
+	_Alignas(16) uint8_t fpu[512];  /* FXSAVE & FXRSTOR storage area */
 } fpu_context_t;
 
Index: kernel/arch/ia64/include/arch/fpu_context.h
===================================================================
--- kernel/arch/ia64/include/arch/fpu_context.h	(revision 7c5320cc53df744a0d53d60a263d390f3fe84b5e)
+++ kernel/arch/ia64/include/arch/fpu_context.h	(revision e994898da769c2fefc731de899af8f1370cd52f4)
@@ -36,6 +36,4 @@
 #define KERN_ia64_FPU_CONTEXT_H_
 
-#define FPU_CONTEXT_ALIGN 16
-
 #include <_bits/int128_t.h>
 
@@ -43,5 +41,5 @@
 
 typedef struct {
-	uint128_t fr[FRS];
+	_Alignas(16) uint128_t fr[FRS];
 } fpu_context_t;
 
Index: kernel/arch/mips32/include/arch/fpu_context.h
===================================================================
--- kernel/arch/mips32/include/arch/fpu_context.h	(revision 7c5320cc53df744a0d53d60a263d390f3fe84b5e)
+++ kernel/arch/mips32/include/arch/fpu_context.h	(revision e994898da769c2fefc731de899af8f1370cd52f4)
@@ -39,6 +39,4 @@
 #include <arch/fpu_context_struct.h>
 
-#define FPU_CONTEXT_ALIGN    sizeof(sysarg_t)
-
 #endif
 
Index: kernel/arch/mips32/include/arch/fpu_context_struct.h
===================================================================
--- kernel/arch/mips32/include/arch/fpu_context_struct.h	(revision 7c5320cc53df744a0d53d60a263d390f3fe84b5e)
+++ kernel/arch/mips32/include/arch/fpu_context_struct.h	(revision e994898da769c2fefc731de899af8f1370cd52f4)
@@ -42,5 +42,5 @@
 
 typedef struct fpu_context {
-	sysarg_t dregs[32];
+	_Alignas(sizeof(sysarg_t)) sysarg_t dregs[32];
 	sysarg_t cregs[32];
 } fpu_context_t;
Index: kernel/arch/ppc32/include/arch/fpu_context.h
===================================================================
--- kernel/arch/ppc32/include/arch/fpu_context.h	(revision 7c5320cc53df744a0d53d60a263d390f3fe84b5e)
+++ kernel/arch/ppc32/include/arch/fpu_context.h	(revision e994898da769c2fefc731de899af8f1370cd52f4)
@@ -36,6 +36,4 @@
 #define KERN_ppc32_FPU_CONTEXT_H_
 
-#define FPU_CONTEXT_ALIGN	8
-
 #include <arch/fpu_context_struct.h>
 
Index: kernel/arch/ppc32/include/arch/fpu_context_struct.h
===================================================================
--- kernel/arch/ppc32/include/arch/fpu_context_struct.h	(revision 7c5320cc53df744a0d53d60a263d390f3fe84b5e)
+++ kernel/arch/ppc32/include/arch/fpu_context_struct.h	(revision e994898da769c2fefc731de899af8f1370cd52f4)
@@ -70,5 +70,5 @@
 
 typedef struct fpu_context {
-	uint64_t fr0;
+	_Alignas(8) uint64_t fr0;
 	uint64_t fr1;
 	uint64_t fr2;
Index: kernel/arch/sparc64/include/arch/fpu_context.h
===================================================================
--- kernel/arch/sparc64/include/arch/fpu_context.h	(revision 7c5320cc53df744a0d53d60a263d390f3fe84b5e)
+++ kernel/arch/sparc64/include/arch/fpu_context.h	(revision e994898da769c2fefc731de899af8f1370cd52f4)
@@ -38,9 +38,7 @@
 #include <stdint.h>
 
-#define FPU_CONTEXT_ALIGN	8
-
 typedef struct {
-	uint64_t	d[32];
-	uint64_t	fsr;
+	_Alignas(8) uint64_t d[32];
+	uint64_t fsr;
 } fpu_context_t;
 
