pkgdep: add bpftrace and bcc installation from source

Add bpftrace and bcc installation from source for
Fedora35 and higher due to issues with the multipath
test and bpftrace/bcc installed from OS repository.

Fixes #2519

Signed-off-by: Kamil Godzwon <kamilx.godzwon@intel.com>
Change-Id: Ieedd544a8ac02d9071f0b76f6ddd7007f18f4570
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12920
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
This commit is contained in:
Kamil Godzwon 2022-06-07 04:04:59 -04:00 committed by Tomasz Zawadzki
parent f546f28ea7
commit 72c4255e9d
2 changed files with 31 additions and 1 deletions

View File

@ -72,7 +72,7 @@ else
packages+=(sshpass)
fi
if [[ $OSID == fedora ]] && ((OSVERSION >= 34)); then
if [[ $OSID == fedora ]] && ((OSVERSION == 34)); then
packages+=(bpftrace)
fi

View File

@ -466,6 +466,24 @@ function install_lcov() {
(cd /usr/src/lcov; sudo make install)
}
function install_bpftrace() {
install llvm-devel clang-devel cereal-devel gtest-devel gmock-devel cmake
rm -rf $GIT_REPOS/bcc
rm -rf $GIT_REPOS/bpftrace
git clone --recursive $GIT_REPO_BCC $GIT_REPOS/bcc
git -C $GIT_REPOS/bcc checkout $BCC_BRANCH
git clone --recursive $GIT_REPO_BPFTRACE --branch $BPFTRACE_VERSION $GIT_REPOS/bpftrace
mkdir -p $GIT_REPOS/bcc/build $GIT_REPOS/bpftrace/build
cmake -DCMAKE_BUILD_TYPE=Release -B $GIT_REPOS/bcc/build -S $GIT_REPOS/bcc
make -C $GIT_REPOS/bcc/build -j$(nproc)
make -C $GIT_REPOS/bcc/build install
cmake -DCMAKE_BUILD_TYPE=Release -B $GIT_REPOS/bpftrace/build -S $GIT_REPOS/bpftrace
make -C $GIT_REPOS/bpftrace/build -j$(nproc)
make -C $GIT_REPOS/bpftrace/build install
}
function install_sources() {
if [[ $ID == centos ]] && (( VERSION_ID == 7 )); then
# install proper version of the git first
@ -509,6 +527,10 @@ function install_sources() {
fi
done
if [[ $INSTALL_BPFTRACE == true ]] || [[ $ID == fedora ]] && (( VERSION_ID >= 35 )); then
install_bpftrace
fi
if [[ $INSTALL_REFSPDK == true ]]; then
# Serialize builds as refspdk depends on spdk
[[ $INSTALL_SPDK != true ]] && install_spdk
@ -520,8 +542,11 @@ function install_sources() {
GIT_VERSION=2.25.1
IRDMA_VERSION=1.7.72
ICE_VERSION=1.8.8
BPFTRACE_VERSION=v0.15.0
VFIO_QEMU_BRANCH=${VFIO_QEMU_BRANCH:-vfio-user-dbfix}
VANILLA_QEMU_BRANCH=${VANILLA_QEMU_BRANCH:-v6.2.0}
BCC_BRANCH=${BCC_BRANCH:-6dac27d9}
: ${GIT_REPO_SPDK=https://github.com/spdk/spdk.git}
export GIT_REPO_SPDK
@ -553,6 +578,11 @@ export IRDMA_DRIVER
export ICE_DRIVER
: ${GIT_REPO_LCOV=https://github.com/linux-test-project/lcov}
export GIT_REPO_LCOV
: ${GIT_REPO_BCC=https://github.com/iovisor/bcc.git}
export GIT_REPO_BCC
: ${GIT_REPO_BPFTRACE=https://github.com/iovisor/bpftrace.git}
export GIT_REPO_BPFTRACE
GIT_REPOS=${GIT_REPOS:-$HOME}
gcc_version=$(gcc -dumpversion) gcc_version=${gcc_version%%.*}