From 279d80064038c3d2917ea1a7ebe7c84d4304b840 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Thu, 24 Jun 2021 14:49:45 -0700 Subject: libcxx: Fix native build Use libgcc with clang-native to compile it Fixes #465 Signed-off-by: Khem Raj (cherry picked from commit 4d066667c3cbba3b88d2f8d6c5640f5f793d10b4) Conflicts: - recipes-devtools/clang/libcxx_git.bb: Commit 93552c79eed5daa44a24bf4b7a063a2ade739e97 had some of the changes already. --- classes/clang.bbclass | 24 +++++++++++++----------- recipes-devtools/clang/libcxx_git.bb | 11 +++++++---- 2 files changed, 20 insertions(+), 15 deletions(-) diff --git a/classes/clang.bbclass b/classes/clang.bbclass index 849049a..563aa9d 100644 --- a/classes/clang.bbclass +++ b/classes/clang.bbclass @@ -1,31 +1,33 @@ # Add the necessary override -CCACHE_COMPILERCHECK_class-target_toolchain-clang ?= "%compiler% -v" -HOST_CC_ARCH_prepend_class-target_toolchain-clang = "-target ${HOST_SYS} " -CC_class-target_toolchain-clang = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" -CXX_class-target_toolchain-clang = "${CCACHE}${HOST_PREFIX}clang++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" -CPP_class-target_toolchain-clang = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} -E" -CCLD_class-target_toolchain-clang = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" -RANLIB_class-target_toolchain-clang = "${HOST_PREFIX}llvm-ranlib" -AR_class-target_toolchain-clang = "${HOST_PREFIX}llvm-ar" -NM_class-target_toolchain-clang = "${HOST_PREFIX}llvm-nm" +CCACHE_COMPILERCHECK_toolchain-clang ?= "%compiler% -v" +HOST_CC_ARCH_prepend_toolchain-clang = "-target ${HOST_SYS} " +CC_toolchain-clang = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" +CXX_toolchain-clang = "${CCACHE}${HOST_PREFIX}clang++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" +CPP_toolchain-clang = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} -E" +CCLD_toolchain-clang = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" +RANLIB_toolchain-clang = "${HOST_PREFIX}llvm-ranlib" +AR_toolchain-clang = "${HOST_PREFIX}llvm-ar" +NM_toolchain-clang = "${HOST_PREFIX}llvm-nm" LTO_toolchain-clang = "${@bb.utils.contains('DISTRO_FEATURES', 'thin-lto', '-flto=thin', '-flto -fuse-ld=lld', d)}" PACKAGE_DEBUG_SPLIT_STYLE_toolchain-clang = "debug-without-src" COMPILER_RT ??= "" +COMPILER_RT_class-native = "-rtlib=libgcc ${UNWINDLIB}" COMPILER_RT_powerpc = "-rtlib=libgcc ${UNWINDLIB}" COMPILER_RT_armeb = "-rtlib=libgcc ${UNWINDLIB}" COMPILER_RT_libc-klibc = "-rtlib=libgcc ${UNWINDLIB}" UNWINDLIB ??= "" +UNWINDLIB_class-native = "--unwindlib=libgcc" UNWINDLIB_powerpc = "--unwindlib=libgcc" UNWINDLIB_armeb = "--unwindlib=libgcc" UNWINDLIB_libc-klibc = "--unwindlib=libgcc" LIBCPLUSPLUS ??= "" -TARGET_CXXFLAGS_append_toolchain-clang = " ${LIBCPLUSPLUS}" -TUNE_CCARGS_append_toolchain-clang = " ${COMPILER_RT} ${LIBCPLUSPLUS}" +CXXFLAGS_append_toolchain-clang = " ${LIBCPLUSPLUS}" +LDFLAGS_append_toolchain-clang = " ${COMPILER_RT} ${LIBCPLUSPLUS}" TUNE_CCARGS_remove_toolchain-clang = "-meb" TUNE_CCARGS_remove_toolchain-clang = "-mel" diff --git a/recipes-devtools/clang/libcxx_git.bb b/recipes-devtools/clang/libcxx_git.bb index 87d133e..bdb364e 100644 --- a/recipes-devtools/clang/libcxx_git.bb +++ b/recipes-devtools/clang/libcxx_git.bb @@ -12,7 +12,7 @@ inherit cmake cmake-native python3native PACKAGECONFIG ??= "compiler-rt exceptions ${@bb.utils.contains("RUNTIME", "llvm", "unwind unwind-shared", "", d)}" PACKAGECONFIG_append_armv5 = " no-atomics" - +PACKAGECONFIG_remove_class-native = "compiler-rt" PACKAGECONFIG[unwind] = "-DLIBCXXABI_USE_LLVM_UNWINDER=ON -DLIBCXXABI_ENABLE_STATIC_UNWINDER=ON,-DLIBCXXABI_USE_LLVM_UNWINDER=OFF,," PACKAGECONFIG[exceptions] = "-DLIBCXXABI_ENABLE_EXCEPTIONS=ON -DDLIBCXX_ENABLE_EXCEPTIONS=ON,-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF -DLIBCXX_ENABLE_EXCEPTIONS=OFF -DCMAKE_REQUIRED_FLAGS='-fno-exceptions'," PACKAGECONFIG[no-atomics] = "-D_LIBCXXABI_HAS_ATOMIC_BUILTINS=OFF -DCMAKE_SHARED_LINKER_FLAGS='-latomic',," @@ -21,10 +21,13 @@ PACKAGECONFIG[unwind-shared] = "-DLIBUNWIND_ENABLE_SHARED=ON,-DLIBUNWIND_ENABLE_ DEPENDS += "ninja-native" DEPENDS_append_class-target = " clang-cross-${TARGET_ARCH} virtual/${MLPREFIX}libc virtual/${TARGET_PREFIX}compilerlibs" +DEPENDS_append_class-native = " clang-native" LIBCPLUSPLUS = "" COMPILER_RT ?= "-rtlib=compiler-rt" +CC_append_toolchain-clang_class-native = " -unwindlib=libgcc -rtlib=libgcc" + CXXFLAGS += "-stdlib=libstdc++" LDFLAGS += "-unwindlib=libgcc -stdlib=libstdc++" INHIBIT_DEFAULT_DEPS = "1" @@ -60,8 +63,8 @@ EXTRA_OECMAKE_append_class-target = " \ -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${NM} \ -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${RANLIB} \ " - -EXTRA_OECMAKE_append_class-native = " -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF" +EXTRA_OECMAKE_append_class-native = " -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF \ +" EXTRA_OECMAKE_append_class-nativesdk = " -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF \ -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${AR} \ @@ -91,4 +94,4 @@ PACKAGES_append_runtime-llvm = " libunwind" FILES_libunwind_runtime-llvm = "${libdir}/libunwind.so.*" BBCLASSEXTEND = "native nativesdk" -TOOLCHAIN = "clang" +TOOLCHAIN_forcevariable = "clang" -- cgit v1.2.3-54-g00ecf