From d73932ba992935bfbd7da35c933ce38440521352 Mon Sep 17 00:00:00 2001 From: Naveen Saini Date: Wed, 21 Jun 2023 11:12:34 +0800 Subject: [PATCH] llvm-config: fix script for multilib build 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 --- recipes-devtools/clang/clang/llvm-config | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/recipes-devtools/clang/clang/llvm-config b/recipes-devtools/clang/clang/llvm-config index a9876a27..bfdc61a8 100644 --- a/recipes-devtools/clang/clang/llvm-config +++ b/recipes-devtools/clang/clang/llvm-config @@ -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