diff options
-rw-r--r-- | classes/clang.bbclass | 12 | ||||
-rw-r--r-- | recipes-devtools/clang/libcxx_git.bb | 20 |
2 files changed, 27 insertions, 5 deletions
diff --git a/classes/clang.bbclass b/classes/clang.bbclass index 93d3581..cfd92d9 100644 --- a/classes/clang.bbclass +++ b/classes/clang.bbclass | |||
@@ -8,7 +8,12 @@ RANLIB_toolchain-clang = "${HOST_PREFIX}llvm-ranlib" | |||
8 | AR_toolchain-clang = "${HOST_PREFIX}llvm-ar" | 8 | AR_toolchain-clang = "${HOST_PREFIX}llvm-ar" |
9 | NM_toolchain-clang = "${HOST_PREFIX}llvm-nm" | 9 | NM_toolchain-clang = "${HOST_PREFIX}llvm-nm" |
10 | 10 | ||
11 | COMPILER_RT ??= "--rtlib=compiler-rt --unwindlib=libunwind" | 11 | COMPILER_RT ??= "--rtlib=compiler-rt ${UNWINDLIB}" |
12 | |||
13 | UNWINDLIB ??= "--unwindlib=libunwind" | ||
14 | UNWINDLIB_riscv64 = "--unwindlib=libgcc" | ||
15 | UNWINDLIB_riscv32 = "--unwindlib=libgcc" | ||
16 | |||
12 | LIBCPLUSPLUS ??= "--stdlib=libc++" | 17 | LIBCPLUSPLUS ??= "--stdlib=libc++" |
13 | 18 | ||
14 | COMPILER_RT_toolchain-gcc = "" | 19 | COMPILER_RT_toolchain-gcc = "" |
@@ -62,5 +67,8 @@ def clang_dep_prepend(d): | |||
62 | BASEDEPENDS_remove_toolchain-clang_class-target = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}compilerlibs" | 67 | BASEDEPENDS_remove_toolchain-clang_class-target = "virtual/${TARGET_PREFIX}gcc virtual/${TARGET_PREFIX}compilerlibs" |
63 | BASEDEPENDS_append_toolchain-clang_class-target = "${@clang_dep_prepend(d)}" | 68 | BASEDEPENDS_append_toolchain-clang_class-target = "${@clang_dep_prepend(d)}" |
64 | 69 | ||
65 | PREFERRED_PROVIDER_libunwind = "libunwind" | 70 | PREFERRED_PROVIDER_libunwind_toolchain-clang = "libcxx" |
71 | PREFERRED_PROVIDER_libunwind ?= "libunwind" | ||
66 | PREFERRED_PROVIDER_libunwind_mipsarch = "libunwind" | 72 | PREFERRED_PROVIDER_libunwind_mipsarch = "libunwind" |
73 | PREFERRED_PROVIDER_libunwind_riscv32 = "libunwind" | ||
74 | PREFERRED_PROVIDER_libunwind_riscv64 = "libunwind" | ||
diff --git a/recipes-devtools/clang/libcxx_git.bb b/recipes-devtools/clang/libcxx_git.bb index 76b1ea0..dafeccc 100644 --- a/recipes-devtools/clang/libcxx_git.bb +++ b/recipes-devtools/clang/libcxx_git.bb | |||
@@ -19,6 +19,7 @@ TUNE_CCARGS_remove_toolchain-clang = "--rtlib=compiler-rt --unwindlib=libunwind | |||
19 | PACKAGECONFIG ??= "unwind" | 19 | PACKAGECONFIG ??= "unwind" |
20 | PACKAGECONFIG_powerpc = "" | 20 | PACKAGECONFIG_powerpc = "" |
21 | PACKAGECONFIG_riscv64 = "" | 21 | PACKAGECONFIG_riscv64 = "" |
22 | PACKAGECONFIG_riscv32 = "" | ||
22 | PACKAGECONFIG[unwind] = "-DLIBCXXABI_USE_LLVM_UNWINDER=ON -DLIBUNWIND_ENABLE_SHARED=ON -DLIBCXXABI_ENABLE_STATIC_UNWINDER=ON -DLIBCXXABI_LIBUNWIND_INCLUDES=${S}/projects/libunwind/include, -DLIBCXXABI_USE_LLVM_UNWINDER=OFF," | 23 | PACKAGECONFIG[unwind] = "-DLIBCXXABI_USE_LLVM_UNWINDER=ON -DLIBUNWIND_ENABLE_SHARED=ON -DLIBCXXABI_ENABLE_STATIC_UNWINDER=ON -DLIBCXXABI_LIBUNWIND_INCLUDES=${S}/projects/libunwind/include, -DLIBCXXABI_USE_LLVM_UNWINDER=OFF," |
23 | 24 | ||
24 | #PROVIDES += "${@bb.utils.contains('PACKAGECONFIG', 'unwind', 'libunwind', '', d)}" | 25 | #PROVIDES += "${@bb.utils.contains('PACKAGECONFIG', 'unwind', 'libunwind', '', d)}" |
@@ -37,6 +38,7 @@ EXTRA_OECMAKE += "\ | |||
37 | -DLIBCXX_USE_COMPILER_RT=YES \ | 38 | -DLIBCXX_USE_COMPILER_RT=YES \ |
38 | -DLIBCXXABI_USE_COMPILER_RT=YES \ | 39 | -DLIBCXXABI_USE_COMPILER_RT=YES \ |
39 | -DCXX_SUPPORTS_CXX11=ON \ | 40 | -DCXX_SUPPORTS_CXX11=ON \ |
41 | -DLIBCXX_INSTALL_EXPERIMENTAL_LIBRARY=ON \ | ||
40 | -DLIBCXXABI_LIBCXX_INCLUDES=${S}/libcxx/include \ | 42 | -DLIBCXXABI_LIBCXX_INCLUDES=${S}/libcxx/include \ |
41 | -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${S}/libcxxabi/include \ | 43 | -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${S}/libcxxabi/include \ |
42 | -DLIBCXX_CXX_ABI_LIBRARY_PATH=${B}/lib \ | 44 | -DLIBCXX_CXX_ABI_LIBRARY_PATH=${B}/lib \ |
@@ -51,7 +53,16 @@ EXTRA_OECMAKE += "\ | |||
51 | EXTRA_OECMAKE_append_class-native = " -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF" | 53 | EXTRA_OECMAKE_append_class-native = " -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF" |
52 | EXTRA_OECMAKE_append_class-nativesdk = " -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF" | 54 | EXTRA_OECMAKE_append_class-nativesdk = " -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF" |
53 | EXTRA_OECMAKE_append_libc-musl = " -DLIBCXX_HAS_MUSL_LIBC=ON " | 55 | EXTRA_OECMAKE_append_libc-musl = " -DLIBCXX_HAS_MUSL_LIBC=ON " |
54 | 56 | EXTRA_OECMAKE_append_riscv64 = " -DLIBCXXABI_ENABLE_EXCEPTIONS=ON \ | |
57 | -DLIBCXX_ENABLE_EXCEPTIONS=ON \ | ||
58 | -DLIBOMP_LIBFLAGS='-latomic' \ | ||
59 | -DCMAKE_SHARED_LINKER_FLAGS='-lgcc_s -latomic' \ | ||
60 | " | ||
61 | EXTRA_OECMAKE_append_riscv32 = " -DLIBCXXABI_ENABLE_EXCEPTIONS=ON \ | ||
62 | -DLIBCXX_ENABLE_EXCEPTIONS=ON \ | ||
63 | -DLIBOMP_LIBFLAGS='-latomic' \ | ||
64 | -DCMAKE_SHARED_LINKER_FLAGS='-lgcc_s -latomic' \ | ||
65 | " | ||
55 | do_compile() { | 66 | do_compile() { |
56 | if ${@bb.utils.contains('PACKAGECONFIG', 'unwind', 'true', 'false', d)}; then | 67 | if ${@bb.utils.contains('PACKAGECONFIG', 'unwind', 'true', 'false', d)}; then |
57 | ninja -v ${PARALLEL_MAKE} unwind | 68 | ninja -v ${PARALLEL_MAKE} unwind |
@@ -70,8 +81,11 @@ do_install() { | |||
70 | ALLOW_EMPTY_${PN} = "1" | 81 | ALLOW_EMPTY_${PN} = "1" |
71 | 82 | ||
72 | #PROVIDES = "virtual/${TARGET_PREFIX}compilerlibs" | 83 | #PROVIDES = "virtual/${TARGET_PREFIX}compilerlibs" |
73 | 84 | RPROVIDES_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'unwind', 'libunwind', '', d)}" | |
74 | RDEPENDS_${PN}-dev += "${PN}-staticdev" | 85 | RPROVIDES_${PN}-dev += "${@bb.utils.contains('PACKAGECONFIG', 'unwind', 'libunwind-dev', '', d)}" |
86 | RPROVIDES_${PN}-doc += "${@bb.utils.contains('PACKAGECONFIG', 'unwind', 'libunwind-doc', '', d)}" | ||
87 | RPROVIDES_${PN}-staticdev += "${@bb.utils.contains('PACKAGECONFIG', 'unwind', 'libunwind-staticdev', '', d)}" | ||
88 | RPROVIDES_${PN}-locale += "${@bb.utils.contains('PACKAGECONFIG', 'unwind', 'libunwind-locale', '', d)}" | ||
75 | 89 | ||
76 | BBCLASSEXTEND = "native nativesdk" | 90 | BBCLASSEXTEND = "native nativesdk" |
77 | TOOLCHAIN_forcevariable = "clang" | 91 | TOOLCHAIN_forcevariable = "clang" |