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