meta-dpdk/recipes-extended/dpdk/dpdk_23.11.1.bb
Xiangyu Chen 4f5ff4c3c8
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>
2025-02-13 23:27:14 +08:00

74 lines
1.8 KiB
BlitzBasic

include dpdk.inc
SRC_URI += " file://0001-config-meson-get-cpu_instruction_set-from-meson-opti.patch \
file://0001-net-ionic-fix-build-with-Fedora.patch \
file://0001-net-gve-base-fix-build-with-Fedora.patch"
STABLE = "-stable"
BRANCH = "23.11"
SRCREV = "a6ec5765cf83d3d58cbd6d4ed5b92b4a06f8a808"
S = "${WORKDIR}/git"
def get_cpu_instruction_set(bb, d):
import re
march = re.search(r'-march=([^\s]*)', d.getVar('CC'))
if march:
return march.group(1)
else:
return "core2"
EXTRA_OEMESON = " -Dexamples=all -Dcpu_instruction_set=${@get_cpu_instruction_set(bb, d)} "
COMPATIBLE_MACHINE = "null"
COMPATIBLE_HOST:libc-musl:class-target = "null"
COMPATIBLE_HOST:linux-gnux32 = "null"
PACKAGECONFIG ??= " "
PACKAGECONFIG[afxdp] = ",,libbpf xdp-tools"
PACKAGECONFIG[libvirt] = ",,libvirt"
RDEPENDS:${PN} += "pciutils python3-core"
RDEPENDS:${PN}-examples += "bash"
DEPENDS = "numactl python3-pyelftools-native"
inherit meson pkgconfig
INSTALL_PATH = "${prefix}/share/dpdk"
do_install:append(){
# remove source files
rm -rf ${D}/${INSTALL_PATH}/examples/*
# Install examples
install -m 0755 -d ${D}/${INSTALL_PATH}/examples/
for dirname in ${B}/examples/dpdk-*
do
if [ ! -d ${dirname} ] && [ -x ${dirname} ]; then
install -m 0755 ${dirname} ${D}/${INSTALL_PATH}/examples/
fi
done
}
PACKAGES =+ "${PN}-examples ${PN}-tools"
FILES:${PN} += " ${bindir}/dpdk-testpmd \
${bindir}/dpdk-proc-info \
${libdir}/*.so* \
${libdir}/dpdk/pmds-24.0/*.so* \
"
FILES:${PN}-examples = " \
${prefix}/share/dpdk/examples/* \
"
FILES:${PN}-tools = " \
${bindir}/dpdk-pdump \
${bindir}/dpdk-test \
${bindir}/dpdk-test-* \
${bindir}/dpdk-*.py \
"
CVE_PRODUCT = "data_plane_development_kit"
INSANE_SKIP:${PN} = "dev-so"