summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXiangyu Chen <xiangyu.chen@windriver.com>2025-02-12 09:45:40 +0800
committerAnuj Mittal <anuj.mittal@intel.com>2025-02-13 23:27:14 +0800
commit4f5ff4c3c86c90d9a2da787740be6b8b8b4de821 (patch)
tree80838265d939049c5b13f3b93d1c80613d86d6c5
parentbecaf7c1823e27bc2818ab2f81e52c542d04a48c (diff)
downloadmeta-dpdk-4f5ff4c3c86c90d9a2da787740be6b8b8b4de821.tar.gz
dpdk: backport patches to fix build
Currently, a number of integer types are typedef'd to their corresponding userspace or RTE values. This can be problematic if these types are already defined somewhere else, as it would cause type collisions. The error like this: gve_osdep.h:45:20: error: conflicting types for '__le64'; have 'rte_le64_t' {aka 'long unsigned int'} | 45 | typedef rte_le64_t __le64; | | ^~~~~~ | .... recipe-sysroot/usr/include/linux/types.h:35:25: note: previous declaration of '__le64' with type '__le64' {aka 'long long unsigned int'} | 35 | typedef __u64 __bitwise __le64; The upstream has already fixed, backport them to 23.11.x. Signed-off-by: Xiangyu Chen <xiangyu.chen@windriver.com> Signed-off-by: Anuj Mittal <anuj.mittal@intel.com>
-rw-r--r--recipes-extended/dpdk/dpdk/0001-net-gve-base-fix-build-with-Fedora.patch95
-rw-r--r--recipes-extended/dpdk/dpdk/0001-net-ionic-fix-build-with-Fedora.patch65
-rw-r--r--recipes-extended/dpdk/dpdk_23.11.1.bb4
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 @@
1From f0d9e787747dda0715654da9f0501f54fe105868 Mon Sep 17 00:00:00 2001
2From: Joshua Washington <joshwash@google.com>
3Date: Thu, 17 Oct 2024 16:42:33 -0700
4Subject: net/gve/base: fix build with Fedora Rawhide
5
6Currently, a number of integer types are typedef'd to their corresponding
7userspace or RTE values. This can be problematic if these types are
8already defined somewhere else, as it would cause type collisions.
9This patch changes the typedefs to #define macros which are only defined
10if the types are not defined already.
11
12Note: this was reported by OBS CI on 2024/10/17, when compiling DPDK
13in Fedora Rawhide.
14
15Fixes: c9ba2caf6302 ("net/gve/base: add OS-specific implementation")
16Fixes: abf1242fbb84 ("net/gve: add struct members and typedefs for DQO")
17Cc: stable@dpdk.org
18
19Upstream-Status: Backport [https://git.dpdk.org/dpdk/commit/?id=f0d9e787747dda0715654da9f0501f54fe105868]
20
21Reported-by: David Marchand <david.marchand@redhat.com>
22Signed-off-by: Joshua Washington <joshwash@google.com>
23Signed-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
30diff --git a/drivers/net/gve/base/gve_osdep.h b/drivers/net/gve/base/gve_osdep.h
31index 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--
94cgit 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 @@
1From 45d48356e552d661885e1c29613891c11cd8ff4a Mon Sep 17 00:00:00 2001
2From: Timothy Redaelli <tredaelli@redhat.com>
3Date: Thu, 24 Oct 2024 11:30:06 +0200
4Subject: net/ionic: fix build with Fedora Rawhide
5
6Currently, a number of integer types are typedef'd to their corresponding
7userspace or RTE values. This can be problematic if these types are
8already defined somewhere else, as it would cause type collisions.
9This patch changes the typedefs to #define macros which are only defined
10if the types are not defined already.
11
12Fixes: 5ef518098ec6 ("net/ionic: register and initialize adapter")
13
14Upstream-Status: Backport [https://git.dpdk.org/dpdk-stable/patch/?id=45d48356e552d661885e1c29613891c11cd8ff4a]
15
16Signed-off-by: Timothy Redaelli <tredaelli@redhat.com>
17Signed-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
22diff --git a/drivers/net/ionic/ionic_osdep.h b/drivers/net/ionic/ionic_osdep.h
23index 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--
64cgit 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 @@
1include dpdk.inc 1include dpdk.inc
2 2
3SRC_URI += " file://0001-config-meson-get-cpu_instruction_set-from-meson-opti.patch " 3SRC_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
5STABLE = "-stable" 7STABLE = "-stable"
6BRANCH = "23.11" 8BRANCH = "23.11"