autobuild: find correct clang version and fuzzer library

Signed-off-by: Sebastian Brzezinka <sebastian.brzezinka@intel.com>
Change-Id: Id042892837bb328a64447f8b41df8c11bbeeb24b
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15336
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Michal Berger <michal.berger@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
This commit is contained in:
Sebastian Brzezinka 2022-11-08 11:10:16 +00:00 committed by Tomasz Zawadzki
parent 5303e1bd54
commit 26b4652e2e

View File

@ -60,19 +60,21 @@ function ocf_precompile() {
./configure $config_params
}
# Find matching llvm fuzzer library and clang compiler version
function llvm_precompile() {
# llvm need clang compiler
local clangV
local clang_complier
[[ $(clang --version) =~ "version "(([0-9]+).([0-9]+).([0-9]+)) ]]
clang_version=${BASH_REMATCH[1]}
clang_num=${BASH_REMATCH[2]}
clangV=$(clang --version | grep version | cut -d" " -f3)
clang_complier=$(echo "$clangV" | cut -d"." -f1)
export CC=clang-$clang_num
export CXX=clang++-$clang_num
export CC=clang-$clang_complier
export CXX=clang++-$clang_complier
# Set config to use precompiled library
config_params="$config_params --with-fuzzer=/usr/lib64/clang/$clangV/lib/linux/libclang_rt.fuzzer_no_main-x86_64.a"
# need to reconfigure to avoid clearing llvm related files on future make clean.
fuzzer_libs=(/usr/lib*/clang/"$clang_version"/lib/linux/libclang_rt.fuzzer_no_main-x86_64.a)
fuzzer_lib=${fuzzer_libs[0]}
[[ -e $fuzzer_lib ]]
config_params="$config_params --with-fuzzer=$fuzzer_lib"
# Need to reconfigure to avoid clearing llvm related files on future make clean.
./configure $config_params
}