summaryrefslogtreecommitdiff
path: root/dev-libs/libbpf
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2020-08-25 10:45:55 +0100
committerV3n3RiX <venerix@redcorelinux.org>2020-08-25 10:45:55 +0100
commit3cf7c3ef441822c889356fd1812ebf2944a59851 (patch)
treec513fe68548b40365c1c2ebfe35c58ad431cdd77 /dev-libs/libbpf
parent05b8b0e0af1d72e51a3ee61522941bf7605cd01c (diff)
gentoo resync : 25.08.2020
Diffstat (limited to 'dev-libs/libbpf')
-rw-r--r--dev-libs/libbpf/Manifest7
-rw-r--r--dev-libs/libbpf/files/libbpf-0.0.9-fix-hashmap-on-lp32.patch49
-rw-r--r--dev-libs/libbpf/libbpf-0.0.9-r1.ebuild (renamed from dev-libs/libbpf/libbpf-0.0.9.ebuild)1
-rw-r--r--dev-libs/libbpf/libbpf-0.1.0-r1.ebuild53
-rw-r--r--dev-libs/libbpf/libbpf-9999.ebuild11
5 files changed, 114 insertions, 7 deletions
diff --git a/dev-libs/libbpf/Manifest b/dev-libs/libbpf/Manifest
index 8ac742ce2000..2f273a515ac2 100644
--- a/dev-libs/libbpf/Manifest
+++ b/dev-libs/libbpf/Manifest
@@ -1,13 +1,16 @@
AUX libbpf-0.0.5-paths.patch 997 BLAKE2B e84f5349131a1ab7f976e60baf74fa030b28214daca198db2a6d6b436bdf536aa89e58f39ab10a2cf9dbbf192a159cd1231b68dc3292396e1164950b1514de3d SHA512 47ccd456abf37cdf7e986633eb5a90c16963e5d99608f0c3dd6b035466a0ffe6769001d2bf448c2da88f6427fdac658f364b960a072949523a964ae01836add0
AUX libbpf-0.0.7-paths.patch 1020 BLAKE2B 6a194c3ecf8ec2600e50b02d231a282a489d3d283ac3e91d6d6cd788fb30881fe245aec073175a801f2f030bca03733a50bc31ed6cf4531ee5c364d19a19f590 SHA512 d8447688a4ea8cb8604882d6534c96309e407701627559c229b372e773c46ed9fe2b879677ebd70d30865b27debb18193173a8adb6e24305ecadcd8b57630e2d
+AUX libbpf-0.0.9-fix-hashmap-on-lp32.patch 1681 BLAKE2B 9728e6508da6703576d1bdf78dc17a6a2d8952c99a5b1c1bd2aef8a9712a8e29a127b1d2681837effe4a5f1653e68228b44819596dc49ca4970770208e5bf56b SHA512 6c0226e75612bf48297f2a363b8788931b283390c0a7e155b00fc6383ec943b06e28da29b6a43a1e3a76f4599000150a1b3eb352e44a892d07cf830afc32efab
AUX libbpf-9999-paths.patch 1020 BLAKE2B 6a194c3ecf8ec2600e50b02d231a282a489d3d283ac3e91d6d6cd788fb30881fe245aec073175a801f2f030bca03733a50bc31ed6cf4531ee5c364d19a19f590 SHA512 d8447688a4ea8cb8604882d6534c96309e407701627559c229b372e773c46ed9fe2b879677ebd70d30865b27debb18193173a8adb6e24305ecadcd8b57630e2d
DIST libbpf-0.0.6.tar.gz 213791 BLAKE2B 9f0a08cc7bae41f7fa93d5ba2f535f76ce47fe691efb6bac6257b88a5607deb62fa53f59984d83b6070ccd573c902899f7528b376d9acbfd77317659de6ab061 SHA512 1678133d9a2bd1cf13d4d1f9b83bb3f0642de91e3e3c8d785e2993257035573aff39b9a1a457e73d9c4c1c66b6a52544a8ad06ac560766d335428bb3fc421e71
DIST libbpf-0.0.7.tar.gz 262068 BLAKE2B e77ff25449274881ddb9d32f25cd6ad8988e4524102bd109049ee6cfce3e2753fd99ebe2a080f809a4c5422dbf6b17633e4b0cea156f289bf95b92f8375a273c SHA512 c2cbc869b7e11339deab3152a6e2d0b3bba25da513d18d77fb0a698cbe61d6bd48175a58e7dd7a3695fbf27faf48b4f517ac5d3a3c66c086df2e5d1b73a2595d
DIST libbpf-0.0.8.tar.gz 262519 BLAKE2B 2a3620c97834cc23e716476b6966c1c65c1c82064b3ba1ae4ab4906ae362a777d9aa7ae40620f9a259fe969a5a897e97c14d97f627f39c47fa28c89abb1efa9a SHA512 1074fb52b7a158e4e2713c4c7083528ccf2d99b899853078f230234ba112071bfa66e174d8800d36516e26d5bf06da44d100a5b2f866d267f62c9308f431220c
DIST libbpf-0.0.9.tar.gz 273726 BLAKE2B 1277ce5b9dab9037e287910c43a71ee33cd6607d7cbe59d40c6930bf49407e04fcdfa6f4795f98202930fd564c1569c2feef0bca73294334f00abd601a288ed0 SHA512 d54bbdee6f7ea83ffef3fd0abe07f71644bcf83e5cf4a307fb4e03d885503617f1af2d324cc869f0f01a92bcb58836780a4802ac4db83b9f037ea196edc1131a
+DIST libbpf-0.1.0.tar.gz 666896 BLAKE2B 5923b4c8fb915722f8cc2015ab8f07773a83c4252a59aef784983e46db7cd784e8ff5cc2284d3f5ded6bb92957f8d73b367a35fa1b5693e0cacaaef414a2f410 SHA512 3a5d823e4751408fd9e3bafe0be0a6a78de7dea0114bbd1166d8b3887938eef4e355ba6221b4bded9fc8a8280edede606c8c8078fd40aebdeaebbbb38f4221fe
EBUILD libbpf-0.0.6.ebuild 1000 BLAKE2B 160f3b9d575fd2553735b2f26ec0ab8b681a002964ae31eba4e9599f541c867f350d55fe4c6e1dfbe6077790bcf3fe9089166538b02973040b51c7bb37d7ce04 SHA512 95785c36fb8ad5130ba55c1c8b996d5e5c1bafd5eb80879494902f7f1fd3c3760c7604d51f36423e121898955b4879b88bb68bdaade76d0c90a2e0f51d27a269
EBUILD libbpf-0.0.7.ebuild 1005 BLAKE2B b74c9b8a780943160237a87ae3833c996ec5a51685afa4c416ad5ba45f7a932785fd602b51758d2abb9df30e6d5e0b8b44f2ff44c647f473883e696c3eeaadef SHA512 6bf1a72e9bd4e531e35d8914ebac32ce6bac68462dfb5d181b51933108874c65ec50e1de8b31579b5db31d6eb3527159a087bfa730bb2c534dc8bbaed62b9daf
EBUILD libbpf-0.0.8.ebuild 1005 BLAKE2B b74c9b8a780943160237a87ae3833c996ec5a51685afa4c416ad5ba45f7a932785fd602b51758d2abb9df30e6d5e0b8b44f2ff44c647f473883e696c3eeaadef SHA512 6bf1a72e9bd4e531e35d8914ebac32ce6bac68462dfb5d181b51933108874c65ec50e1de8b31579b5db31d6eb3527159a087bfa730bb2c534dc8bbaed62b9daf
-EBUILD libbpf-0.0.9.ebuild 1005 BLAKE2B b74c9b8a780943160237a87ae3833c996ec5a51685afa4c416ad5ba45f7a932785fd602b51758d2abb9df30e6d5e0b8b44f2ff44c647f473883e696c3eeaadef SHA512 6bf1a72e9bd4e531e35d8914ebac32ce6bac68462dfb5d181b51933108874c65ec50e1de8b31579b5db31d6eb3527159a087bfa730bb2c534dc8bbaed62b9daf
-EBUILD libbpf-9999.ebuild 1145 BLAKE2B 93059dc3ec391006275503f57b4f5fa2d9813d98cc199d04105eaa2092b507f651b941d3e54c87165d59996bbf7eb3383cf5b4b36d97e7ed73f9fe46e908d683 SHA512 708c2d50c9bbf1cc296bdad90d5e2790ec071684291816bf77267c7f153578bbaaddad494e2c1b9e9f8778692319391339fb24c17dbb935fdd4c98046269d4ca
+EBUILD libbpf-0.0.9-r1.ebuild 1059 BLAKE2B 0605fbeaa1da1de10e51ee0bcaa0b355bcff883734ee0a80ab44bea1960d6ea04960d6207e2a27278bba1716333df10684adebf9ea833f471dc07b981a9ecb37 SHA512 420a4b0daf9178266793113ef97aa90c5cf44a233256b65b8e60829873c90343af8606d17a138589aa5ff728cd42b85afe70f4bf9b3851112edb9a7a0c69c672
+EBUILD libbpf-0.1.0-r1.ebuild 1157 BLAKE2B 876830f71d9f39683088881e1d3f37fe314a2b3057c3cfce1677a82e6f4bfddc2244499ed50c247c1e7221536242ccd06de1aa343406a47479c94935bf03a871 SHA512 bd206fb3c86cd3dca235afc909224219bad0bbcf636b6f690d90460443162710577ad4736ccca2e77376b1668271bdb12c7ad98d5e7e73fa30cae48caf79acdd
+EBUILD libbpf-9999.ebuild 1156 BLAKE2B bb01f0ee3f26e065c38295a8ab1d9983ab214f5477d0913c9d15bc703718de6fa22e2f8a4d7933d3c4da1c6c02293fefd774040919ef745f171edecd25f60cdd SHA512 d55c4d73534e97e5b0c2e49486ed89097e482450b26ba098d0ee7f640c53a9b2d6e3b17c70958a619a7714311b40fab1de514542adc1e0d60ecfd60bc2d0d497
MISC metadata.xml 305 BLAKE2B d5a605019f99aa1bb75e405bface00e9006038c60d280bdab31ac9a42e3bcf75e2884b3efc8be4e2a88f7e35769b610f0480ccfba291444e8d4ddaecf73a57f9 SHA512 38df62cf50255dcd59c3ab6961643379e549eb568f2c0d010cd8bf73a93fceb0dbdbb32af7b07f21475b4146f99e684aad6928963e56ea8d6777b8f63f8d8a41
diff --git a/dev-libs/libbpf/files/libbpf-0.0.9-fix-hashmap-on-lp32.patch b/dev-libs/libbpf/files/libbpf-0.0.9-fix-hashmap-on-lp32.patch
new file mode 100644
index 000000000000..98baf1cd6051
--- /dev/null
+++ b/dev-libs/libbpf/files/libbpf-0.0.9-fix-hashmap-on-lp32.patch
@@ -0,0 +1,49 @@
+From cd016d93f7bf280fe6f2dfc723257786dd3ffd00 Mon Sep 17 00:00:00 2001
+From: Jakub Bogusz <qboosh@pld-linux.org>
+Date: Thu, 9 Jul 2020 15:57:23 -0700
+Subject: [PATCH] libbpf: Fix libbpf hashmap on (I)LP32 architectures
+
+On ILP32, 64-bit result was shifted by value calculated for 32-bit long type
+and returned value was much outside hashmap capacity.
+As advised by Andrii Nakryiko, this patch uses different hashing variant for
+architectures with size_t shorter than long long.
+
+Fixes: e3b924224028 ("libbpf: add resizable non-thread safe internal hashmap")
+Signed-off-by: Jakub Bogusz <qboosh@pld-linux.org>
+Signed-off-by: Andrii Nakryiko <andriin@fb.com>
+Signed-off-by: Alexei Starovoitov <ast@kernel.org>
+Link: https://lore.kernel.org/bpf/20200709225723.1069937-1-andriin@fb.com
+---
+ hashmap.h | 12 ++++++++----
+ 1 file changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/hashmap.h b/hashmap.h
+index df59fd4..e0af36b 100644
+--- a/hashmap.h
++++ b/hashmap.h
+@@ -11,14 +11,18 @@
+ #include <stdbool.h>
+ #include <stddef.h>
+ #include <limits.h>
+-#ifndef __WORDSIZE
+-#define __WORDSIZE (__SIZEOF_LONG__ * 8)
+-#endif
+
+ static inline size_t hash_bits(size_t h, int bits)
+ {
+ /* shuffle bits and return requested number of upper bits */
+- return (h * 11400714819323198485llu) >> (__WORDSIZE - bits);
++#if (__SIZEOF_SIZE_T__ == __SIZEOF_LONG_LONG__)
++ /* LP64 case */
++ return (h * 11400714819323198485llu) >> (__SIZEOF_LONG_LONG__ * 8 - bits);
++#elif (__SIZEOF_SIZE_T__ <= __SIZEOF_LONG__)
++ return (h * 2654435769lu) >> (__SIZEOF_LONG__ * 8 - bits);
++#else
++# error "Unsupported size_t size"
++#endif
+ }
+
+ typedef size_t (*hashmap_hash_fn)(const void *key, void *ctx);
+--
+2.26.2
+
diff --git a/dev-libs/libbpf/libbpf-0.0.9.ebuild b/dev-libs/libbpf/libbpf-0.0.9-r1.ebuild
index 43363c91efae..b01f2de058d8 100644
--- a/dev-libs/libbpf/libbpf-0.0.9.ebuild
+++ b/dev-libs/libbpf/libbpf-0.0.9-r1.ebuild
@@ -24,6 +24,7 @@ S="${WORKDIR}/${P}/src"
PATCHES=(
"${FILESDIR}/libbpf-0.0.7-paths.patch"
+ "${FILESDIR}/libbpf-0.0.9-fix-hashmap-on-lp32.patch"
)
src_compile() {
diff --git a/dev-libs/libbpf/libbpf-0.1.0-r1.ebuild b/dev-libs/libbpf/libbpf-0.1.0-r1.ebuild
new file mode 100644
index 000000000000..1c2508425132
--- /dev/null
+++ b/dev-libs/libbpf/libbpf-0.1.0-r1.ebuild
@@ -0,0 +1,53 @@
+# Copyright 2019-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit flag-o-matic toolchain-funcs
+
+if [[ ${PV} =~ [9]{4,} ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/libbpf/libbpf.git"
+else
+ SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
+ KEYWORDS="~amd64 ~arm64 ~x86"
+fi
+S="${WORKDIR}/${P}/src"
+
+HOMEPAGE="https://github.com/libbpf/libbpf"
+DESCRIPTION="Stand-alone build of libbpf from the Linux kernel"
+
+LICENSE="GPL-2 LGPL-2.1 BSD-2"
+SLOT="0/${PV}"
+IUSE="+static-libs"
+
+COMMON_DEPEND="virtual/libelf
+ !<=dev-util/bcc-0.7.0"
+DEPEND="${COMMON_DEPEND}
+ sys-kernel/linux-headers"
+RDEPEND="${COMMON_DEPEND}"
+
+PATCHES=(
+ "${FILESDIR}/libbpf-0.0.7-paths.patch"
+)
+
+src_compile() {
+ append-cflags -fPIC
+ emake \
+ BUILD_SHARED=y \
+ LIBSUBDIR="$(get_libdir)" \
+ $(usex static-libs 'BUILD_STATIC=y' '' '' '') \
+ CC="$(tc-getCC)"
+}
+
+src_install() {
+ emake \
+ BUILD_SHARED=y \
+ LIBSUBDIR="$(get_libdir)" \
+ DESTDIR="${D}" \
+ $(usex static-libs 'BUILD_STATIC=y' '' '' '') \
+ install install_uapi_headers
+
+ insinto /usr/$(get_libdir)/pkgconfig
+ doins ${PN}.pc
+}
diff --git a/dev-libs/libbpf/libbpf-9999.ebuild b/dev-libs/libbpf/libbpf-9999.ebuild
index 08e5746d4bf0..6697b1c3a061 100644
--- a/dev-libs/libbpf/libbpf-9999.ebuild
+++ b/dev-libs/libbpf/libbpf-9999.ebuild
@@ -1,9 +1,10 @@
-# Copyright 2019 Gentoo Authors
+# Copyright 2019-2020 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
-inherit toolchain-funcs
+inherit flag-o-matic toolchain-funcs
+
if [[ ${PV} =~ [9]{4,} ]]; then
inherit git-r3
EGIT_REPO_URI="https://github.com/libbpf/libbpf.git"
@@ -11,8 +12,9 @@ else
SRC_URI="https://github.com/${PN}/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz"
KEYWORDS="~amd64 ~arm64 ~x86"
fi
+S="${WORKDIR}/${P}/src"
-HOMEPAGE="https://www.kernel.org/doc/html/latest/bpf/bpf_devel_QA.html"
+HOMEPAGE="https://github.com/libbpf/libbpf"
DESCRIPTION="Stand-alone build of libbpf from the Linux kernel"
LICENSE="GPL-2 LGPL-2.1 BSD-2"
@@ -25,13 +27,12 @@ DEPEND="${COMMON_DEPEND}
sys-kernel/linux-headers"
RDEPEND="${COMMON_DEPEND}"
-S="${WORKDIR}/${P}/src"
-
PATCHES=(
"${FILESDIR}/libbpf-9999-paths.patch"
)
src_compile() {
+ append-cflags -fPIC
emake \
BUILD_SHARED=y \
LIBSUBDIR="$(get_libdir)" \