summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorValentine Barshak <gvaxon@gmail.com>2019-07-22 10:47:50 +0100
committerwanchao-xu <wanchao.xu@samsung.com>2024-01-09 20:00:04 +0800
commitc9853ca4dc4f535e114b22c35f1b19649a963e82 (patch)
tree04575e3b04d2cc31e156b552367018325d6c67b5
parent134d6d41b4716944839e1d9c288607694707e578 (diff)
downloadqemu-arm-static-c9853ca4dc4f535e114b22c35f1b19649a963e82.tar.gz
qemu-arm-static-c9853ca4dc4f535e114b22c35f1b19649a963e82.tar.bz2
qemu-arm-static-c9853ca4dc4f535e114b22c35f1b19649a963e82.zip
Workaround compilation error with gcc 9.1
References: bsc#1121464 Compiling with gcc 9.1 generates lots of "taking address of packed member of ... may result in an unaligned pointer value" warnings. Some of these warnings are genuine, and indicate correctly that parts of iPXE currently require the CPU (or runtime environment) to support unaligned accesses. For example: the TCP/IP receive data path will attempt to access 32-bit fields that may not be aligned to a 32-bit boundary. Other warnings are either spurious (such as when the pointer is to a variable-length byte array, which can have no alignment requirement anyway) or unhelpful (such as when the pointer is used solely to provide a debug colour value for the DBGC() macro). There appears to be no easy way to silence the spurious warnings. Since the ability to perform unaligned accesses is already a requirement for iPXE, work around the problem by silencing this class of warnings. Signed-off-by: Valentine Barshak <gvaxon@gmail.com> Modified-by: Michael Brown <mcb30@ipxe.org> Signed-off-by: Michael Brown <mcb30@ipxe.org> Signed-off-by: Bruce Rogers <brogers@suse.com>
-rw-r--r--roms/ipxe/src/Makefile.housekeeping9
1 files changed, 9 insertions, 0 deletions
diff --git a/roms/ipxe/src/Makefile.housekeeping b/roms/ipxe/src/Makefile.housekeeping
index 97fa325bb..e5f6927de 100644
--- a/roms/ipxe/src/Makefile.housekeeping
+++ b/roms/ipxe/src/Makefile.housekeeping
@@ -185,6 +185,15 @@ WNST_TEST = $(CC) -Wstringop-truncation -x c -c /dev/null -o /dev/null \
>/dev/null 2>&1
WNST_FLAGS := $(shell $(WNST_TEST) && $(ECHO) '-Wno-stringop-truncation')
WORKAROUND_CFLAGS += $(WNST_FLAGS)
+
+# gcc 9.1 generates warnings for taking address of packed member which
+# may result in an unaligned pointer value. Inhibit the warnings.
+#
+WNAPM_TEST = $(CC) -Wno-address-of-packed-member -x c -c /dev/null \
+ -o /dev/null >/dev/null 2>&1
+WNAPM_FLAGS := $(shell $(WNAPM_TEST) && \
+ $(ECHO) '-Wno-address-of-packed-member')
+WORKAROUND_CFLAGS += $(WNAPM_FLAGS)
endif
# Some versions of gas choke on division operators, treating them as