liberasurecode icon indicating copy to clipboard operation
liberasurecode copied to clipboard

Build failure caused by address-of-packed-member with GCC9

Open shinnya opened this issue 5 years ago • 1 comments

Description

cargo build generates the following error:

+ patch -p1
+ make install
erasurecode_helpers.c: In function 'get_chksum':
erasurecode_helpers.c:499:25: error: taking address of packed member of 'struct fragment_metadata' may result in an unaligned pointer value [-Werror=address-of-packed-member]
  499 |     return (uint32_t *) header->meta.chksum;
      |                         ^~~~~~
erasurecode_helpers.c: In function 'get_metadata_chksum':
erasurecode_helpers.c:530:12: error: taking address of packed member of 'struct fragment_header_s' may result in an unaligned pointer value [-Werror=address-of-packed-member]
  530 |     return (uint32_t *) &header->metadata_chksum;
      |            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
make[2]: *** [Makefile:713: liberasurecode_la-erasurecode_helpers.lo] Error 1

Since GCC9, GCC reports warnings about taking the address of a packed member. See https://reviews.freebsd.org/D9069?id=23667.

Environment

GCC9 on Arch Linux

Solution

Add -Wno-error=address-of-packed-member to $CFLAGS when built with gcc9 at install_deps.sh.

shinnya avatar Jul 07 '19 01:07 shinnya

It seems that this issue has been resolve already on upstream. See https://github.com/openstack/liberasurecode/commit/3564b711b4e543dc361444159ff9f7fb331eaad6.

shinnya avatar Jul 07 '19 01:07 shinnya