diff options
3 files changed, 163 insertions, 1 deletions
diff --git a/recipes-extended/dpdk/dpdk/0001-net-gve-base-fix-build-with-Fedora.patch b/recipes-extended/dpdk/dpdk/0001-net-gve-base-fix-build-with-Fedora.patch new file mode 100644 index 0000000..05efc3f --- /dev/null +++ b/recipes-extended/dpdk/dpdk/0001-net-gve-base-fix-build-with-Fedora.patch | |||
| @@ -0,0 +1,95 @@ | |||
| 1 | From f0d9e787747dda0715654da9f0501f54fe105868 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Joshua Washington <joshwash@google.com> | ||
| 3 | Date: Thu, 17 Oct 2024 16:42:33 -0700 | ||
| 4 | Subject: net/gve/base: fix build with Fedora Rawhide | ||
| 5 | |||
| 6 | Currently, a number of integer types are typedef'd to their corresponding | ||
| 7 | userspace or RTE values. This can be problematic if these types are | ||
| 8 | already defined somewhere else, as it would cause type collisions. | ||
| 9 | This patch changes the typedefs to #define macros which are only defined | ||
| 10 | if the types are not defined already. | ||
| 11 | |||
| 12 | Note: this was reported by OBS CI on 2024/10/17, when compiling DPDK | ||
| 13 | in Fedora Rawhide. | ||
| 14 | |||
| 15 | Fixes: c9ba2caf6302 ("net/gve/base: add OS-specific implementation") | ||
| 16 | Fixes: abf1242fbb84 ("net/gve: add struct members and typedefs for DQO") | ||
| 17 | Cc: stable@dpdk.org | ||
| 18 | |||
| 19 | Upstream-Status: Backport [https://git.dpdk.org/dpdk/commit/?id=f0d9e787747dda0715654da9f0501f54fe105868] | ||
| 20 | |||
| 21 | Reported-by: David Marchand <david.marchand@redhat.com> | ||
| 22 | Signed-off-by: Joshua Washington <joshwash@google.com> | ||
| 23 | Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com> | ||
| 24 | --- | ||
| 25 | drivers/net/gve/base/gve_osdep.h | 48 ++++++++++++++++++++++++++++++---------- | ||
| 26 | 1 file changed, 36 insertions(+), 12 deletions(-) | ||
| 27 | |||
| 28 | (limited to 'drivers/net/gve/base/gve_osdep.h') | ||
| 29 | |||
| 30 | diff --git a/drivers/net/gve/base/gve_osdep.h b/drivers/net/gve/base/gve_osdep.h | ||
| 31 | index c0ee0d567c..64181cebd6 100644 | ||
| 32 | --- a/drivers/net/gve/base/gve_osdep.h | ||
| 33 | +++ b/drivers/net/gve/base/gve_osdep.h | ||
| 34 | @@ -29,22 +29,46 @@ | ||
| 35 | #include <sys/utsname.h> | ||
| 36 | #endif | ||
| 37 | |||
| 38 | -typedef uint8_t u8; | ||
| 39 | -typedef uint16_t u16; | ||
| 40 | -typedef uint32_t u32; | ||
| 41 | -typedef uint64_t u64; | ||
| 42 | +#ifndef u8 | ||
| 43 | +#define u8 uint8_t | ||
| 44 | +#endif | ||
| 45 | +#ifndef u16 | ||
| 46 | +#define u16 uint16_t | ||
| 47 | +#endif | ||
| 48 | +#ifndef u32 | ||
| 49 | +#define u32 uint32_t | ||
| 50 | +#endif | ||
| 51 | +#ifndef u64 | ||
| 52 | +#define u64 uint64_t | ||
| 53 | +#endif | ||
| 54 | |||
| 55 | -typedef rte_be16_t __sum16; | ||
| 56 | +#ifndef __sum16 | ||
| 57 | +#define __sum16 rte_be16_t | ||
| 58 | +#endif | ||
| 59 | |||
| 60 | -typedef rte_be16_t __be16; | ||
| 61 | -typedef rte_be32_t __be32; | ||
| 62 | -typedef rte_be64_t __be64; | ||
| 63 | +#ifndef __be16 | ||
| 64 | +#define __be16 rte_be16_t | ||
| 65 | +#endif | ||
| 66 | +#ifndef __be32 | ||
| 67 | +#define __be32 rte_be32_t | ||
| 68 | +#endif | ||
| 69 | +#ifndef __be64 | ||
| 70 | +#define __be64 rte_be64_t | ||
| 71 | +#endif | ||
| 72 | |||
| 73 | -typedef rte_le16_t __le16; | ||
| 74 | -typedef rte_le32_t __le32; | ||
| 75 | -typedef rte_le64_t __le64; | ||
| 76 | +#ifndef __le16 | ||
| 77 | +#define __le16 rte_le16_t | ||
| 78 | +#endif | ||
| 79 | +#ifndef __le32 | ||
| 80 | +#define __le32 rte_le32_t | ||
| 81 | +#endif | ||
| 82 | +#ifndef __le64 | ||
| 83 | +#define __le64 rte_le64_t | ||
| 84 | +#endif | ||
| 85 | |||
| 86 | -typedef rte_iova_t dma_addr_t; | ||
| 87 | +#ifndef dma_addr_t | ||
| 88 | +#define dma_addr_t rte_iova_t | ||
| 89 | +#endif | ||
| 90 | |||
| 91 | #define ETH_MIN_MTU RTE_ETHER_MIN_MTU | ||
| 92 | #define ETH_ALEN RTE_ETHER_ADDR_LEN | ||
| 93 | -- | ||
| 94 | cgit v1.2.3 | ||
| 95 | |||
diff --git a/recipes-extended/dpdk/dpdk/0001-net-ionic-fix-build-with-Fedora.patch b/recipes-extended/dpdk/dpdk/0001-net-ionic-fix-build-with-Fedora.patch new file mode 100644 index 0000000..ce9a762 --- /dev/null +++ b/recipes-extended/dpdk/dpdk/0001-net-ionic-fix-build-with-Fedora.patch | |||
| @@ -0,0 +1,65 @@ | |||
| 1 | From 45d48356e552d661885e1c29613891c11cd8ff4a Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Timothy Redaelli <tredaelli@redhat.com> | ||
| 3 | Date: Thu, 24 Oct 2024 11:30:06 +0200 | ||
| 4 | Subject: net/ionic: fix build with Fedora Rawhide | ||
| 5 | |||
| 6 | Currently, a number of integer types are typedef'd to their corresponding | ||
| 7 | userspace or RTE values. This can be problematic if these types are | ||
| 8 | already defined somewhere else, as it would cause type collisions. | ||
| 9 | This patch changes the typedefs to #define macros which are only defined | ||
| 10 | if the types are not defined already. | ||
| 11 | |||
| 12 | Fixes: 5ef518098ec6 ("net/ionic: register and initialize adapter") | ||
| 13 | |||
| 14 | Upstream-Status: Backport [https://git.dpdk.org/dpdk-stable/patch/?id=45d48356e552d661885e1c29613891c11cd8ff4a] | ||
| 15 | |||
| 16 | Signed-off-by: Timothy Redaelli <tredaelli@redhat.com> | ||
| 17 | Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com> | ||
| 18 | --- | ||
| 19 | drivers/net/ionic/ionic_osdep.h | 30 ++++++++++++++++++++++-------- | ||
| 20 | 1 file changed, 22 insertions(+), 8 deletions(-) | ||
| 21 | |||
| 22 | diff --git a/drivers/net/ionic/ionic_osdep.h b/drivers/net/ionic/ionic_osdep.h | ||
| 23 | index 68f767b920..97188dfd59 100644 | ||
| 24 | --- a/drivers/net/ionic/ionic_osdep.h | ||
| 25 | +++ b/drivers/net/ionic/ionic_osdep.h | ||
| 26 | @@ -30,14 +30,28 @@ | ||
| 27 | |||
| 28 | #define __iomem | ||
| 29 | |||
| 30 | -typedef uint8_t u8; | ||
| 31 | -typedef uint16_t u16; | ||
| 32 | -typedef uint32_t u32; | ||
| 33 | -typedef uint64_t u64; | ||
| 34 | - | ||
| 35 | -typedef uint16_t __le16; | ||
| 36 | -typedef uint32_t __le32; | ||
| 37 | -typedef uint64_t __le64; | ||
| 38 | +#ifndef u8 | ||
| 39 | +#define u8 uint8_t | ||
| 40 | +#endif | ||
| 41 | +#ifndef u16 | ||
| 42 | +#define u16 uint16_t | ||
| 43 | +#endif | ||
| 44 | +#ifndef u32 | ||
| 45 | +#define u32 uint32_t | ||
| 46 | +#endif | ||
| 47 | +#ifndef u64 | ||
| 48 | +#define u64 uint64_t | ||
| 49 | +#endif | ||
| 50 | + | ||
| 51 | +#ifndef __le16 | ||
| 52 | +#define __le16 rte_le16_t | ||
| 53 | +#endif | ||
| 54 | +#ifndef __le32 | ||
| 55 | +#define __le32 rte_le32_t | ||
| 56 | +#endif | ||
| 57 | +#ifndef __le64 | ||
| 58 | +#define __le64 rte_le64_t | ||
| 59 | +#endif | ||
| 60 | |||
| 61 | #define ioread8(reg) rte_read8(reg) | ||
| 62 | #define ioread32(reg) rte_read32(rte_le_to_cpu_32(reg)) | ||
| 63 | -- | ||
| 64 | cgit v1.2.3 | ||
| 65 | |||
diff --git a/recipes-extended/dpdk/dpdk_23.11.1.bb b/recipes-extended/dpdk/dpdk_23.11.1.bb index e7a0a23..b505d55 100644 --- a/recipes-extended/dpdk/dpdk_23.11.1.bb +++ b/recipes-extended/dpdk/dpdk_23.11.1.bb | |||
| @@ -1,6 +1,8 @@ | |||
| 1 | include dpdk.inc | 1 | include dpdk.inc |
| 2 | 2 | ||
| 3 | SRC_URI += " file://0001-config-meson-get-cpu_instruction_set-from-meson-opti.patch " | 3 | SRC_URI += " file://0001-config-meson-get-cpu_instruction_set-from-meson-opti.patch \ |
| 4 | file://0001-net-ionic-fix-build-with-Fedora.patch \ | ||
| 5 | file://0001-net-gve-base-fix-build-with-Fedora.patch" | ||
| 4 | 6 | ||
| 5 | STABLE = "-stable" | 7 | STABLE = "-stable" |
| 6 | BRANCH = "23.11" | 8 | BRANCH = "23.11" |
