mirror of
https://github.com/checkpoint-restore/criu
synced 2025-08-30 05:48:05 +00:00
compel: Explicitely align all containers of i387_fxsave_struct
As it's aligned to 16, all structures that contain it should be also aligned to 16. In the kernel there is no such align as there two separate definitions of i387_fxsave_struct: one for ia32 and another for x86_64. Fixes newly introduced align warning in gcc-8.1: In file included from compel/include/uapi/compel/asm/sigframe.h:7, from compel/plugins/std/infect.c:13: compel/include/uapi/compel/asm/fpu.h:89:1: error: alignment 1 of 'struct xsave_struct_ia32' is less than 16 [-Werror=packed-not-aligned] } __packed; ^ It doesn't change the current align of the struct, as containing structures are __packed and it aligned already *by fact*. It only affects the function users of the struct's local variables: now they lay aligned on a stack. Signed-off-by: Dmitry Safonov <dima@arista.com>
This commit is contained in:
parent
925451c12b
commit
4af0bb721d
@ -8,6 +8,7 @@
|
||||
#include <compel/common/compiler.h>
|
||||
|
||||
#define FP_MIN_ALIGN_BYTES 64
|
||||
#define FXSAVE_ALIGN_BYTES 16
|
||||
|
||||
#define FP_XSTATE_MAGIC1 0x46505853U
|
||||
#define FP_XSTATE_MAGIC2 0x46505845U
|
||||
@ -61,7 +62,7 @@ struct i387_fxsave_struct {
|
||||
uint32_t sw_reserved[12];
|
||||
};
|
||||
|
||||
} __aligned(16);
|
||||
} __aligned(FXSAVE_ALIGN_BYTES);
|
||||
|
||||
struct xsave_hdr_struct {
|
||||
uint64_t xstate_bv;
|
||||
@ -86,7 +87,7 @@ struct xsave_struct_ia32 {
|
||||
struct i387_fxsave_struct i387;
|
||||
struct xsave_hdr_struct xsave_hdr;
|
||||
struct ymmh_struct ymmh;
|
||||
} __packed;
|
||||
} __aligned(FXSAVE_ALIGN_BYTES) __packed;
|
||||
|
||||
typedef struct {
|
||||
/*
|
||||
@ -123,8 +124,8 @@ typedef struct {
|
||||
union {
|
||||
struct xsave_struct_ia32 xsave;
|
||||
uint8_t __pad[sizeof(struct xsave_struct) + FP_XSTATE_MAGIC2_SIZE];
|
||||
} __packed;
|
||||
} __packed fpu_state_ia32_t;
|
||||
} __aligned(FXSAVE_ALIGN_BYTES) __packed;
|
||||
} __aligned(FXSAVE_ALIGN_BYTES) __packed fpu_state_ia32_t;
|
||||
|
||||
/*
|
||||
* This one is used in restorer.
|
||||
|
Loading…
x
Reference in New Issue
Block a user