Skip to content

Commit

Permalink
llvm-config: fix script for multilib build
Browse files Browse the repository at this point in the history
From multilib build:
| CMake Error at cmake/FindLLVM.cmake:79 (message):
|   Failed running
|  tmp-glibc/work/x86-64-v3-oe-linux/ispc/1.20.0-r0/recipe-sysroot/usr/bin/crossscripts/llvm-config;--libfiles;engine;ipo;bitreader;bitwriter;instrumentation;linker;option;frontendopenmp;windowsdriver;x86
| Call Stack (most recent call first):
|   cmake/FindLLVM.cmake:116 (run_llvm_config)
|   CMakeLists.txt:377 (get_llvm_libfiles)

Currently hardcoded to /lib, which causing multilib build failure.

An easy solution could be set and export YOCTO_ALTERNATE_LIBDIR to $baselib
in recipe, but it would require to add this in all affected recipes.

Other approach is to handle in llvm-config script itself.
Unfortunately $baselib is not available in env for the
llvm-config script, so extracting baselib value from $base_libdir
as its being exported and available in env and then set YOCTO_ALTERNATE_LIBDIR accordingly.

Signed-off-by: Naveen Saini <[email protected]>
  • Loading branch information
saininav authored and kraj committed Jun 22, 2023
1 parent 91776cb commit d73932b
Showing 1 changed file with 5 additions and 1 deletion.
6 changes: 5 additions & 1 deletion recipes-devtools/clang/clang/llvm-config
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,11 @@
SCRIPT_DIR="$(dirname "$(readlink -f "$0")")"
NEXT_LLVM_CONFIG="$(which -a llvm-config | sed -n 2p)"
export YOCTO_ALTERNATE_EXE_PATH="${YOCTO_ALTERNATE_EXE_PATH:="$(readlink -f "$SCRIPT_DIR/../llvm-config")"}"
export YOCTO_ALTERNATE_LIBDIR="${YOCTO_ALTERNATE_LIBDIR:="/lib"}"
if [ -n "$( echo $base_libdir | sed -n '/lib64/p')" ]; then
export YOCTO_ALTERNATE_LIBDIR="${YOCTO_ALTERNATE_LIBDIR:="/lib64"}"
else
export YOCTO_ALTERNATE_LIBDIR="${YOCTO_ALTERNATE_LIBDIR:="/lib"}"
fi
if [[ $# == 0 ]]; then
exec "$NEXT_LLVM_CONFIG"
fi
Expand Down

0 comments on commit d73932b

Please sign in to comment.