> From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Ferruh Yigit
> Sent: Monday, 17 April 2017 16.36
> 
> clang 4 gives "taking address of packed member may result in an
> unaligned pointer value" warnings in a few locations [1].
> 
> Disabled "-Waddress-of-packed-member" warning for clang >= 4
> 
> [1] build errors:
> .../lib/librte_eal/common/eal_common_memzone.c:275:25:
> error: taking address of packed member 'mlock' of class or structure
> 'rte_mem_config' may result in an unaligned pointer value
> [-Werror,-Waddress-of-packed-member]
>         rte_rwlock_write_lock(&mcfg->mlock);
>                                ^~~~~~~~~~~
> 
> .../lib/librte_ip_frag/rte_ipv4_reassembly.c:139:31:
> error: taking address of packed member 'src_addr' of class or structure
> 'ipv4_hdr' may result in an unaligned pointer value
> [-Werror,-Waddress-of-packed-member]
>         psd = (unaligned_uint64_t *)&ip_hdr->src_addr;
>                                      ^~~~~~~~~~~~~~~~
> 
> .../lib/librte_vhost/vhost_user.c:1037:34:
> error: taking address of packed member 'payload' of class or structure
> 'VhostUserMsg' may result in an unaligned pointer value
> [-Werror,-Waddress-of-packed-member]
>       vhost_user_set_vring_num(dev, &msg.payload.state);
>                                      ^~~~~~~~~~~~~~~~~
> 
> Signed-off-by: Ferruh Yigit <ferruh.yi...@intel.com>
> ---
>  mk/toolchain/clang/rte.vars.mk | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/mk/toolchain/clang/rte.vars.mk
> b/mk/toolchain/clang/rte.vars.mk
> index 7749b99..af34c10 100644
> --- a/mk/toolchain/clang/rte.vars.mk
> +++ b/mk/toolchain/clang/rte.vars.mk
> @@ -79,5 +79,10 @@ include
> $(RTE_SDK)/mk/toolchain/$(RTE_TOOLCHAIN)/rte.toolchain-compat.mk
>  # workaround clang bug with warning "missing field initializer" for "=
> {0}"
>  WERROR_FLAGS += -Wno-missing-field-initializers
> 
> +# disable packed member unalign warnings
> +ifeq ($(shell test $(CLANG_MAJOR_VERSION) -ge 4 && echo 1), 1)
> +WERROR_FLAGS += -Wno-address-of-packed-member
> +endif
> +
>  export CC AS AR LD OBJCOPY OBJDUMP STRIP READELF
>  export TOOLCHAIN_CFLAGS TOOLCHAIN_LDFLAGS TOOLCHAIN_ASFLAGS
> --
> 2.9.3
> 

Revisiting an old patch...

Maybe the code causing the warnings should have been fixed instead of disabling 
the compiler warning?

We would probably handle this differently today... I wonder how many warnings 
it spews out with the warning enabled?

-Morten

Reply via email to