diff --git a/include/haproxy/bug.h b/include/haproxy/bug.h
index e6303fd..fbf1d48 100644
--- a/include/haproxy/bug.h
+++ b/include/haproxy/bug.h
@@ -245,12 +245,12 @@
 	const char *file;
 	int line;
 	int type;
-};
+} __attribute__((aligned(sizeof(void*))));
 
 #undef calloc
 #define calloc(x,y)  ({							\
 	size_t __x = (x); size_t __y = (y);				\
-	static struct mem_stats _ __attribute__((used,__section__("mem_stats"))) = { \
+	static struct mem_stats _ __attribute__((used,__section__("mem_stats"),__aligned__(sizeof(void*)))) = { \
 		.file = __FILE__, .line = __LINE__,			\
 		.type = MEM_STATS_TYPE_CALLOC,				\
 	};								\
@@ -267,7 +267,7 @@
 #undef __free
 #define __free(x)  ({							\
 	void *__x = (x);						\
-	static struct mem_stats _ __attribute__((used,__section__("mem_stats"))) = { \
+	static struct mem_stats _ __attribute__((used,__section__("mem_stats"),__aligned__(sizeof(void*)))) = { \
 		.file = __FILE__, .line = __LINE__,			\
 		.type = MEM_STATS_TYPE_FREE,				\
 	};								\
@@ -281,7 +281,7 @@
 #undef ha_free
 #define ha_free(x)  ({							\
 	typeof(x) __x = (x);						\
-	static struct mem_stats _ __attribute__((used,__section__("mem_stats"))) = { \
+	static struct mem_stats _ __attribute__((used,__section__("mem_stats"),__aligned__(sizeof(void*)))) = { \
 		.file = __FILE__, .line = __LINE__,			\
 		.type = MEM_STATS_TYPE_FREE,				\
 	};								\
@@ -299,7 +299,7 @@
 #undef malloc
 #define malloc(x)  ({							\
 	size_t __x = (x);						\
-	static struct mem_stats _ __attribute__((used,__section__("mem_stats"))) = { \
+	static struct mem_stats _ __attribute__((used,__section__("mem_stats"),__aligned__(sizeof(void*)))) = { \
 		.file = __FILE__, .line = __LINE__,			\
 		.type = MEM_STATS_TYPE_MALLOC,				\
 	};								\
@@ -313,7 +313,7 @@
 #undef realloc
 #define realloc(x,y)  ({						\
 	void *__x = (x); size_t __y = (y);				\
-	static struct mem_stats _ __attribute__((used,__section__("mem_stats"))) = { \
+	static struct mem_stats _ __attribute__((used,__section__("mem_stats"),__aligned__(sizeof(void*)))) = { \
 		.file = __FILE__, .line = __LINE__,			\
 		.type = MEM_STATS_TYPE_REALLOC,				\
 	};								\
@@ -327,7 +327,7 @@
 #undef strdup
 #define strdup(x)  ({							\
 	const char *__x = (x); size_t __y = strlen(__x); 		\
-	static struct mem_stats _ __attribute__((used,__section__("mem_stats"))) = { \
+	static struct mem_stats _ __attribute__((used,__section__("mem_stats"),__aligned__(sizeof(void*)))) = { \
 		.file = __FILE__, .line = __LINE__,			\
 		.type = MEM_STATS_TYPE_STRDUP,				\
 	};								\
diff --git a/include/haproxy/pool.h b/include/haproxy/pool.h
index 3640ad1..a818cc4 100644
--- a/include/haproxy/pool.h
+++ b/include/haproxy/pool.h
@@ -255,7 +255,7 @@
 #define pool_free(pool, ptr)  ({					\
 	struct pool_head *__pool = (pool);				\
 	typeof(ptr) __ptr = (ptr);					\
-	static struct mem_stats _ __attribute__((used,__section__("mem_stats"))) = { \
+	static struct mem_stats _ __attribute__((used,__section__("mem_stats"),__aligned__(sizeof(void*)))) = { \
 		.file = __FILE__, .line = __LINE__,			\
 		.type = MEM_STATS_TYPE_P_FREE,				\
 	};								\
@@ -271,7 +271,7 @@
 #define pool_alloc(pool)  ({						\
 	struct pool_head *__pool = (pool);				\
 	size_t __x = __pool->size;					\
-	static struct mem_stats _ __attribute__((used,__section__("mem_stats"))) = { \
+	static struct mem_stats _ __attribute__((used,__section__("mem_stats"),__aligned__(sizeof(void*)))) = { \
 		.file = __FILE__, .line = __LINE__,			\
 		.type = MEM_STATS_TYPE_P_ALLOC,				\
 	};								\
@@ -285,7 +285,7 @@
 #define pool_zalloc(pool)  ({						\
 	struct pool_head *__pool = (pool);				\
 	size_t __x = __pool->size;					\
-	static struct mem_stats _ __attribute__((used,__section__("mem_stats"))) = { \
+	static struct mem_stats _ __attribute__((used,__section__("mem_stats"),__aligned__(sizeof(void*)))) = { \
 		.file = __FILE__, .line = __LINE__,			\
 		.type = MEM_STATS_TYPE_P_ALLOC,				\
 	};								\
