summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2021-06-24 14:49:45 -0700
committerKhem Raj <raj.khem@gmail.com>2023-09-08 09:08:54 -0700
commit279d80064038c3d2917ea1a7ebe7c84d4304b840 (patch)
treeccd1085b891ebc5d8baad26887678ca297669d8f
parentcd7543f224ef408c017c9a036247d6cb6bc48d2d (diff)
downloadmeta-clang-279d80064038c3d2917ea1a7ebe7c84d4304b840.tar.gz
libcxx: Fix native build
Use libgcc with clang-native to compile it Fixes #465 Signed-off-by: Khem Raj <raj.khem@gmail.com> (cherry picked from commit 4d066667c3cbba3b88d2f8d6c5640f5f793d10b4) Conflicts: - recipes-devtools/clang/libcxx_git.bb: Commit 93552c79eed5daa44a24bf4b7a063a2ade739e97 had some of the changes already.
-rw-r--r--classes/clang.bbclass24
-rw-r--r--recipes-devtools/clang/libcxx_git.bb11
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 @@
1# Add the necessary override 1# Add the necessary override
2CCACHE_COMPILERCHECK_class-target_toolchain-clang ?= "%compiler% -v" 2CCACHE_COMPILERCHECK_toolchain-clang ?= "%compiler% -v"
3HOST_CC_ARCH_prepend_class-target_toolchain-clang = "-target ${HOST_SYS} " 3HOST_CC_ARCH_prepend_toolchain-clang = "-target ${HOST_SYS} "
4CC_class-target_toolchain-clang = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" 4CC_toolchain-clang = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
5CXX_class-target_toolchain-clang = "${CCACHE}${HOST_PREFIX}clang++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" 5CXX_toolchain-clang = "${CCACHE}${HOST_PREFIX}clang++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
6CPP_class-target_toolchain-clang = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} -E" 6CPP_toolchain-clang = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} -E"
7CCLD_class-target_toolchain-clang = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" 7CCLD_toolchain-clang = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}"
8RANLIB_class-target_toolchain-clang = "${HOST_PREFIX}llvm-ranlib" 8RANLIB_toolchain-clang = "${HOST_PREFIX}llvm-ranlib"
9AR_class-target_toolchain-clang = "${HOST_PREFIX}llvm-ar" 9AR_toolchain-clang = "${HOST_PREFIX}llvm-ar"
10NM_class-target_toolchain-clang = "${HOST_PREFIX}llvm-nm" 10NM_toolchain-clang = "${HOST_PREFIX}llvm-nm"
11 11
12LTO_toolchain-clang = "${@bb.utils.contains('DISTRO_FEATURES', 'thin-lto', '-flto=thin', '-flto -fuse-ld=lld', d)}" 12LTO_toolchain-clang = "${@bb.utils.contains('DISTRO_FEATURES', 'thin-lto', '-flto=thin', '-flto -fuse-ld=lld', d)}"
13PACKAGE_DEBUG_SPLIT_STYLE_toolchain-clang = "debug-without-src" 13PACKAGE_DEBUG_SPLIT_STYLE_toolchain-clang = "debug-without-src"
14 14
15COMPILER_RT ??= "" 15COMPILER_RT ??= ""
16COMPILER_RT_class-native = "-rtlib=libgcc ${UNWINDLIB}"
16COMPILER_RT_powerpc = "-rtlib=libgcc ${UNWINDLIB}" 17COMPILER_RT_powerpc = "-rtlib=libgcc ${UNWINDLIB}"
17COMPILER_RT_armeb = "-rtlib=libgcc ${UNWINDLIB}" 18COMPILER_RT_armeb = "-rtlib=libgcc ${UNWINDLIB}"
18COMPILER_RT_libc-klibc = "-rtlib=libgcc ${UNWINDLIB}" 19COMPILER_RT_libc-klibc = "-rtlib=libgcc ${UNWINDLIB}"
19 20
20UNWINDLIB ??= "" 21UNWINDLIB ??= ""
22UNWINDLIB_class-native = "--unwindlib=libgcc"
21UNWINDLIB_powerpc = "--unwindlib=libgcc" 23UNWINDLIB_powerpc = "--unwindlib=libgcc"
22UNWINDLIB_armeb = "--unwindlib=libgcc" 24UNWINDLIB_armeb = "--unwindlib=libgcc"
23UNWINDLIB_libc-klibc = "--unwindlib=libgcc" 25UNWINDLIB_libc-klibc = "--unwindlib=libgcc"
24 26
25LIBCPLUSPLUS ??= "" 27LIBCPLUSPLUS ??= ""
26 28
27TARGET_CXXFLAGS_append_toolchain-clang = " ${LIBCPLUSPLUS}" 29CXXFLAGS_append_toolchain-clang = " ${LIBCPLUSPLUS}"
28TUNE_CCARGS_append_toolchain-clang = " ${COMPILER_RT} ${LIBCPLUSPLUS}" 30LDFLAGS_append_toolchain-clang = " ${COMPILER_RT} ${LIBCPLUSPLUS}"
29 31
30TUNE_CCARGS_remove_toolchain-clang = "-meb" 32TUNE_CCARGS_remove_toolchain-clang = "-meb"
31TUNE_CCARGS_remove_toolchain-clang = "-mel" 33TUNE_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
12 12
13PACKAGECONFIG ??= "compiler-rt exceptions ${@bb.utils.contains("RUNTIME", "llvm", "unwind unwind-shared", "", d)}" 13PACKAGECONFIG ??= "compiler-rt exceptions ${@bb.utils.contains("RUNTIME", "llvm", "unwind unwind-shared", "", d)}"
14PACKAGECONFIG_append_armv5 = " no-atomics" 14PACKAGECONFIG_append_armv5 = " no-atomics"
15 15PACKAGECONFIG_remove_class-native = "compiler-rt"
16PACKAGECONFIG[unwind] = "-DLIBCXXABI_USE_LLVM_UNWINDER=ON -DLIBCXXABI_ENABLE_STATIC_UNWINDER=ON,-DLIBCXXABI_USE_LLVM_UNWINDER=OFF,," 16PACKAGECONFIG[unwind] = "-DLIBCXXABI_USE_LLVM_UNWINDER=ON -DLIBCXXABI_ENABLE_STATIC_UNWINDER=ON,-DLIBCXXABI_USE_LLVM_UNWINDER=OFF,,"
17PACKAGECONFIG[exceptions] = "-DLIBCXXABI_ENABLE_EXCEPTIONS=ON -DDLIBCXX_ENABLE_EXCEPTIONS=ON,-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF -DLIBCXX_ENABLE_EXCEPTIONS=OFF -DCMAKE_REQUIRED_FLAGS='-fno-exceptions'," 17PACKAGECONFIG[exceptions] = "-DLIBCXXABI_ENABLE_EXCEPTIONS=ON -DDLIBCXX_ENABLE_EXCEPTIONS=ON,-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF -DLIBCXX_ENABLE_EXCEPTIONS=OFF -DCMAKE_REQUIRED_FLAGS='-fno-exceptions',"
18PACKAGECONFIG[no-atomics] = "-D_LIBCXXABI_HAS_ATOMIC_BUILTINS=OFF -DCMAKE_SHARED_LINKER_FLAGS='-latomic',," 18PACKAGECONFIG[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_
21 21
22DEPENDS += "ninja-native" 22DEPENDS += "ninja-native"
23DEPENDS_append_class-target = " clang-cross-${TARGET_ARCH} virtual/${MLPREFIX}libc virtual/${TARGET_PREFIX}compilerlibs" 23DEPENDS_append_class-target = " clang-cross-${TARGET_ARCH} virtual/${MLPREFIX}libc virtual/${TARGET_PREFIX}compilerlibs"
24DEPENDS_append_class-native = " clang-native"
24 25
25LIBCPLUSPLUS = "" 26LIBCPLUSPLUS = ""
26COMPILER_RT ?= "-rtlib=compiler-rt" 27COMPILER_RT ?= "-rtlib=compiler-rt"
27 28
29CC_append_toolchain-clang_class-native = " -unwindlib=libgcc -rtlib=libgcc"
30
28CXXFLAGS += "-stdlib=libstdc++" 31CXXFLAGS += "-stdlib=libstdc++"
29LDFLAGS += "-unwindlib=libgcc -stdlib=libstdc++" 32LDFLAGS += "-unwindlib=libgcc -stdlib=libstdc++"
30INHIBIT_DEFAULT_DEPS = "1" 33INHIBIT_DEFAULT_DEPS = "1"
@@ -60,8 +63,8 @@ EXTRA_OECMAKE_append_class-target = " \
60 -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${NM} \ 63 -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${NM} \
61 -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${RANLIB} \ 64 -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${RANLIB} \
62" 65"
63 66EXTRA_OECMAKE_append_class-native = " -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF \
64EXTRA_OECMAKE_append_class-native = " -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF" 67"
65 68
66EXTRA_OECMAKE_append_class-nativesdk = " -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF \ 69EXTRA_OECMAKE_append_class-nativesdk = " -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF \
67 -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${AR} \ 70 -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${AR} \
@@ -91,4 +94,4 @@ PACKAGES_append_runtime-llvm = " libunwind"
91FILES_libunwind_runtime-llvm = "${libdir}/libunwind.so.*" 94FILES_libunwind_runtime-llvm = "${libdir}/libunwind.so.*"
92 95
93BBCLASSEXTEND = "native nativesdk" 96BBCLASSEXTEND = "native nativesdk"
94TOOLCHAIN = "clang" 97TOOLCHAIN_forcevariable = "clang"