* [meta-virtualization][PATCH 2/3] ipxe: fix build with gcc 10.1.0
2020-07-30 17:20 [meta-virtualization][PATCH 1/3] xen: upgrade to Xen 4.14 as default and advance the git recipe version Christopher Clark
@ 2020-07-30 17:20 ` Christopher Clark
2020-07-30 17:20 ` [meta-virtualization][PATCH 3/3] xen, xen-tools: move tools-specific EXTRA_OECONF to xen-tools.inc Christopher Clark
2020-08-03 0:24 ` [meta-virtualization][PATCH 1/3] xen: upgrade to Xen 4.14 as default and advance the git recipe version Bruce Ashfield
2 siblings, 0 replies; 4+ messages in thread
From: Christopher Clark @ 2020-07-30 17:20 UTC (permalink / raw)
To: meta-virtualization; +Cc: bruce.ashfield, cardoe
From: Christopher Clark <christopher.w.clark@gmail.com>
Apply two upstream patches to fix compiler warnings.
Signed-off-by: Christopher Clark <christopher.clark6@baesystems.com>
---
...it-type-casts-for-nodnic_queue_pair_.patch | 43 +++++++++
...-spurious-compiler-warning-on-GCC-10.patch | 89 +++++++++++++++++++
recipes-extended/ipxe/ipxe_git.bb | 2 +
3 files changed, 134 insertions(+)
create mode 100644 recipes-extended/ipxe/files/ipxe-golan-Add-explicit-type-casts-for-nodnic_queue_pair_.patch
create mode 100644 recipes-extended/ipxe/files/ipxe-intel-Avoid-spurious-compiler-warning-on-GCC-10.patch
diff --git a/recipes-extended/ipxe/files/ipxe-golan-Add-explicit-type-casts-for-nodnic_queue_pair_.patch b/recipes-extended/ipxe/files/ipxe-golan-Add-explicit-type-casts-for-nodnic_queue_pair_.patch
new file mode 100644
index 0000000..62e8e9d
--- /dev/null
+++ b/recipes-extended/ipxe/files/ipxe-golan-Add-explicit-type-casts-for-nodnic_queue_pair_.patch
@@ -0,0 +1,43 @@
+From 8a1d66c7aec020f3e90254ed2fa55ecd9494fcc3 Mon Sep 17 00:00:00 2001
+From: Michael Brown <mcb30@ipxe.org>
+Date: Sat, 27 Jun 2020 20:43:32 +0100
+Subject: [PATCH] [golan] Add explicit type casts for nodnic_queue_pair_type
+
+GCC 10 emits warnings for implicit conversions of enumerated types.
+
+The flexboot_nodnic code defines nodnic_queue_pair_type with values
+identical to those of ib_queue_pair_type, and implicitly casts between
+them. Add an explicit cast to fix the warning.
+
+Signed-off-by: Michael Brown <mcb30@ipxe.org>
+---
+ src/drivers/infiniband/flexboot_nodnic.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/src/drivers/infiniband/flexboot_nodnic.c b/src/drivers/infiniband/flexboot_nodnic.c
+index 93bb0544..7d039fff 100644
+--- a/drivers/infiniband/flexboot_nodnic.c
++++ b/drivers/infiniband/flexboot_nodnic.c
+@@ -365,7 +365,8 @@ static int flexboot_nodnic_create_qp ( struct ib_device *ibdev,
+ goto qp_alloc_err;
+ }
+
+- status = nodnic_port_create_qp(&port->port_priv, qp->type,
++ status = nodnic_port_create_qp(&port->port_priv,
++ (nodnic_queue_pair_type) qp->type,
+ qp->send.num_wqes * sizeof(struct nodnic_send_wqbb),
+ qp->send.num_wqes,
+ qp->recv.num_wqes * sizeof(struct nodnic_recv_wqe),
+@@ -406,7 +407,8 @@ static void flexboot_nodnic_destroy_qp ( struct ib_device *ibdev,
+ struct flexboot_nodnic_port *port = &flexboot_nodnic->port[ibdev->port - 1];
+ struct flexboot_nodnic_queue_pair *flexboot_nodnic_qp = ib_qp_get_drvdata ( qp );
+
+- nodnic_port_destroy_qp(&port->port_priv, qp->type,
++ nodnic_port_destroy_qp(&port->port_priv,
++ (nodnic_queue_pair_type) qp->type,
+ flexboot_nodnic_qp->nodnic_queue_pair);
+
+ free(flexboot_nodnic_qp);
+--
+2.17.1
+
diff --git a/recipes-extended/ipxe/files/ipxe-intel-Avoid-spurious-compiler-warning-on-GCC-10.patch b/recipes-extended/ipxe/files/ipxe-intel-Avoid-spurious-compiler-warning-on-GCC-10.patch
new file mode 100644
index 0000000..e424d22
--- /dev/null
+++ b/recipes-extended/ipxe/files/ipxe-intel-Avoid-spurious-compiler-warning-on-GCC-10.patch
@@ -0,0 +1,89 @@
+From 28cf9806d1632d378485005babec295da0c77fcf Mon Sep 17 00:00:00 2001
+From: Michael Brown <mcb30@ipxe.org>
+Date: Sat, 27 Jun 2020 20:21:11 +0100
+Subject: [PATCH] [intel] Avoid spurious compiler warning on GCC 10
+
+GCC 10 produces a spurious warning about an out-of-bounds array access
+for the unsized raw dword array in union intelvf_msg.
+
+Avoid the warning by embedding the zero-length array within a struct.
+
+Signed-off-by: Michael Brown <mcb30@ipxe.org>
+---
+ src/drivers/net/intelvf.c | 18 ++++++++++--------
+ src/drivers/net/intelvf.h | 8 +++++++-
+ 2 files changed, 17 insertions(+), 9 deletions(-)
+
+diff --git a/src/drivers/net/intelvf.c b/src/drivers/net/intelvf.c
+index ac6fea74..0d48b417 100644
+--- a/drivers/net/intelvf.c
++++ b/drivers/net/intelvf.c
+@@ -52,14 +52,15 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
+ */
+ static void intelvf_mbox_write ( struct intel_nic *intel,
+ const union intelvf_msg *msg ) {
++ const struct intelvf_msg_raw *raw = &msg->raw;
+ unsigned int i;
+
+ /* Write message */
+ DBGC2 ( intel, "INTEL %p sending message", intel );
+- for ( i = 0 ; i < ( sizeof ( *msg ) / sizeof ( msg->dword[0] ) ) ; i++){
+- DBGC2 ( intel, "%c%08x", ( i ? ':' : ' ' ), msg->dword[i] );
+- writel ( msg->dword[i], ( intel->regs + intel->mbox.mem +
+- ( i * sizeof ( msg->dword[0] ) ) ) );
++ for ( i = 0 ; i < ( sizeof ( *msg ) / sizeof ( raw->dword[0] ) ) ; i++){
++ DBGC2 ( intel, "%c%08x", ( i ? ':' : ' ' ), raw->dword[i] );
++ writel ( raw->dword[i], ( intel->regs + intel->mbox.mem +
++ ( i * sizeof ( raw->dword[0] ) ) ) );
+ }
+ DBGC2 ( intel, "\n" );
+ }
+@@ -72,14 +73,15 @@ static void intelvf_mbox_write ( struct intel_nic *intel,
+ */
+ static void intelvf_mbox_read ( struct intel_nic *intel,
+ union intelvf_msg *msg ) {
++ struct intelvf_msg_raw *raw = &msg->raw;
+ unsigned int i;
+
+ /* Read message */
+ DBGC2 ( intel, "INTEL %p received message", intel );
+- for ( i = 0 ; i < ( sizeof ( *msg ) / sizeof ( msg->dword[0] ) ) ; i++){
+- msg->dword[i] = readl ( intel->regs + intel->mbox.mem +
+- ( i * sizeof ( msg->dword[0] ) ) );
+- DBGC2 ( intel, "%c%08x", ( i ? ':' : ' ' ), msg->dword[i] );
++ for ( i = 0 ; i < ( sizeof ( *msg ) / sizeof ( raw->dword[0] ) ) ; i++){
++ raw->dword[i] = readl ( intel->regs + intel->mbox.mem +
++ ( i * sizeof ( raw->dword[0] ) ) );
++ DBGC2 ( intel, "%c%08x", ( i ? ':' : ' ' ), raw->dword[i] );
+ }
+ DBGC2 ( intel, "\n" );
+ }
+diff --git a/src/drivers/net/intelvf.h b/src/drivers/net/intelvf.h
+index ab404698..ffb18e04 100644
+--- a/drivers/net/intelvf.h
++++ b/drivers/net/intelvf.h
+@@ -119,6 +119,12 @@ struct intelvf_msg_queues {
+ uint32_t dflt;
+ } __attribute__ (( packed ));
+
++/** Raw mailbox message */
++struct intelvf_msg_raw {
++ /** Raw dwords */
++ uint32_t dword[0];
++} __attribute__ (( packed ));
++
+ /** Mailbox message */
+ union intelvf_msg {
+ /** Message header */
+@@ -132,7 +138,7 @@ union intelvf_msg {
+ /** Queue configuration message */
+ struct intelvf_msg_queues queues;
+ /** Raw dwords */
+- uint32_t dword[0];
++ struct intelvf_msg_raw raw;
+ };
+
+ /** Maximum time to wait for mailbox message
+--
+2.17.1
+
diff --git a/recipes-extended/ipxe/ipxe_git.bb b/recipes-extended/ipxe/ipxe_git.bb
index 47c5b7a..fbaad30 100644
--- a/recipes-extended/ipxe/ipxe_git.bb
+++ b/recipes-extended/ipxe/ipxe_git.bb
@@ -13,6 +13,8 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
SRC_URI = " \
git://git.ipxe.org/ipxe.git;protocol=https \
file://ipxe-fix-hostcc-nopie-cflags.patch \
+ file://ipxe-intel-Avoid-spurious-compiler-warning-on-GCC-10.patch \
+ file://ipxe-golan-Add-explicit-type-casts-for-nodnic_queue_pair_.patch \
"
FILES_${PN} = "/usr/share/firmware/*.rom"
--
2.17.1
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [meta-virtualization][PATCH 1/3] xen: upgrade to Xen 4.14 as default and advance the git recipe version
2020-07-30 17:20 [meta-virtualization][PATCH 1/3] xen: upgrade to Xen 4.14 as default and advance the git recipe version Christopher Clark
2020-07-30 17:20 ` [meta-virtualization][PATCH 2/3] ipxe: fix build with gcc 10.1.0 Christopher Clark
2020-07-30 17:20 ` [meta-virtualization][PATCH 3/3] xen, xen-tools: move tools-specific EXTRA_OECONF to xen-tools.inc Christopher Clark
@ 2020-08-03 0:24 ` Bruce Ashfield
2 siblings, 0 replies; 4+ messages in thread
From: Bruce Ashfield @ 2020-08-03 0:24 UTC (permalink / raw)
To: christopher.w.clark; +Cc: meta-virtualization, cardoe
Thanks!
These are now merged.
Bruce
In message: [meta-virtualization][PATCH 1/3] xen: upgrade to Xen 4.14 as default and advance the git recipe version
on 30/07/2020 christopher.w.clark@gmail.com wrote:
> From: Christopher Clark <christopher.w.clark@gmail.com>
>
> Release announcement for Xen 4.14:
> https://lists.xenproject.org/archives/html/xen-devel/2020-07/msg01263.html
>
> Make the 4.14 recipe the default preference and advance the git recipe
> onto the current 4.15 development branch. Retire the patches for the
> earlier versions.
>
> Signed-off-by: Christopher Clark <christopher.clark6@baesystems.com>
> ---
> ...ython-pygrub-pass-DISTUTILS-xen.4.12.patch | 64 -------------------
> ...xen-build-temporarily-inhibit-Werror.patch | 42 ------------
> .../files/xen-tools-kdd-fix-build-again.patch | 39 -----------
> ...g-0-arrays-to-access-packet-contents.patch | 60 -----------------
> recipes-extended/xen/xen-tools_4.14.bb | 4 +-
> recipes-extended/xen/xen-tools_git.bb | 16 ++---
> recipes-extended/xen/xen_4.14.bb | 4 +-
> recipes-extended/xen/xen_git.bb | 10 +--
> 8 files changed, 16 insertions(+), 223 deletions(-)
> delete mode 100644 recipes-extended/xen/files/0001-python-pygrub-pass-DISTUTILS-xen.4.12.patch
> delete mode 100644 recipes-extended/xen/files/0001-xen-build-temporarily-inhibit-Werror.patch
> delete mode 100644 recipes-extended/xen/files/xen-tools-kdd-fix-build-again.patch
> delete mode 100644 recipes-extended/xen/files/xen-tools-kdd-stop-using-0-arrays-to-access-packet-contents.patch
>
> diff --git a/recipes-extended/xen/files/0001-python-pygrub-pass-DISTUTILS-xen.4.12.patch b/recipes-extended/xen/files/0001-python-pygrub-pass-DISTUTILS-xen.4.12.patch
> deleted file mode 100644
> index 96e907d..0000000
> --- a/recipes-extended/xen/files/0001-python-pygrub-pass-DISTUTILS-xen.4.12.patch
> +++ /dev/null
> @@ -1,64 +0,0 @@
> -From d79dcc2002008c58683de82f06c168d6eea57991 Mon Sep 17 00:00:00 2001
> -From: Maciej Pijanowski <maciej.pijanowski@3mdeb.com>
> -Date: Fri, 19 Oct 2018 11:01:37 +0200
> -Subject: [PATCH] python,pygrub: pass DISTUTILS env vars as setup.py args
> -
> -Allow to respect the target install dir (PYTHON_SITEPACKAGES_DIR)
> -as well as other parameters set by the OpenEmbedded build system.
> -This is especially useful when the target libdir is not the default one
> -(/usr/lib), but for example /usr/lib64.
> -
> -Signed-off-by: Maciej Pijanowski <maciej.pijanowski@3mdeb.com>
> -
> -Forward-ported to Xen 4.12.0
> -Signed-off-by: Christopher Clark <christopher.clark6@baesystems.com>
> -
> -Modified to support pygrub installation with python 3
> -Signed-off-by: Christopher Clark <christopher.clark6@baesystems.com>
> -
> -diff --git a/tools/pygrub/Makefile b/tools/pygrub/Makefile
> -index 3063c49..513314b 100644
> ---- a/tools/pygrub/Makefile
> -+++ b/tools/pygrub/Makefile
> -@@ -10,14 +10,17 @@ INSTALL_LOG = build/installed_files.txt
> - all: build
> - .PHONY: build
> - build:
> -- CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDFLAGS="$(PY_LDFLAGS)" $(PYTHON) setup.py build
> -+ CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDFLAGS="$(PY_LDFLAGS)" $(PYTHON) setup.py build $(DISTUTILS_BUILD_ARGS)
> -
> - .PHONY: install
> - install: all
> - $(INSTALL_DIR) $(DESTDIR)/$(bindir)
> - CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDFLAGS="$(PY_LDFLAGS)" $(PYTHON) \
> - setup.py install --record $(INSTALL_LOG) $(PYTHON_PREFIX_ARG) \
> -- --root="$(DESTDIR)" --install-scripts=$(LIBEXEC_BIN) --force
> -+ --root="$(DESTDIR)" --install-scripts=$(LIBEXEC_BIN) --force \
> -+ $(DISTUTILS_INSTALL_ARGS)
> -+ rm -f $(DESTDIR)/$(LIBEXEC_BIN)/pygrub
> -+ $(INSTALL_PYTHON_PROG) src/pygrub $(DESTDIR)/$(LIBEXEC_BIN)/pygrub
> - set -e; if [ $(bindir) != $(LIBEXEC_BIN) -a \
> - "`readlink -f $(DESTDIR)/$(bindir)`" != \
> - "`readlink -f $(LIBEXEC_BIN)`" ]; then \
> -diff --git a/tools/python/Makefile b/tools/python/Makefile
> -index 541858e..4d4a344 100644
> ---- a/tools/python/Makefile
> -+++ b/tools/python/Makefile
> -@@ -10,7 +10,7 @@ INSTALL_LOG = build/installed_files.txt
> -
> - .PHONY: build
> - build:
> -- CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py build
> -+ CC="$(CC)" CFLAGS="$(PY_CFLAGS)" $(PYTHON) setup.py build $(DISTUTILS_BUILD_ARGS)
> -
> - .PHONY: install
> - install:
> -@@ -18,7 +18,7 @@ install:
> -
> - CC="$(CC)" CFLAGS="$(PY_CFLAGS)" LDFLAGS="$(PY_LDFLAGS)" $(PYTHON) \
> - setup.py install --record $(INSTALL_LOG) $(PYTHON_PREFIX_ARG) \
> -- --root="$(DESTDIR)" --force
> -+ --root="$(DESTDIR)" --force $(DISTUTILS_INSTALL_ARGS)
> -
> - $(INSTALL_PROG) scripts/convert-legacy-stream $(DESTDIR)$(LIBEXEC_BIN)
> - $(INSTALL_PROG) scripts/verify-stream-v2 $(DESTDIR)$(LIBEXEC_BIN)
> diff --git a/recipes-extended/xen/files/0001-xen-build-temporarily-inhibit-Werror.patch b/recipes-extended/xen/files/0001-xen-build-temporarily-inhibit-Werror.patch
> deleted file mode 100644
> index ba97c4b..0000000
> --- a/recipes-extended/xen/files/0001-xen-build-temporarily-inhibit-Werror.patch
> +++ /dev/null
> @@ -1,42 +0,0 @@
> -From 9cff3bf8425ccc593825fcde8ca5eaa32a43d04d Mon Sep 17 00:00:00 2001
> -From: Bruce Ashfield <bruce.ashfield@gmail.com>
> -Date: Thu, 18 Jun 2020 09:05:22 -0400
> -Subject: [PATCH] xen/build: temporarily inhibit Werror
> -
> -Signed-off-by: Bruce Ashfield <bruce.ashfield@gmail.com>
> -Rebased on Xen 4.13:
> -Signed-off-by: Christopher Clark <christopher.w.clark@gmail.com>
> ----
> - tools/libxl/Makefile | 2 +-
> - xen/Rules.mk | 2 +-
> - 2 files changed, 2 insertions(+), 2 deletions(-)
> -
> -diff --git a/tools/libxl/Makefile b/tools/libxl/Makefile
> -index 6da342ed61..c67560e269 100644
> ---- a/tools/libxl/Makefile
> -+++ b/tools/libxl/Makefile
> -@@ -14,7 +14,7 @@ MINOR = 0
> - XLUMAJOR = 4.13
> - XLUMINOR = 0
> -
> --CFLAGS += -Werror -Wno-format-zero-length -Wmissing-declarations \
> -+CFLAGS += -Wno-format-zero-length -Wmissing-declarations \
> - -Wno-declaration-after-statement -Wformat-nonliteral
> - CFLAGS += -I. -fPIC
> -
> -diff --git a/xen/Rules.mk b/xen/Rules.mk
> -index a151b3f625..a05ceec1e5 100644
> ---- a/xen/Rules.mk
> -+++ b/xen/Rules.mk
> -@@ -54,7 +54,7 @@ CFLAGS += -fomit-frame-pointer
> - endif
> -
> - CFLAGS += -nostdinc -fno-builtin -fno-common
> --CFLAGS += -Werror -Wredundant-decls -Wno-pointer-arith
> -+CFLAGS += -Wredundant-decls -Wno-pointer-arith
> - $(call cc-option-add,CFLAGS,CC,-Wvla)
> - CFLAGS += -pipe -D__XEN__ -include $(BASEDIR)/include/xen/config.h
> - CFLAGS-$(CONFIG_DEBUG_INFO) += -g
> ---
> -2.19.1
> -
> diff --git a/recipes-extended/xen/files/xen-tools-kdd-fix-build-again.patch b/recipes-extended/xen/files/xen-tools-kdd-fix-build-again.patch
> deleted file mode 100644
> index 6122999..0000000
> --- a/recipes-extended/xen/files/xen-tools-kdd-fix-build-again.patch
> +++ /dev/null
> @@ -1,39 +0,0 @@
> -From d44cbbe0f3243afcc56e47dcfa97bbfe23e46fbb Mon Sep 17 00:00:00 2001
> -From: Wei Liu <wl@xen.org>
> -Date: Fri, 3 Jul 2020 20:10:01 +0000
> -Subject: [PATCH] kdd: fix build again
> -
> -Restore Tim's patch. The one that was committed was recreated by me
> -because git didn't accept my saved copy. I made some mistakes while
> -recreating that patch and here we are.
> -
> -Fixes: 3471cafbdda3 ("kdd: stop using [0] arrays to access packet contents")
> -Reported-by: Michael Young <m.a.young@durham.ac.uk>
> -Signed-off-by: Wei Liu <wl@xen.org>
> -Reviewed-by: Tim Deegan <tim@xen.org>
> -Release-acked-by: Paul Durrant <paul@xen.org>
> ----
> - tools/debugger/kdd/kdd.c | 4 ++--
> - 1 file changed, 2 insertions(+), 2 deletions(-)
> -
> -diff --git a/tools/debugger/kdd/kdd.c b/tools/debugger/kdd/kdd.c
> -index 866532f0c7..a7d0976ea4 100644
> ---- a/tools/debugger/kdd/kdd.c
> -+++ b/tools/debugger/kdd/kdd.c
> -@@ -79,11 +79,11 @@ typedef struct {
> - /* State of the debugger stub */
> - typedef struct {
> - union {
> -- uint8_t txb[sizeof (kdd_hdr)]; /* Marshalling area for tx */
> -+ uint8_t txb[sizeof (kdd_pkt)]; /* Marshalling area for tx */
> - kdd_pkt txp; /* Also readable as a packet structure */
> - };
> - union {
> -- uint8_t rxb[sizeof (kdd_hdr)]; /* Marshalling area for rx */
> -+ uint8_t rxb[sizeof (kdd_pkt)]; /* Marshalling area for rx */
> - kdd_pkt rxp; /* Also readable as a packet structure */
> - };
> - unsigned int cur; /* Offset into rx where we'll put the next byte */
> ---
> -2.17.1
> -
> diff --git a/recipes-extended/xen/files/xen-tools-kdd-stop-using-0-arrays-to-access-packet-contents.patch b/recipes-extended/xen/files/xen-tools-kdd-stop-using-0-arrays-to-access-packet-contents.patch
> deleted file mode 100644
> index c1b110d..0000000
> --- a/recipes-extended/xen/files/xen-tools-kdd-stop-using-0-arrays-to-access-packet-contents.patch
> +++ /dev/null
> @@ -1,60 +0,0 @@
> -From 3471cafbdda35eacf04670881dd2aee2558b4f08 Mon Sep 17 00:00:00 2001
> -From: Tim Deegan <tim@xen.org>
> -Date: Fri, 26 Jun 2020 10:40:44 +0000
> -Subject: [PATCH] kdd: stop using [0] arrays to access packet contents
> -
> -GCC 10 is unhappy about this, and we already use 64k buffers
> -in the only places where packets are allocated, so move the
> -64k size into the packet definition.
> -
> -Reported-by: Olaf Hering <olaf@aepfle.de>
> -Signed-off-by: Tim Deegan <tim@xen.org>
> -Acked-by: Wei Liu <wl@xen.org>
> -Release-acked-by: Paul Durrant <paul@xen.org>
> ----
> - tools/debugger/kdd/kdd.c | 4 ++--
> - tools/debugger/kdd/kdd.h | 3 +--
> - 2 files changed, 3 insertions(+), 4 deletions(-)
> -
> -diff --git a/tools/debugger/kdd/kdd.c b/tools/debugger/kdd/kdd.c
> -index 3ebda9b12c..866532f0c7 100644
> ---- a/tools/debugger/kdd/kdd.c
> -+++ b/tools/debugger/kdd/kdd.c
> -@@ -79,11 +79,11 @@ typedef struct {
> - /* State of the debugger stub */
> - typedef struct {
> - union {
> -- uint8_t txb[sizeof (kdd_hdr) + 65536]; /* Marshalling area for tx */
> -+ uint8_t txb[sizeof (kdd_hdr)]; /* Marshalling area for tx */
> - kdd_pkt txp; /* Also readable as a packet structure */
> - };
> - union {
> -- uint8_t rxb[sizeof (kdd_hdr) + 65536]; /* Marshalling area for rx */
> -+ uint8_t rxb[sizeof (kdd_hdr)]; /* Marshalling area for rx */
> - kdd_pkt rxp; /* Also readable as a packet structure */
> - };
> - unsigned int cur; /* Offset into rx where we'll put the next byte */
> -diff --git a/tools/debugger/kdd/kdd.h b/tools/debugger/kdd/kdd.h
> -index bfb00ba5c5..b9a17440df 100644
> ---- a/tools/debugger/kdd/kdd.h
> -+++ b/tools/debugger/kdd/kdd.h
> -@@ -68,7 +68,6 @@ typedef struct {
> - uint16_t len; /* Payload length, excl. header and trailing byte */
> - uint32_t id; /* Echoed in responses */
> - uint32_t sum; /* Unsigned sum of all payload bytes */
> -- uint8_t payload[0];
> - } PACKED kdd_hdr;
> -
> - #define KDD_PKT_CMD 0x0002 /* Debugger commands (and replies to them) */
> -@@ -323,7 +322,7 @@ typedef struct {
> - kdd_msg msg;
> - kdd_reg reg;
> - kdd_stc stc;
> -- uint8_t payload[0];
> -+ uint8_t payload[65536];
> - };
> - } PACKED kdd_pkt;
> -
> ---
> -2.17.1
> -
> diff --git a/recipes-extended/xen/xen-tools_4.14.bb b/recipes-extended/xen/xen-tools_4.14.bb
> index ef40c85..4119190 100644
> --- a/recipes-extended/xen/xen-tools_4.14.bb
> +++ b/recipes-extended/xen/xen-tools_4.14.bb
> @@ -1,4 +1,4 @@
> -SRCREV ?= "02d69864b51a4302a148c28d6d391238a6778b4b"
> +SRCREV ?= "456957aaa1391e0dfa969e2dd97b87c51a79444e"
>
> XEN_REL ?= "4.14"
> XEN_BRANCH ?= "stable-${XEN_REL}"
> @@ -15,7 +15,5 @@ PV = "${XEN_REL}+stable${SRCPV}"
>
> S = "${WORKDIR}/git"
>
> -DEFAULT_PREFERENCE ??= "-1"
> -
> require xen.inc
> require xen-tools.inc
> diff --git a/recipes-extended/xen/xen-tools_git.bb b/recipes-extended/xen/xen-tools_git.bb
> index 679feb1..71aeeed 100644
> --- a/recipes-extended/xen/xen-tools_git.bb
> +++ b/recipes-extended/xen/xen-tools_git.bb
> @@ -1,21 +1,21 @@
> -SRCREV ?= "9f7e8bac4ca279b3bfccb5f3730fb2e5398c95ab"
> +SRCREV ?= "8c4532f19d6925538fb0c938f7de9a97da8c5c3b"
>
> -XEN_REL ?= "4.13"
> -XEN_BRANCH ?= "stable-${XEN_REL}"
> +XEN_REL ?= "4.15"
> +XEN_BRANCH ?= "master"
>
> SRC_URI = " \
> git://xenbits.xen.org/xen.git;branch=${XEN_BRANCH} \
> - file://0001-python-pygrub-pass-DISTUTILS-xen.4.12.patch \
> - file://0001-xen-build-temporarily-inhibit-Werror.patch \
> - file://xen-tools-kdd-stop-using-0-arrays-to-access-packet-contents.patch \
> - file://xen-tools-kdd-fix-build-again.patch \
> + file://0001-python-pygrub-pass-DISTUTILS-xen-4.14.patch \
> + file://0001-xen-build-temporarily-inhibit-Werror-4.14.patch \
> "
>
> -LIC_FILES_CHKSUM ?= "file://COPYING;md5=4295d895d4b5ce9d070263d52f030e49"
> +LIC_FILES_CHKSUM ?= "file://COPYING;md5=419739e325a50f3d7b4501338e44a4e5"
>
> PV = "${XEN_REL}+git${SRCPV}"
>
> S = "${WORKDIR}/git"
>
> +DEFAULT_PREFERENCE ??= "-1"
> +
> require xen.inc
> require xen-tools.inc
> diff --git a/recipes-extended/xen/xen_4.14.bb b/recipes-extended/xen/xen_4.14.bb
> index 02af2a7..0413bee 100644
> --- a/recipes-extended/xen/xen_4.14.bb
> +++ b/recipes-extended/xen/xen_4.14.bb
> @@ -1,4 +1,4 @@
> -SRCREV ?= "02d69864b51a4302a148c28d6d391238a6778b4b"
> +SRCREV ?= "456957aaa1391e0dfa969e2dd97b87c51a79444e"
>
> XEN_REL ?= "4.14"
> XEN_BRANCH ?= "stable-${XEN_REL}"
> @@ -14,7 +14,5 @@ PV = "${XEN_REL}+stable${SRCPV}"
>
> S = "${WORKDIR}/git"
>
> -DEFAULT_PREFERENCE ??= "-1"
> -
> require xen.inc
> require xen-hypervisor.inc
> diff --git a/recipes-extended/xen/xen_git.bb b/recipes-extended/xen/xen_git.bb
> index 7765ed7..408bc3b 100644
> --- a/recipes-extended/xen/xen_git.bb
> +++ b/recipes-extended/xen/xen_git.bb
> @@ -1,18 +1,20 @@
> -SRCREV ?= "9f7e8bac4ca279b3bfccb5f3730fb2e5398c95ab"
> +SRCREV ?= "8c4532f19d6925538fb0c938f7de9a97da8c5c3b"
>
> -XEN_REL ?= "4.13"
> -XEN_BRANCH ?= "stable-${XEN_REL}"
> +XEN_REL ?= "4.15"
> +XEN_BRANCH ?= "master"
>
> SRC_URI = " \
> git://xenbits.xen.org/xen.git;branch=${XEN_BRANCH} \
> file://xen-arm64-implement-atomic-fetch-add.patch \
> "
>
> -LIC_FILES_CHKSUM ?= "file://COPYING;md5=4295d895d4b5ce9d070263d52f030e49"
> +LIC_FILES_CHKSUM ?= "file://COPYING;md5=419739e325a50f3d7b4501338e44a4e5"
>
> PV = "${XEN_REL}+git${SRCPV}"
>
> S = "${WORKDIR}/git"
>
> +DEFAULT_PREFERENCE ??= "-1"
> +
> require xen.inc
> require xen-hypervisor.inc
> --
> 2.17.1
>
In message: [meta-virtualization][PATCH 3/3] xen, xen-tools: move tools-specific EXTRA_OECONF to xen-tools.inc
on 30/07/2020 christopher.w.clark@gmail.com wrote:
> From: Christopher Clark <christopher.w.clark@gmail.com>
>
> Since the hypervisor recipe does not install init scripts, it does not
> include update-rc.d.bbclass, which defines INIT_D_DIR; so move the use
> of that and systemd and qemu tools-specific configure settings over into
> the tools include file. Fix a hardcoded bindir while at it.
>
> Signed-off-by: Christopher Clark <christopher.clark6@baesystems.com>
> ---
> recipes-extended/xen/xen-tools.inc | 8 ++++++++
> recipes-extended/xen/xen.inc | 5 -----
> 2 files changed, 8 insertions(+), 5 deletions(-)
>
> diff --git a/recipes-extended/xen/xen-tools.inc b/recipes-extended/xen/xen-tools.inc
> index 99e7e0b..ace1a01 100644
> --- a/recipes-extended/xen/xen-tools.inc
> +++ b/recipes-extended/xen/xen-tools.inc
> @@ -730,6 +730,14 @@ ADD_SYSROOT32_CFLAGS_x86-64 = \
> # This x86-64 override is never intended for native use, so clear that.
> ADD_SYSROOT32_CFLAGS_class-native = ""
>
> +EXTRA_OECONF += " \
> + --with-systemd=${systemd_unitdir}/system \
> + --with-systemd-modules-load=${systemd_unitdir}/modules-load.d \
> + --with-initddir=${INIT_D_DIR} \
> + --with-sysconfig-leaf-dir=default \
> + --with-system-qemu=${bindir}/qemu-system-i386 \
> + "
> +
> do_configure() {
> do_configure_common
>
> diff --git a/recipes-extended/xen/xen.inc b/recipes-extended/xen/xen.inc
> index 3c1e3b9..9e8fcad 100644
> --- a/recipes-extended/xen/xen.inc
> +++ b/recipes-extended/xen/xen.inc
> @@ -118,17 +118,12 @@ EXTRA_OECONF += " \
> --exec-prefix=${prefix} \
> --prefix=${prefix} \
> --host=${HOST_SYS} \
> - --with-systemd=${systemd_unitdir}/system \
> - --with-systemd-modules-load=${systemd_unitdir}/modules-load.d \
> --disable-stubdom \
> --disable-ioemu-stubdom \
> --disable-pv-grub \
> --disable-xenstore-stubdom \
> --disable-rombios \
> --disable-ocamltools \
> - --with-initddir=${INIT_D_DIR} \
> - --with-sysconfig-leaf-dir=default \
> - --with-system-qemu=/usr/bin/qemu-system-i386 \
> --disable-qemu-traditional \
> "
>
> --
> 2.17.1
>
In message: [meta-virtualization][PATCH 2/3] ipxe: fix build with gcc 10.1.0
on 30/07/2020 christopher.w.clark@gmail.com wrote:
> From: Christopher Clark <christopher.w.clark@gmail.com>
>
> Apply two upstream patches to fix compiler warnings.
>
> Signed-off-by: Christopher Clark <christopher.clark6@baesystems.com>
> ---
> ...it-type-casts-for-nodnic_queue_pair_.patch | 43 +++++++++
> ...-spurious-compiler-warning-on-GCC-10.patch | 89 +++++++++++++++++++
> recipes-extended/ipxe/ipxe_git.bb | 2 +
> 3 files changed, 134 insertions(+)
> create mode 100644 recipes-extended/ipxe/files/ipxe-golan-Add-explicit-type-casts-for-nodnic_queue_pair_.patch
> create mode 100644 recipes-extended/ipxe/files/ipxe-intel-Avoid-spurious-compiler-warning-on-GCC-10.patch
>
> diff --git a/recipes-extended/ipxe/files/ipxe-golan-Add-explicit-type-casts-for-nodnic_queue_pair_.patch b/recipes-extended/ipxe/files/ipxe-golan-Add-explicit-type-casts-for-nodnic_queue_pair_.patch
> new file mode 100644
> index 0000000..62e8e9d
> --- /dev/null
> +++ b/recipes-extended/ipxe/files/ipxe-golan-Add-explicit-type-casts-for-nodnic_queue_pair_.patch
> @@ -0,0 +1,43 @@
> +From 8a1d66c7aec020f3e90254ed2fa55ecd9494fcc3 Mon Sep 17 00:00:00 2001
> +From: Michael Brown <mcb30@ipxe.org>
> +Date: Sat, 27 Jun 2020 20:43:32 +0100
> +Subject: [PATCH] [golan] Add explicit type casts for nodnic_queue_pair_type
> +
> +GCC 10 emits warnings for implicit conversions of enumerated types.
> +
> +The flexboot_nodnic code defines nodnic_queue_pair_type with values
> +identical to those of ib_queue_pair_type, and implicitly casts between
> +them. Add an explicit cast to fix the warning.
> +
> +Signed-off-by: Michael Brown <mcb30@ipxe.org>
> +---
> + src/drivers/infiniband/flexboot_nodnic.c | 6 ++++--
> + 1 file changed, 4 insertions(+), 2 deletions(-)
> +
> +diff --git a/src/drivers/infiniband/flexboot_nodnic.c b/src/drivers/infiniband/flexboot_nodnic.c
> +index 93bb0544..7d039fff 100644
> +--- a/drivers/infiniband/flexboot_nodnic.c
> ++++ b/drivers/infiniband/flexboot_nodnic.c
> +@@ -365,7 +365,8 @@ static int flexboot_nodnic_create_qp ( struct ib_device *ibdev,
> + goto qp_alloc_err;
> + }
> +
> +- status = nodnic_port_create_qp(&port->port_priv, qp->type,
> ++ status = nodnic_port_create_qp(&port->port_priv,
> ++ (nodnic_queue_pair_type) qp->type,
> + qp->send.num_wqes * sizeof(struct nodnic_send_wqbb),
> + qp->send.num_wqes,
> + qp->recv.num_wqes * sizeof(struct nodnic_recv_wqe),
> +@@ -406,7 +407,8 @@ static void flexboot_nodnic_destroy_qp ( struct ib_device *ibdev,
> + struct flexboot_nodnic_port *port = &flexboot_nodnic->port[ibdev->port - 1];
> + struct flexboot_nodnic_queue_pair *flexboot_nodnic_qp = ib_qp_get_drvdata ( qp );
> +
> +- nodnic_port_destroy_qp(&port->port_priv, qp->type,
> ++ nodnic_port_destroy_qp(&port->port_priv,
> ++ (nodnic_queue_pair_type) qp->type,
> + flexboot_nodnic_qp->nodnic_queue_pair);
> +
> + free(flexboot_nodnic_qp);
> +--
> +2.17.1
> +
> diff --git a/recipes-extended/ipxe/files/ipxe-intel-Avoid-spurious-compiler-warning-on-GCC-10.patch b/recipes-extended/ipxe/files/ipxe-intel-Avoid-spurious-compiler-warning-on-GCC-10.patch
> new file mode 100644
> index 0000000..e424d22
> --- /dev/null
> +++ b/recipes-extended/ipxe/files/ipxe-intel-Avoid-spurious-compiler-warning-on-GCC-10.patch
> @@ -0,0 +1,89 @@
> +From 28cf9806d1632d378485005babec295da0c77fcf Mon Sep 17 00:00:00 2001
> +From: Michael Brown <mcb30@ipxe.org>
> +Date: Sat, 27 Jun 2020 20:21:11 +0100
> +Subject: [PATCH] [intel] Avoid spurious compiler warning on GCC 10
> +
> +GCC 10 produces a spurious warning about an out-of-bounds array access
> +for the unsized raw dword array in union intelvf_msg.
> +
> +Avoid the warning by embedding the zero-length array within a struct.
> +
> +Signed-off-by: Michael Brown <mcb30@ipxe.org>
> +---
> + src/drivers/net/intelvf.c | 18 ++++++++++--------
> + src/drivers/net/intelvf.h | 8 +++++++-
> + 2 files changed, 17 insertions(+), 9 deletions(-)
> +
> +diff --git a/src/drivers/net/intelvf.c b/src/drivers/net/intelvf.c
> +index ac6fea74..0d48b417 100644
> +--- a/drivers/net/intelvf.c
> ++++ b/drivers/net/intelvf.c
> +@@ -52,14 +52,15 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
> + */
> + static void intelvf_mbox_write ( struct intel_nic *intel,
> + const union intelvf_msg *msg ) {
> ++ const struct intelvf_msg_raw *raw = &msg->raw;
> + unsigned int i;
> +
> + /* Write message */
> + DBGC2 ( intel, "INTEL %p sending message", intel );
> +- for ( i = 0 ; i < ( sizeof ( *msg ) / sizeof ( msg->dword[0] ) ) ; i++){
> +- DBGC2 ( intel, "%c%08x", ( i ? ':' : ' ' ), msg->dword[i] );
> +- writel ( msg->dword[i], ( intel->regs + intel->mbox.mem +
> +- ( i * sizeof ( msg->dword[0] ) ) ) );
> ++ for ( i = 0 ; i < ( sizeof ( *msg ) / sizeof ( raw->dword[0] ) ) ; i++){
> ++ DBGC2 ( intel, "%c%08x", ( i ? ':' : ' ' ), raw->dword[i] );
> ++ writel ( raw->dword[i], ( intel->regs + intel->mbox.mem +
> ++ ( i * sizeof ( raw->dword[0] ) ) ) );
> + }
> + DBGC2 ( intel, "\n" );
> + }
> +@@ -72,14 +73,15 @@ static void intelvf_mbox_write ( struct intel_nic *intel,
> + */
> + static void intelvf_mbox_read ( struct intel_nic *intel,
> + union intelvf_msg *msg ) {
> ++ struct intelvf_msg_raw *raw = &msg->raw;
> + unsigned int i;
> +
> + /* Read message */
> + DBGC2 ( intel, "INTEL %p received message", intel );
> +- for ( i = 0 ; i < ( sizeof ( *msg ) / sizeof ( msg->dword[0] ) ) ; i++){
> +- msg->dword[i] = readl ( intel->regs + intel->mbox.mem +
> +- ( i * sizeof ( msg->dword[0] ) ) );
> +- DBGC2 ( intel, "%c%08x", ( i ? ':' : ' ' ), msg->dword[i] );
> ++ for ( i = 0 ; i < ( sizeof ( *msg ) / sizeof ( raw->dword[0] ) ) ; i++){
> ++ raw->dword[i] = readl ( intel->regs + intel->mbox.mem +
> ++ ( i * sizeof ( raw->dword[0] ) ) );
> ++ DBGC2 ( intel, "%c%08x", ( i ? ':' : ' ' ), raw->dword[i] );
> + }
> + DBGC2 ( intel, "\n" );
> + }
> +diff --git a/src/drivers/net/intelvf.h b/src/drivers/net/intelvf.h
> +index ab404698..ffb18e04 100644
> +--- a/drivers/net/intelvf.h
> ++++ b/drivers/net/intelvf.h
> +@@ -119,6 +119,12 @@ struct intelvf_msg_queues {
> + uint32_t dflt;
> + } __attribute__ (( packed ));
> +
> ++/** Raw mailbox message */
> ++struct intelvf_msg_raw {
> ++ /** Raw dwords */
> ++ uint32_t dword[0];
> ++} __attribute__ (( packed ));
> ++
> + /** Mailbox message */
> + union intelvf_msg {
> + /** Message header */
> +@@ -132,7 +138,7 @@ union intelvf_msg {
> + /** Queue configuration message */
> + struct intelvf_msg_queues queues;
> + /** Raw dwords */
> +- uint32_t dword[0];
> ++ struct intelvf_msg_raw raw;
> + };
> +
> + /** Maximum time to wait for mailbox message
> +--
> +2.17.1
> +
> diff --git a/recipes-extended/ipxe/ipxe_git.bb b/recipes-extended/ipxe/ipxe_git.bb
> index 47c5b7a..fbaad30 100644
> --- a/recipes-extended/ipxe/ipxe_git.bb
> +++ b/recipes-extended/ipxe/ipxe_git.bb
> @@ -13,6 +13,8 @@ FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
> SRC_URI = " \
> git://git.ipxe.org/ipxe.git;protocol=https \
> file://ipxe-fix-hostcc-nopie-cflags.patch \
> + file://ipxe-intel-Avoid-spurious-compiler-warning-on-GCC-10.patch \
> + file://ipxe-golan-Add-explicit-type-casts-for-nodnic_queue_pair_.patch \
> "
>
> FILES_${PN} = "/usr/share/firmware/*.rom"
> --
> 2.17.1
>
^ permalink raw reply [flat|nested] 4+ messages in thread