xdp-tools - Library and utilities for use with XDP.

It also provides libxdp library.

https://github.com/xdp-project/xdp-tools

Signed-off-by: Naveen Saini <[email protected]>
---
 conf/layer.conf                               |  5 ++
 ...0001-configure-skip-toolchain-checks.patch | 46 +++++++++++++++++++
 ...-not-detect-libbpf-header-from-sysro.patch | 44 ++++++++++++++++++
 .../0003-Makefile-fix-KeyError-failure.patch  | 31 +++++++++++++
 .../0004-Makefile-fix-libxdp.pc-error.patch   | 34 ++++++++++++++
 .../xdp-tools/xdp-tools_1.2.8.bb              | 39 ++++++++++++++++
 6 files changed, 199 insertions(+)
 create mode 100644 
dynamic-layers/clang-layer/recipes-support/xdp-tools/xdp-tools/0001-configure-skip-toolchain-checks.patch
 create mode 100644 
dynamic-layers/clang-layer/recipes-support/xdp-tools/xdp-tools/0002-Makefile-It-does-not-detect-libbpf-header-from-sysro.patch
 create mode 100644 
dynamic-layers/clang-layer/recipes-support/xdp-tools/xdp-tools/0003-Makefile-fix-KeyError-failure.patch
 create mode 100644 
dynamic-layers/clang-layer/recipes-support/xdp-tools/xdp-tools/0004-Makefile-fix-libxdp.pc-error.patch
 create mode 100644 
dynamic-layers/clang-layer/recipes-support/xdp-tools/xdp-tools_1.2.8.bb

diff --git a/conf/layer.conf b/conf/layer.conf
index 9bef296..45e5bd9 100644
--- a/conf/layer.conf
+++ b/conf/layer.conf
@@ -15,3 +15,8 @@ LAYERDEPENDS_dpdk = "core"
 # cause compatibility issues with other layers
 LAYERVERSION_dpdk = "1"
 LAYERSERIES_COMPAT_dpdk = "kirkstone langdale"
+
+BBFILES_DYNAMIC += " \
+    clang-layer:${LAYERDIR}/dynamic-layers/clang-layer/*/*/*.bb \
+    clang-layer:${LAYERDIR}/dynamic-layers/clang-layer/*/*/*.bbappend \
+"
diff --git 
a/dynamic-layers/clang-layer/recipes-support/xdp-tools/xdp-tools/0001-configure-skip-toolchain-checks.patch
 
b/dynamic-layers/clang-layer/recipes-support/xdp-tools/xdp-tools/0001-configure-skip-toolchain-checks.patch
new file mode 100644
index 0000000..32a88b2
--- /dev/null
+++ 
b/dynamic-layers/clang-layer/recipes-support/xdp-tools/xdp-tools/0001-configure-skip-toolchain-checks.patch
@@ -0,0 +1,46 @@
+From 53f8a8dffa571de99b50f1a7b757cfd7d8c24d21 Mon Sep 17 00:00:00 2001
+From: Naveen Saini <[email protected]>
+Date: Mon, 17 Oct 2022 15:44:16 +0800
+Subject: [PATCH 1/4] configure: skip toolchain checks
+
+Current logic fetch full command line along with the tool. i.e
+gcc -m64 -march=skylake -mtune=generic ...
+
+Which throws ERROR: Cannot find tool -m64
+
+So need to re-write for loop, so it can work in cross-compilation
+environment too.
+
+Upstream-Status: Inappropriate
+
+Signed-off-by: Naveen Saini <[email protected]>
+---
+ configure | 12 ++++++------
+ 1 file changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/configure b/configure
+index 70fdfdf..48d1ea5 100755
+--- a/configure
++++ b/configure
+@@ -38,12 +38,12 @@ check_toolchain()
+     : ${EMACS=emacs}
+     : ${ARCH_INCLUDES=}
+ 
+-    for TOOL in $PKG_CONFIG $CC $LD $OBJCOPY $CLANG $LLC $M4; do
+-        if [ ! $(command -v ${TOOL} 2>/dev/null) ]; then
+-            echo "*** ERROR: Cannot find tool ${TOOL}" ;
+-            exit 1;
+-        fi;
+-    done
++    #for TOOL in $PKG_CONFIG $CC $LD $OBJCOPY $CLANG $LLC $M4; do
++    #    if [ ! $(command -v ${TOOL} 2>/dev/null) ]; then
++    #        echo "*** ERROR: Cannot find tool ${TOOL}" ;
++    #        exit 1;
++    #    fi;
++    #done
+ 
+     clang_version=$($CLANG --version | grep -Po '(?<=clang version 
)[[:digit:]]+')
+     echo "Found clang binary '$CLANG' with version $clang_version (from 
'$($CLANG --version | head -n 1)')"
+-- 
+2.25.1
+
diff --git 
a/dynamic-layers/clang-layer/recipes-support/xdp-tools/xdp-tools/0002-Makefile-It-does-not-detect-libbpf-header-from-sysro.patch
 
b/dynamic-layers/clang-layer/recipes-support/xdp-tools/xdp-tools/0002-Makefile-It-does-not-detect-libbpf-header-from-sysro.patch
new file mode 100644
index 0000000..2e66783
--- /dev/null
+++ 
b/dynamic-layers/clang-layer/recipes-support/xdp-tools/xdp-tools/0002-Makefile-It-does-not-detect-libbpf-header-from-sysro.patch
@@ -0,0 +1,44 @@
+From 2840cf0b89497f545fae2eed7ece3f3c5fc558e3 Mon Sep 17 00:00:00 2001
+From: Naveen Saini <[email protected]>
+Date: Mon, 17 Oct 2022 15:50:34 +0800
+Subject: [PATCH 2/4] Makefile: It does not detect libbpf header from sysroot
+
+So adding sysroot headers path.
+
+Upstream-Status: OE-Specific
+
+Signed-off-by: Naveen Saini <[email protected]>
+---
+ lib/common.mk       | 2 +-
+ lib/libxdp/Makefile | 2 +-
+ 2 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/lib/common.mk b/lib/common.mk
+index 56c0406..ab0bad8 100644
+--- a/lib/common.mk
++++ b/lib/common.mk
+@@ -55,7 +55,7 @@ LIBXDP_SOURCES := $(wildcard $(LIBXDP_DIR)/*.[ch] 
$(LIBXDP_DIR)/*.in)
+ KERN_USER_H ?= $(wildcard common_kern_user.h)
+ 
+ CFLAGS += -I$(HEADER_DIR) -I$(LIB_DIR)/util $(ARCH_INCLUDES)
+-BPF_CFLAGS += -I$(HEADER_DIR) $(ARCH_INCLUDES)
++BPF_CFLAGS += -I$(HEADER_DIR) $(ARCH_INCLUDES) -I${STAGING_INCDIR}/
+ 
+ BPF_HEADERS := $(wildcard $(HEADER_DIR)/bpf/*.h) $(wildcard 
$(HEADER_DIR)/xdp/*.h)
+ 
+diff --git a/lib/libxdp/Makefile b/lib/libxdp/Makefile
+index 358b751..8f459d8 100644
+--- a/lib/libxdp/Makefile
++++ b/lib/libxdp/Makefile
+@@ -30,7 +30,7 @@ PC_FILE := $(OBJDIR)/libxdp.pc
+ TEMPLATED_SOURCES := xdp-dispatcher.c
+ 
+ CFLAGS += -I$(HEADER_DIR)
+-BPF_CFLAGS += -I$(HEADER_DIR)
++BPF_CFLAGS += -I$(HEADER_DIR) -I${STAGING_INCDIR}/
+ 
+ 
+ ifndef BUILD_STATIC_ONLY
+-- 
+2.25.1
+
diff --git 
a/dynamic-layers/clang-layer/recipes-support/xdp-tools/xdp-tools/0003-Makefile-fix-KeyError-failure.patch
 
b/dynamic-layers/clang-layer/recipes-support/xdp-tools/xdp-tools/0003-Makefile-fix-KeyError-failure.patch
new file mode 100644
index 0000000..41c57f6
--- /dev/null
+++ 
b/dynamic-layers/clang-layer/recipes-support/xdp-tools/xdp-tools/0003-Makefile-fix-KeyError-failure.patch
@@ -0,0 +1,31 @@
+From 157546fbc4f18751c52b3c8788879c05cf253331 Mon Sep 17 00:00:00 2001
+From: Naveen Saini <[email protected]>
+Date: Mon, 17 Oct 2022 16:02:46 +0800
+Subject: [PATCH 3/4] Makefile: fix KeyError failure
+
+Error:
+Exception: KeyError: 'getpwuid(): uid not found: 11857215'
+
+Upstream-Status: Inappropriate
+
+Signed-off-by: Naveen Saini <[email protected]>
+---
+ lib/libxdp/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/lib/libxdp/Makefile b/lib/libxdp/Makefile
+index 8f459d8..9a340a3 100644
+--- a/lib/libxdp/Makefile
++++ b/lib/libxdp/Makefile
+@@ -55,7 +55,7 @@ install: all
+       $(Q)install -d -m 0755 $(DESTDIR)$(BPF_OBJECT_DIR)
+       $(Q)install -m 0644 $(LIB_HEADERS) $(DESTDIR)$(HDRDIR)/
+       $(Q)install -m 0644 $(PC_FILE) $(DESTDIR)$(LIBDIR)/pkgconfig/
+-      $(Q)cp -fpR $(SHARED_LIBS) $(STATIC_LIBS) $(DESTDIR)$(LIBDIR)
++      $(Q)cp -fpR --no-preserve=ownership $(SHARED_LIBS) $(STATIC_LIBS) 
$(DESTDIR)$(LIBDIR)
+       $(Q)install -m 0755 $(XDP_OBJS) $(DESTDIR)$(BPF_OBJECT_DIR)
+       $(if $(MAN_FILES),$(Q)install -m 0755 -d $(DESTDIR)$(MANDIR)/man3)
+       $(if $(MAN_FILES),$(Q)install -m 0644 $(MAN_FILES) 
$(DESTDIR)$(MANDIR)/man3)
+-- 
+2.25.1
+
diff --git 
a/dynamic-layers/clang-layer/recipes-support/xdp-tools/xdp-tools/0004-Makefile-fix-libxdp.pc-error.patch
 
b/dynamic-layers/clang-layer/recipes-support/xdp-tools/xdp-tools/0004-Makefile-fix-libxdp.pc-error.patch
new file mode 100644
index 0000000..b1e15e5
--- /dev/null
+++ 
b/dynamic-layers/clang-layer/recipes-support/xdp-tools/xdp-tools/0004-Makefile-fix-libxdp.pc-error.patch
@@ -0,0 +1,34 @@
+From 46b3ff797135574aa0ee42f633a281d44f48da95 Mon Sep 17 00:00:00 2001
+From: Naveen Saini <[email protected]>
+Date: Mon, 17 Oct 2022 16:05:15 +0800
+Subject: [PATCH 4/4] Makefile: fix libxdp.pc error
+
+Error:
+do_populate_sysroot: QA Issue: libxdp.pc failed sanity test (tmpdir) in
+path ... xdp-tools/1.2.8-r0/sysroot-destdir/usr/lib/pkgconfig [pkgconfig]
+
+Upstream-Status: Inappropriate
+
+Signed-off-by: Naveen Saini <[email protected]>
+---
+ lib/libxdp/Makefile | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/lib/libxdp/Makefile b/lib/libxdp/Makefile
+index 9a340a3..bc39177 100644
+--- a/lib/libxdp/Makefile
++++ b/lib/libxdp/Makefile
+@@ -76,8 +76,8 @@ $(OBJDIR)/libxdp.so.$(LIBXDP_VERSION): $(SHARED_OBJS)
+                     $^ $(LDFLAGS) $(LDLIBS) -o $@
+ 
+ $(OBJDIR)/libxdp.pc:
+-      $(Q)sed -e "s|@PREFIX@|$(PREFIX)|" \
+-                      -e "s|@LIBDIR@|$(LIBDIR)|" \
++      $(Q)sed -e "s|@PREFIX@|$(prefix)|" \
++                      -e "s|@LIBDIR@|$(libdir)|" \
+                       -e "s|@VERSION@|$(TOOLS_VERSION)|" \
+                       < libxdp.pc.template > $@
+ 
+-- 
+2.25.1
+
diff --git 
a/dynamic-layers/clang-layer/recipes-support/xdp-tools/xdp-tools_1.2.8.bb 
b/dynamic-layers/clang-layer/recipes-support/xdp-tools/xdp-tools_1.2.8.bb
new file mode 100644
index 0000000..6744554
--- /dev/null
+++ b/dynamic-layers/clang-layer/recipes-support/xdp-tools/xdp-tools_1.2.8.bb
@@ -0,0 +1,39 @@
+SUMMARY = "Utilities and example programs for use with XDP"
+HOMEPAGE = "https://github.com/xdp-project/xdp-tools";
+LICENSE = "GPL-2.0-or-later & LGPL-2.1-or-later & BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=9ee53f8d06bbdb4c11b1557ecc4f8cd5 \
+                    
file://LICENSES/GPL-2.0;md5=994331978b428511800bfbd17eea3001 \
+                    
file://LICENSES/LGPL-2.1;md5=b370887980db5dd40659b50909238dbd \
+                    
file://LICENSES/BSD-2-Clause;md5=5d6306d1b08f8df623178dfd81880927"
+
+DEPENDS += " libbpf clang-native zlib elfutils libpcap"
+
+SRC_URI = 
"git://github.com/xdp-project/xdp-tools.git;branch=v1.2;protocol=https \
+            file://0001-configure-skip-toolchain-checks.patch \
+            
file://0002-Makefile-It-does-not-detect-libbpf-header-from-sysro.patch \
+            file://0003-Makefile-fix-KeyError-failure.patch \
+            file://0004-Makefile-fix-libxdp.pc-error.patch \
+          "
+
+SRCREV = "d4ff1f9bcf8b03556b625ab6e16958598482e861"
+
+S = "${WORKDIR}/git"
+
+inherit pkgconfig
+
+EXTRA_OEMAKE += "PREFIX=${D}${prefix}"
+
+export STAGING_INCDIR
+
+do_configure:prepend () {
+    export DYNAMIC_LIBXDP=1
+}
+
+do_install () {
+    oe_runmake install
+
+    # Remove object files *.o
+    rm -rf ${D}/${libdir}/bpf
+}
+
+RDEPENDS:${PN} += "bash"
-- 
2.37.3

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#7699): 
https://lists.yoctoproject.org/g/meta-intel/message/7699
Mute This Topic: https://lists.yoctoproject.org/mt/94467875/21656
Group Owner: [email protected]
Unsubscribe: https://lists.yoctoproject.org/g/meta-intel/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to