- Fix build on aarch64 with gcc14:
* 0001-examples-vm_power_manager-add-missing-header.patch OBS-URL: https://build.opensuse.org/package/show/network/dpdk?expand=0&rev=166
This commit is contained in:
commit
c725c76ee2
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
## Default LFS
|
||||
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||
*.png filter=lfs diff=lfs merge=lfs -text
|
||||
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||
*.zst filter=lfs diff=lfs merge=lfs -text
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
.osc
|
32
0001-examples-vm_power_manager-add-missing-header.patch
Normal file
32
0001-examples-vm_power_manager-add-missing-header.patch
Normal file
@ -0,0 +1,32 @@
|
||||
From a351bb62c81223c8e4727484ae54766ca8a6926f Mon Sep 17 00:00:00 2001
|
||||
From: Guillaume Gardet <Guillaume.Gardet@arm.com>
|
||||
Date: Thu, 29 Aug 2024 16:33:19 +0200
|
||||
Subject: [PATCH] examples/vm_power_manager: add missing header
|
||||
|
||||
strtol is defined in stdlib.h
|
||||
|
||||
Bugzilla ID: 1530
|
||||
|
||||
Signed-off-by: Guillaume Gardet <guillaume.gardet@arm.com>
|
||||
|
||||
EDIT: drop .mailmap part for backport
|
||||
---
|
||||
.mailmap | 1 +
|
||||
examples/vm_power_manager/guest_cli/vm_power_cli_guest.c | 1 +
|
||||
2 files changed, 2 insertions(+)
|
||||
|
||||
diff --git a/examples/vm_power_manager/guest_cli/vm_power_cli_guest.c b/examples/vm_power_manager/guest_cli/vm_power_cli_guest.c
|
||||
index 5eddb47847..c153a1f8e0 100644
|
||||
--- a/examples/vm_power_manager/guest_cli/vm_power_cli_guest.c
|
||||
+++ b/examples/vm_power_manager/guest_cli/vm_power_cli_guest.c
|
||||
@@ -6,6 +6,7 @@
|
||||
#include <stdint.h>
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
+#include <stdlib.h>
|
||||
#include <termios.h>
|
||||
|
||||
#include <cmdline_rdline.h>
|
||||
--
|
||||
2.46.0
|
||||
|
69
0001-fix-cpu-compatibility.patch
Normal file
69
0001-fix-cpu-compatibility.patch
Normal file
@ -0,0 +1,69 @@
|
||||
From e2950fec9cd9c235a7847ed97b6914174857bf93 Mon Sep 17 00:00:00 2001
|
||||
From: "mvarlese@suse.de" <mvarlese@suse.de>
|
||||
Date: Wed, 29 Apr 2020 12:24:16 +0200
|
||||
Subject: [PATCH] fix cpu compatibility
|
||||
|
||||
Added 0001-fix-cpu-compatibility.patch to address issue with older CPUs (bsc#1125961, bsc#1099474)
|
||||
|
||||
Updated 2024-08-26 for version 23.11
|
||||
|
||||
diff --git a/drivers/bus/vdev/vdev.c b/drivers/bus/vdev/vdev.c
|
||||
index 7974b27295..25eec8bf6e 100644
|
||||
--- a/drivers/bus/vdev/vdev.c
|
||||
+++ b/drivers/bus/vdev/vdev.c
|
||||
@@ -51,7 +51,11 @@ static struct vdev_custom_scans vdev_custom_scans =
|
||||
static rte_spinlock_t vdev_custom_scan_lock = RTE_SPINLOCK_INITIALIZER;
|
||||
|
||||
/* register a driver */
|
||||
-void
|
||||
+#if defined(__x86_64__) || defined(__i386__)
|
||||
+void __attribute__((target ("sse2")))
|
||||
+#else
|
||||
+ void
|
||||
+#endif
|
||||
rte_vdev_register(struct rte_vdev_driver *driver)
|
||||
{
|
||||
TAILQ_INSERT_TAIL(&vdev_driver_list, driver, next);
|
||||
diff --git a/lib/eal/common/eal_common_bus.c b/lib/eal/common/eal_common_bus.c
|
||||
index acac14131a..a19f5e5431 100644
|
||||
--- a/lib/eal/common/eal_common_bus.c
|
||||
+++ b/lib/eal/common/eal_common_bus.c
|
||||
@@ -22,7 +22,11 @@ rte_bus_name(const struct rte_bus *bus)
|
||||
return bus->name;
|
||||
}
|
||||
|
||||
-void
|
||||
+#if defined(__x86_64__) || defined(__i386__)
|
||||
+void __attribute__((target ("sse2")))
|
||||
+#else
|
||||
+ void
|
||||
+#endif
|
||||
rte_bus_register(struct rte_bus *bus)
|
||||
{
|
||||
RTE_VERIFY(bus);
|
||||
diff --git a/lib/eal/include/rte_common.h b/lib/eal/include/rte_common.h
|
||||
index c1ba32d00e..525a575c08 100644
|
||||
--- a/lib/eal/include/rte_common.h
|
||||
+++ b/lib/eal/include/rte_common.h
|
||||
@@ -208,8 +208,20 @@ typedef uint16_t unaligned_uint16_t;
|
||||
*/
|
||||
#ifndef RTE_INIT_PRIO /* Allow to override from EAL */
|
||||
#ifndef RTE_TOOLCHAIN_MSVC
|
||||
+#if defined(__x86_64__) || defined(__i386__)
|
||||
#define RTE_INIT_PRIO(func, prio) \
|
||||
-static void __attribute__((constructor(RTE_PRIO(prio)), used)) func(void)
|
||||
+static void \
|
||||
+ __attribute__((constructor(RTE_PRIO(prio)), used)) \
|
||||
+ __attribute__((target ("sse2"))) \
|
||||
+ __attribute__((target ("no-sse3"))) \
|
||||
+ __attribute__((target ("no-sse4"))) \
|
||||
+ func(void)
|
||||
+#else
|
||||
+#define RTE_INIT_PRIO(func, prio) \
|
||||
+static void \
|
||||
+ __attribute__((constructor(RTE_PRIO(prio)), used)) \
|
||||
+ func(void)
|
||||
+#endif
|
||||
#else
|
||||
/* definition from the Microsoft CRT */
|
||||
typedef int(__cdecl *_PIFV)(void);
|
36
0002-SLE15-SP3-compatibility-patch-for-kni.patch
Normal file
36
0002-SLE15-SP3-compatibility-patch-for-kni.patch
Normal file
@ -0,0 +1,36 @@
|
||||
From 430a4b50f2f7e5f21c7c2f81849588c575018501 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Jaime=20Caama=C3=B1o=20Ruiz?= <jcaamano@suse.com>
|
||||
Date: Mon, 21 Sep 2020 14:50:13 +0200
|
||||
Subject: [PATCH] SLE15 SP3 compatibility patch for kni
|
||||
|
||||
Add patch to resolve build error reported in Staging:E project
|
||||
where a kernel backport (jsc#SLE-13536) introduced backward
|
||||
incompatible changes to the API that break kni module build
|
||||
* 0001-SLE15-SP3-compatibility-patch-for-kni.patch
|
||||
|
||||
Updated 2023-02-26 for version 22.11
|
||||
|
||||
diff --git a/kernel/linux/kni/compat.h b/kernel/linux/kni/compat.h
|
||||
index 3a86d12bbc..66d1afd944 100644
|
||||
--- a/kernel/linux/kni/compat.h
|
||||
+++ b/kernel/linux/kni/compat.h
|
||||
@@ -14,7 +14,10 @@
|
||||
#define SLE_VERSION(a, b, c) KERNEL_VERSION(a, b, c)
|
||||
#endif
|
||||
#ifdef CONFIG_SUSE_KERNEL
|
||||
-#if (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 57))
|
||||
+#if (defined(CONFIG_SUSE_VERSION) && CONFIG_SUSE_VERSION == 15 && \
|
||||
+ defined(CONFIG_SUSE_PATCHLEVEL) && CONFIG_SUSE_PATCHLEVEL == 3)
|
||||
+#define SLE_VERSION_CODE SLE_VERSION(15, 3, 0)
|
||||
+#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(4, 4, 57))
|
||||
/* SLES12SP3 is at least 4.4.57+ based */
|
||||
#define SLE_VERSION_CODE SLE_VERSION(12, 3, 0)
|
||||
#elif (LINUX_VERSION_CODE >= KERNEL_VERSION(3, 12, 28))
|
||||
@@ -132,6 +135,7 @@
|
||||
#endif
|
||||
|
||||
#if KERNEL_VERSION(5, 6, 0) <= LINUX_VERSION_CODE || \
|
||||
+ (SLE_VERSION_CODE && SLE_VERSION_CODE == SLE_VERSION(15, 3, 0)) || \
|
||||
(defined(RHEL_RELEASE_CODE) && \
|
||||
RHEL_RELEASE_VERSION(8, 3) <= RHEL_RELEASE_CODE) || \
|
||||
(defined(CONFIG_SUSE_KERNEL) && defined(HAVE_ARG_TX_QUEUE))
|
21
_constraints
Normal file
21
_constraints
Normal file
@ -0,0 +1,21 @@
|
||||
<?xml version="1.0"?>
|
||||
<constraints>
|
||||
<overwrite>
|
||||
<conditions>
|
||||
<arch>i586</arch>
|
||||
<arch>x86_64</arch>
|
||||
</conditions>
|
||||
<hardware>
|
||||
<cpu>
|
||||
<flag>mmx</flag>
|
||||
<flag>sse</flag>
|
||||
<flag>sse2</flag>
|
||||
<flag>ssse3</flag>
|
||||
<flag>sse4_2</flag>
|
||||
</cpu>
|
||||
<disk>
|
||||
<size unit="G">8</size>
|
||||
</disk>
|
||||
</hardware>
|
||||
</overwrite>
|
||||
</constraints>
|
3
_multibuild
Normal file
3
_multibuild
Normal file
@ -0,0 +1,3 @@
|
||||
<multibuild>
|
||||
<package>thunderx</package>
|
||||
</multibuild>
|
BIN
dpdk-22.11.1.tar.xz
(Stored with Git LFS)
Normal file
BIN
dpdk-22.11.1.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
3
dpdk-22.11.5.tar.xz
Normal file
3
dpdk-22.11.5.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:916805aee46246b81f71f831221231ef3de9c1f70223d179621980ec5d1bdf73
|
||||
size 15617920
|
3
dpdk-22.11.6.tar.xz
Normal file
3
dpdk-22.11.6.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b9291448ca0e6beebbafde99d9ba8376722d5e1482e79118b6328f69e9a8e9bf
|
||||
size 15626012
|
BIN
dpdk-23.11.1.tar.xz
(Stored with Git LFS)
Normal file
BIN
dpdk-23.11.1.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
2097
dpdk.changes
Normal file
2097
dpdk.changes
Normal file
File diff suppressed because it is too large
Load Diff
312
dpdk.spec
Normal file
312
dpdk.spec
Normal file
@ -0,0 +1,312 @@
|
||||
#
|
||||
# spec file for package dpdk
|
||||
#
|
||||
# Copyright (c) 2024 SUSE LLC
|
||||
#
|
||||
# All modifications and additions to the file contributed by third parties
|
||||
# remain the property of their copyright owners, unless otherwise agreed
|
||||
# upon. The license for this file, and modifications and additions to the
|
||||
# file, is the same license as for the pristine package itself (unless the
|
||||
# license for the pristine package is not an Open Source License, in which
|
||||
# case the license is the MIT License). An "Open Source License" is a
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
#
|
||||
# needssslcertforbuild
|
||||
|
||||
|
||||
%define flavor @BUILD_FLAVOR@%{nil}
|
||||
%define aarch64_machine armv8-a
|
||||
%define exclusive_arch aarch64 x86_64 ppc64le
|
||||
%define name_tag %{nil}
|
||||
%define summary_tag %{nil}
|
||||
%if "%{flavor}" == "thunderx"
|
||||
%define name_tag -thunderx
|
||||
%define summary_tag (thunderx)
|
||||
%define exclusive_arch aarch64
|
||||
%endif
|
||||
# http://doc.dpdk.org/guides-22.11/linux_gsg/build_dpdk.html#adjusting-build-options
|
||||
%define platform generic
|
||||
%define machine auto
|
||||
%ifarch aarch64
|
||||
%define machine %{aarch64_machine}
|
||||
%endif
|
||||
# This is in sync with <src>/ABI_VERSION
|
||||
# TODO: automate this sync
|
||||
%define maj 24
|
||||
%define min 0
|
||||
#%%define lname libdpdk-%%{maj}_%%{min}
|
||||
%define lname libdpdk-%{maj}
|
||||
# Add option to build without examples
|
||||
%bcond_without examples
|
||||
# Add option to build without tools
|
||||
%bcond_without tools
|
||||
#
|
||||
Name: dpdk%{name_tag}
|
||||
Version: 23.11.1
|
||||
Release: 0
|
||||
Summary: Set of libraries and drivers for fast packet processing
|
||||
License: BSD-3-Clause AND GPL-2.0-only AND LGPL-2.1-only
|
||||
Group: System/Libraries
|
||||
URL: https://www.dpdk.org/
|
||||
Source: https://fast.dpdk.org/rel/dpdk-%{version}.tar.xz
|
||||
# PATCH-FIX-OPENSUSE PATCH-FEATURE-UPSTREAM
|
||||
Patch0: 0001-fix-cpu-compatibility.patch
|
||||
# PATCH-FIX-UPSTREAM - https://bugs.dpdk.org/show_bug.cgi?id=1530
|
||||
Patch1: 0001-examples-vm_power_manager-add-missing-header.patch
|
||||
BuildRequires: binutils
|
||||
BuildRequires: doxygen
|
||||
BuildRequires: fdupes
|
||||
BuildRequires: kernel-syms
|
||||
BuildRequires: libfdt-devel
|
||||
BuildRequires: meson >= 0.53.2
|
||||
BuildRequires: modutils
|
||||
BuildRequires: patchelf
|
||||
BuildRequires: pesign-obs-integration
|
||||
BuildRequires: pkgconfig
|
||||
BuildRequires: python3
|
||||
BuildRequires: python3-Sphinx
|
||||
BuildRequires: python3-pyelftools >= 0.22
|
||||
BuildRequires: rdma-core-devel
|
||||
BuildRequires: pkgconfig(jansson)
|
||||
BuildRequires: pkgconfig(libcrypto)
|
||||
BuildRequires: pkgconfig(libelf)
|
||||
BuildRequires: pkgconfig(libmnl)
|
||||
BuildRequires: pkgconfig(libpcap)
|
||||
BuildRequires: pkgconfig(numa)
|
||||
BuildRequires: pkgconfig(zlib)
|
||||
Conflicts: dpdk-any
|
||||
Provides: dpdk-any = %{version}
|
||||
Obsoletes: dpdk-kmp-trace < %{version}
|
||||
ExclusiveArch: %{exclusive_arch}
|
||||
%if 0%{?suse_version} > 1500 || 0%{?sle_version} >= 150400
|
||||
# https://bugzilla.opensuse.org/show_bug.cgi?id=1196511
|
||||
BuildRequires: pkgconfig(libbpf)
|
||||
%endif
|
||||
|
||||
%description
|
||||
The Data Plane Development Kit is a set of libraries and drivers for
|
||||
fast packet processing in the user space.
|
||||
|
||||
%package devel
|
||||
Summary: Data Plane Development Kit development files %{summary_tag}
|
||||
Group: Development/Libraries/C and C++
|
||||
Requires: %{lname} = %{version}
|
||||
Conflicts: dpdk-any-devel
|
||||
Provides: dpdk-any-devel = %{version}
|
||||
|
||||
%description devel
|
||||
This package contains the headers and other files needed for developing
|
||||
applications with the Data Plane Development Kit.
|
||||
|
||||
%package devel-static
|
||||
Summary: Data Plane Development Kit static development files %{summary_tag}
|
||||
Group: Development/Libraries/C and C++
|
||||
Requires: %{name}-devel = %{version}
|
||||
|
||||
%description devel-static
|
||||
This package contains the static library files needed for developing
|
||||
applications with the Data Plane Development Kit.
|
||||
|
||||
%package -n %{lname}
|
||||
Summary: Data Plane Development Kit runtime libraries %{summary_tag}
|
||||
Group: Development/Libraries/C and C++
|
||||
Provides: %{lname}-any = %{version}
|
||||
|
||||
%description -n %{lname}
|
||||
This package contains the runtime libraries needed for 3rd party application
|
||||
to use the Data Plane Development Kit.
|
||||
|
||||
%package doc
|
||||
Summary: Data Plane Development Kit API documentation %{summary_tag}
|
||||
Group: System/Libraries
|
||||
Conflicts: dpdk-any-doc
|
||||
Provides: dpdk-any-doc = %{version}
|
||||
BuildArch: noarch
|
||||
|
||||
%description doc
|
||||
API programming documentation for the Data Plane Development Kit.
|
||||
|
||||
%if %{with tools}
|
||||
%package tools
|
||||
Summary: Tools for setting up Data Plane Development Kit environment %{summary_tag}
|
||||
Group: System/Libraries
|
||||
Requires: %{name} = %{version}
|
||||
Requires: findutils
|
||||
Requires: iproute
|
||||
Requires: kmod
|
||||
Requires: pciutils
|
||||
Conflicts: dpdk-any-tools
|
||||
Provides: dpdk-any-tools = %{version}
|
||||
|
||||
%description tools
|
||||
This package contains tools for setting up Data Plane Development Kit environment
|
||||
%endif
|
||||
|
||||
%if %{with examples}
|
||||
%package examples
|
||||
Summary: Data Plane Development Kit example applications %{summary_tag}
|
||||
Group: System/Libraries
|
||||
BuildRequires: libvirt-devel
|
||||
Conflicts: dpdk-any-examples
|
||||
Provides: dpdk-any-examples = %{version}
|
||||
|
||||
%description examples
|
||||
Example applications utilizing the Data Plane Development Kit, such
|
||||
as L2 and L3 forwarding.
|
||||
%endif
|
||||
|
||||
%define sdkdir %{_datadir}/dpdk
|
||||
%define docdir %{_docdir}/dpdk
|
||||
%define incdir %{_includedir}/dpdk
|
||||
%define pmddir %{_libdir}/dpdk-pmds-%{maj}.%{min}
|
||||
|
||||
%prep
|
||||
# can't use %%{name} because of dpdk-thunderx
|
||||
%setup -n dpdk-stable-%{version}
|
||||
%if 0%{?suse_version} > 1600
|
||||
%autopatch -p1
|
||||
%else
|
||||
# grr, no fs.copyfile() in the old meson in SLE (but it has old enough kernel).
|
||||
%autopatch -p1 -M 99
|
||||
%endif
|
||||
|
||||
# Skip not supported examples
|
||||
sed -i "/performance-thread/d" examples/meson.build
|
||||
|
||||
# Verify ABI
|
||||
[ "$(cat ABI_VERSION)" = "%{maj}.%{min}" ] || exit 1
|
||||
|
||||
%build
|
||||
%define _vpath_builddir "build-%{_target_cpu}-$flavor"
|
||||
|
||||
%ifarch x86_64
|
||||
export CFLAGS="%{optflags} -U_FORTIFY_SOURCE -msse4"
|
||||
%endif
|
||||
examples="all"
|
||||
for flavor in %{flavors_to_build}; do
|
||||
%meson --includedir=%{incdir} \
|
||||
-Ddefault_library=shared \
|
||||
-Denable_docs=true \
|
||||
-Db_lto=true \
|
||||
%if %{with examples}
|
||||
-Dexamples="$examples" \
|
||||
%endif
|
||||
-Dplatform="%{platform}" \
|
||||
-Dcpu_instruction_set=%{machine} \
|
||||
-Denable_kmods=true \
|
||||
-Ddrivers_install_subdir=%{pmddir} \
|
||||
-Dkernel_dir="%{_prefix}/src/linux-obj/%{_target_cpu}/$flavor"
|
||||
%meson_build
|
||||
# Make sure examples are only built once
|
||||
examples=""
|
||||
done
|
||||
|
||||
%install
|
||||
examples="%{?with_examples:all}"
|
||||
for flavor in %{flavors_to_build}; do
|
||||
%meson_install
|
||||
# Also install the example binaries
|
||||
if [ ! -z "$examples" ]; then
|
||||
for f in %{_vpath_builddir}/examples/dpdk-*; do
|
||||
bn=$(basename "$f")
|
||||
if [ -f "$f" ] ; then
|
||||
install -Dm 0755 ${f} "%{buildroot}%{_bindir}/${bn/dpdk-/dpdk_example_}"
|
||||
patchelf --remove-rpath "%{buildroot}%{_bindir}/${bn/dpdk-/dpdk_example_}"
|
||||
fi
|
||||
done
|
||||
fi
|
||||
examples=""
|
||||
done
|
||||
|
||||
# Fix documentation
|
||||
mkdir -p %{buildroot}%docdir
|
||||
mv %{buildroot}%{_datadir}/doc/dpdk %{buildroot}%docdir
|
||||
rm -r %{buildroot}/%docdir/dpdk/html/.doctrees
|
||||
# Fix man directory
|
||||
rm -r %{buildroot}%{_mandir}/man3/*
|
||||
|
||||
# driver .so files often depend upon the bus drivers for their connect bus,
|
||||
# e.g. ixgbe depends on librte_bus_pci. This means that the bus drivers need
|
||||
# to be in the library path, so symlink the drivers from the main lib directory
|
||||
# Fix broken symlink created by buildtools/symlink-drivers-solibs.sh
|
||||
for f in %{buildroot}/%{pmddir}/*.so.*; do
|
||||
bn=$(basename ${f})
|
||||
ln -s %{pmddir}/${bn} %{buildroot}%{_libdir}/${bn}
|
||||
done
|
||||
|
||||
%if ! %{with tools}
|
||||
# Remove tools if not needed
|
||||
for tool in dpdk-devbind.py dpdk-pmdinfo.py dpdk-telemetry.py dpdk-hugepages.py; do
|
||||
rm -rf "%{buildroot}%{_bindir}/$tool"
|
||||
done
|
||||
%else
|
||||
# Add compatibility symlink
|
||||
mkdir -p %{buildroot}%{_sbindir}
|
||||
ln -s %{_bindir}/dpdk-devbind.py %{buildroot}%{_sbindir}/dpdk_nic_bind
|
||||
%endif
|
||||
|
||||
# Fix interpreter
|
||||
%python3_fix_shebang
|
||||
%python3_fix_shebang_path %{buildroot}%{_datadir}/%{name}/examples/ipsec-secgw/test/*
|
||||
%python3_fix_shebang_path %{buildroot}%{_datadir}/%{name}/examples/pipeline/examples/*
|
||||
|
||||
# Remove duplicates
|
||||
%fdupes %{buildroot}/%docdir
|
||||
%fdupes %{buildroot}/%{sdkdir}/examples
|
||||
|
||||
# Fix broken symlink (yes with * in its name)
|
||||
rm -v "%{buildroot}%{_libdir}/librte_*.so*"
|
||||
|
||||
%post devel -p /sbin/ldconfig
|
||||
%postun devel -p /sbin/ldconfig
|
||||
%post -n %{lname} -p /sbin/ldconfig
|
||||
%postun -n %{lname} -p /sbin/ldconfig
|
||||
|
||||
%files
|
||||
%{_bindir}/dpdk-dumpcap
|
||||
%{_bindir}/dpdk-pdump
|
||||
%{_bindir}/dpdk-proc-info
|
||||
%{_bindir}/dpdk-test*
|
||||
%{_bindir}/dpdk-graph*
|
||||
|
||||
%files -n %{lname}
|
||||
%license license/gpl-2.0.txt license/lgpl-2.1.txt license/bsd-3-clause.txt
|
||||
%{_libdir}/*.so.*
|
||||
%dir %{pmddir}
|
||||
%{pmddir}/*.so.*
|
||||
|
||||
%files devel
|
||||
#BSD
|
||||
%{incdir}/
|
||||
%{sdkdir}/
|
||||
%{pmddir}/*.so
|
||||
%{_libdir}/*.so
|
||||
%{_libdir}/pkgconfig/libdpdk*.pc
|
||||
%if %{with examples}
|
||||
%exclude %{sdkdir}/examples/
|
||||
%endif
|
||||
|
||||
%files devel-static
|
||||
#BSD
|
||||
%{_libdir}/*.a
|
||||
|
||||
%files doc
|
||||
#BSD
|
||||
%doc %docdir
|
||||
|
||||
%if %{with tools}
|
||||
%files tools
|
||||
%{_sbindir}/dpdk_nic_bind
|
||||
%{_bindir}/dpdk-*.py
|
||||
%endif
|
||||
|
||||
%if %{with examples}
|
||||
%files examples
|
||||
%{_bindir}/dpdk_example_*
|
||||
%doc %{sdkdir}/examples
|
||||
%endif
|
||||
|
||||
%changelog
|
68
kni-fix-build-with-Linux-6.10.patch
Normal file
68
kni-fix-build-with-Linux-6.10.patch
Normal file
@ -0,0 +1,68 @@
|
||||
From: Jiri Slaby <jslaby@suse.cz>
|
||||
Date: Tue, 16 Jul 2024 10:40:26 +0200
|
||||
Subject: kni: fix build with Linux 6.10
|
||||
Patch-mainline: submitted to dev@dpdk.org, <20240716084414.115852-1-jslaby@suse.cz>
|
||||
References: kernel 6.10
|
||||
|
||||
6.10 removed the "support" (it was never supported [1]) of separate
|
||||
source and build dirs for out of tree modules.
|
||||
|
||||
KNI uses "src=" hack for that purpose.
|
||||
|
||||
Instead, copy sources to the build dir and don't rely upon the
|
||||
unsupported...
|
||||
|
||||
Intended esp. for stable/22.11. It should go wherever kni is still in
|
||||
the tree.
|
||||
|
||||
[1] https://lore.kernel.org/all/CAK7LNAQ47bZpE6c6Yoz-jQS78uU611oZwU8bH+7e=p5zSyADJw@mail.gmail.com/
|
||||
|
||||
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
|
||||
---
|
||||
kernel/linux/kni/meson.build | 11 +++++++----
|
||||
1 file changed, 7 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/kernel/linux/kni/meson.build b/kernel/linux/kni/meson.build
|
||||
index 4c90069e..39ca2ade 100644
|
||||
--- a/kernel/linux/kni/meson.build
|
||||
+++ b/kernel/linux/kni/meson.build
|
||||
@@ -11,8 +11,8 @@ if run_cmd.stdout().contains('txqueue') == true
|
||||
kmod_cflags = '-DHAVE_ARG_TX_QUEUE'
|
||||
endif
|
||||
|
||||
-
|
||||
-kni_mkfile = custom_target('rte_kni_makefile',
|
||||
+kni_deps = []
|
||||
+kni_deps += custom_target('rte_kni_makefile',
|
||||
output: 'Makefile',
|
||||
command: ['touch', '@OUTPUT@'])
|
||||
|
||||
@@ -22,12 +22,15 @@ kni_sources = files(
|
||||
'Kbuild',
|
||||
)
|
||||
|
||||
+foreach file : kni_sources
|
||||
+ kni_deps += fs.copyfile(file)
|
||||
+endforeach
|
||||
+
|
||||
custom_target('rte_kni',
|
||||
input: kni_sources,
|
||||
output: 'rte_kni.ko',
|
||||
command: ['make', '-j4', '-C', kernel_build_dir,
|
||||
'M=' + meson.current_build_dir(),
|
||||
- 'src=' + meson.current_source_dir(),
|
||||
' '.join(['MODULE_CFLAGS=', kmod_cflags,'-include '])
|
||||
+ dpdk_source_root + '/config/rte_config.h' +
|
||||
' -I' + dpdk_source_root + '/lib/eal/include' +
|
||||
@@ -35,7 +38,7 @@ custom_target('rte_kni',
|
||||
' -I' + dpdk_build_root +
|
||||
' -I' + meson.current_source_dir(),
|
||||
'modules'] + cross_args,
|
||||
- depends: kni_mkfile,
|
||||
+ depends: kni_deps,
|
||||
install: install,
|
||||
install_dir: kernel_install_dir,
|
||||
build_by_default: get_option('enable_kmods'))
|
||||
--
|
||||
2.45.2
|
||||
|
45
kni-fix-build-with-Linux-6.8.patch
Normal file
45
kni-fix-build-with-Linux-6.8.patch
Normal file
@ -0,0 +1,45 @@
|
||||
From: Jiri Slaby <jslaby@suse.cz>
|
||||
Date: Tue, 12 Mar 2024 09:49:14 +0100
|
||||
Subject: kni: fix build with Linux 6.8
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
Git-repo: git://dpdk.org/dpdk-stable
|
||||
Git-commit: 15658afda05f50e69805b891ebb4d2d5c1966d44
|
||||
Patch-mainline: yes
|
||||
References: kernel 6.8
|
||||
|
||||
strlcpy() was removed in commit d26270061ae6 (string: Remove strlcpy()), use
|
||||
strscpy() instead.
|
||||
|
||||
The patches fixes this:
|
||||
kernel/linux/kni/kni_net.c: In function ‘kni_get_drvinfo’:
|
||||
kernel/linux/kni/kni_net.c:835:9: error: implicit declaration of function ‘strlcpy’; did you mean ‘strscpy’?
|
||||
|
||||
Intended esp. for stable/22.11. It should go wherever kni is still in
|
||||
the tree.
|
||||
|
||||
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
|
||||
Acked-by: Luca Boccassi <bluca@debian.org>
|
||||
---
|
||||
kernel/linux/kni/kni_net.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/kernel/linux/kni/kni_net.c b/kernel/linux/kni/kni_net.c
|
||||
index 779ee345..c115a728 100644
|
||||
--- a/kernel/linux/kni/kni_net.c
|
||||
+++ b/kernel/linux/kni/kni_net.c
|
||||
@@ -832,8 +832,8 @@ static const struct net_device_ops kni_net_netdev_ops = {
|
||||
static void kni_get_drvinfo(struct net_device *dev,
|
||||
struct ethtool_drvinfo *info)
|
||||
{
|
||||
- strlcpy(info->version, KNI_VERSION, sizeof(info->version));
|
||||
- strlcpy(info->driver, "kni", sizeof(info->driver));
|
||||
+ strscpy(info->version, KNI_VERSION, sizeof(info->version));
|
||||
+ strscpy(info->driver, "kni", sizeof(info->driver));
|
||||
}
|
||||
|
||||
static const struct ethtool_ops kni_net_ethtool_ops = {
|
||||
--
|
||||
2.45.2
|
||||
|
Loading…
Reference in New Issue
Block a user