Hi all,

GCC 9 introduced a new warning: address-of-packed-member. It warns when
a pointer points to a member of a packed struct, leading to a build
failure in Xen (cross compiling Xen on Arm with GCC 9.2):

  556 trace.c: In function '__trace_hypercall':
  557 trace.c:826:19: error: taking address of packed member of 'struct 
<anonymous>' may result in an unaligned pointer value
[-Werror=address-of-packed-member]
  558   826 |     uint32_t *a = d.args;

Looking at the code, I cannot see anything wrong with what we are doing.
At least on Arm, it looks OK? Anything I am missing?

If you can spot anything wrong with the Xen code, do let me know.
Otherwise, I am thinking of disabling the warning:


diff --git a/xen/Rules.mk b/xen/Rules.mk
index 5337e20..8d5c77c 100644
--- a/xen/Rules.mk
+++ b/xen/Rules.mk
@@ -86,6 +86,9 @@ CFLAGS += $(CFLAGS-y)
 # allow extra CFLAGS externally via EXTRA_CFLAGS_XEN_CORE
 CFLAGS += $(EXTRA_CFLAGS_XEN_CORE)
 
+# Disable GCC 9 warning about pointers to members of a packed struct
+CFLAGS += -Wno-address-of-packed-member
+
 # Most CFLAGS are safe for assembly files:
 #  -std=gnu{89,99} gets confused by #-prefixed end-of-line comments
 #  -flto makes no sense and annoys clang


Cheers,

Stefano

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to