From: "Christopher Clark" <christopher.w.clark@gmail.com>
To: meta-virtualization@yoctoproject.org
Cc: bruce.ashfield@gmail.com, cardoe@gentoo.org
Subject: [meta-virtualization][PATCH 2/3] ipxe: fix build with gcc 10.1.0
Date: Thu, 30 Jul 2020 10:20:40 -0700 [thread overview]
Message-ID: <20200730172041.32126-2-christopher.w.clark@gmail.com> (raw)
In-Reply-To: <20200730172041.32126-1-christopher.w.clark@gmail.com>
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
next prev parent reply other threads:[~2020-07-30 17:21 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
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 [this message]
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
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200730172041.32126-2-christopher.w.clark@gmail.com \
--to=christopher.w.clark@gmail.com \
--cc=bruce.ashfield@gmail.com \
--cc=cardoe@gentoo.org \
--cc=meta-virtualization@yoctoproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.