From 6f59a9e87640119d132b466a4dfc0cfa0cfe4a7d Mon Sep 17 00:00:00 2001 From: Oleksandr Ocheretnyi Date: Mon, 13 Apr 2020 00:05:33 +0300 Subject: clang: usrmerge workaround MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit  * issue:     the openembedded-core build procedure relies on changed default dynamic loader path when the usrmerge distro feature turned on. As we can find the GCC which is used as default toolchain uses SYSTEMLIBS_DIR macro variable set to /usr/(lib|lib64) at build time and hardcodes the binaries with that default loader path.  * solution:     change the default dynamic loader location with --dyld-prefix clang option to conform the loader location (as GCC does) to openembedded-core build procedure. Signed-off-by: Oleksandr Ocheretnyi --- classes/clang.bbclass | 2 ++ 1 file changed, 2 insertions(+) diff --git a/classes/clang.bbclass b/classes/clang.bbclass index d0e7658..a00eef6 100644 --- a/classes/clang.bbclass +++ b/classes/clang.bbclass @@ -43,6 +43,8 @@ TUNE_CCARGS_remove_toolchain-clang_powerpc = "-mno-spe" TUNE_CCARGS_append_toolchain-clang = " -Qunused-arguments" TUNE_CCARGS_append_toolchain-clang_libc-musl_powerpc64 = " -mlong-double-64" TUNE_CCARGS_append_toolchain-clang_libc-musl_powerpc64le = " -mlong-double-64" +# usrmerge workaround +TUNE_CCARGS_append_toolchain-clang = "${@bb.utils.contains("DISTRO_FEATURES", "usrmerge", " --dyld-prefix=/usr", "", d)}" LDFLAGS_append_toolchain-clang_class-nativesdk_x86-64 = " -Wl,-dynamic-linker,${base_libdir}/ld-linux-x86-64.so.2" LDFLAGS_append_toolchain-clang_class-nativesdk_x86 = " -Wl,-dynamic-linker,${base_libdir}/ld-linux.so.2" -- cgit v1.2.3-54-g00ecf