diff options
author | Xiangyu Chen <xiangyu.chen@windriver.com> | 2025-02-12 09:45:40 +0800 |
---|---|---|
committer | Anuj Mittal <anuj.mittal@intel.com> | 2025-02-13 23:27:14 +0800 |
commit | 4f5ff4c3c86c90d9a2da787740be6b8b8b4de821 (patch) | |
tree | 80838265d939049c5b13f3b93d1c80613d86d6c5 | |
parent | becaf7c1823e27bc2818ab2f81e52c542d04a48c (diff) | |
download | meta-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>
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" |