diff mbox series

RFC disable GCC 9 -Waddress-of-packed-member

Message ID alpine.DEB.2.21.1911271437420.27669@sstabellini-ThinkPad-T480s (mailing list archive)
State New, archived
Headers show
Series RFC disable GCC 9 -Waddress-of-packed-member | expand

Commit Message

Stefano Stabellini Nov. 27, 2019, 10:44 p.m. UTC
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:




Cheers,

Stefano

Comments

Andrew Cooper Nov. 27, 2019, 10:48 p.m. UTC | #1
On 27/11/2019 22:44, Stefano Stabellini wrote:
> 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?

c/s 3fd3b266d4 at a guess.

~Andrew
Stefano Stabellini Nov. 27, 2019, 10:50 p.m. UTC | #2
On Wed, 27 Nov 2019, Andrew Cooper wrote:
> On 27/11/2019 22:44, Stefano Stabellini wrote:
> > 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?
> 
> c/s 3fd3b266d4 at a guess.

Thank you! I missed it :-/
diff mbox series

Patch

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