diff options
author | Khem Raj <raj.khem@gmail.com> | 2019-09-18 23:50:38 -0700 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2019-09-19 12:03:13 -0700 |
commit | 9143de53c558a06984f9b2b71aa5e835874b951b (patch) | |
tree | 9a4d4486add31b10f6d5ee2ca6c14a0c29779414 /recipes-devtools/clang/libcxx_git.bb | |
parent | 597feb4fe9b66a918fad36159a9e24b0fa13c9aa (diff) | |
download | meta-clang-9143de53c558a06984f9b2b71aa5e835874b951b.tar.gz |
llvm-libunwind: New reecipe for llvm unwinder split from libcxx
Its easier to provide it as replacement for nongnu libunwind
bundled into libcxx was getting harder when it came to replacement
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'recipes-devtools/clang/libcxx_git.bb')
-rw-r--r-- | recipes-devtools/clang/libcxx_git.bb | 51 |
1 files changed, 18 insertions, 33 deletions
diff --git a/recipes-devtools/clang/libcxx_git.bb b/recipes-devtools/clang/libcxx_git.bb index c88d868..c12831a 100644 --- a/recipes-devtools/clang/libcxx_git.bb +++ b/recipes-devtools/clang/libcxx_git.bb | |||
@@ -10,26 +10,20 @@ require common-source.inc | |||
10 | 10 | ||
11 | inherit cmake pythonnative | 11 | inherit cmake pythonnative |
12 | 12 | ||
13 | DEPENDS += "ninja-native" | 13 | DEPENDS += "ninja-native llvm-libunwind" |
14 | |||
15 | DEPENDS_remove_powerpc = "llvm-libunwind" | ||
16 | DEPENDS_remove_riscv32 = "llvm-libunwind" | ||
17 | DEPENDS_remove_riscv64 = "llvm-libunwind" | ||
18 | |||
14 | BASEDEPENDS_remove_toolchain-clang = "libcxx" | 19 | BASEDEPENDS_remove_toolchain-clang = "libcxx" |
15 | DEPENDS_append_toolchain-clang = " virtual/${TARGET_PREFIX}compilerlibs" | 20 | DEPENDS_append_toolchain-clang = " virtual/${TARGET_PREFIX}compilerlibs" |
16 | 21 | ||
17 | TARGET_CXXFLAGS_remove_toolchain-clang = "--stdlib=libc++" | 22 | TARGET_CXXFLAGS_remove_toolchain-clang = "--stdlib=libc++" |
18 | TUNE_CCARGS_remove_toolchain-clang = "--unwindlib=libunwind --stdlib=libc++" | 23 | TUNE_CCARGS_remove_toolchain-clang = "--stdlib=libc++" |
19 | |||
20 | PACKAGECONFIG ??= "${@bb.utils.contains('PREFERRED_PROVIDER_libunwind', 'libcxx', 'unwind', '', d)}" | ||
21 | PACKAGECONFIG_powerpc = "" | ||
22 | PACKAGECONFIG_riscv64 = "" | ||
23 | PACKAGECONFIG_riscv32 = "" | ||
24 | |||
25 | PACKAGECONFIG[unwind] = "-DLIBCXXABI_USE_LLVM_UNWINDER=ON -DLIBUNWIND_ENABLE_SHARED=ON -DLIBCXXABI_ENABLE_STATIC_UNWINDER=ON -DLIBCXXABI_STATICALLY_LINK_UNWINDER_IN_SHARED_LIBRARY=OFF -DLIBCXXABI_LIBUNWIND_INCLUDES=${S}/projects/libunwind/include, -DLIBCXXABI_USE_LLVM_UNWINDER=OFF -DCMAKE_SHARED_LINKER_FLAGS='-lgcc_s'," | ||
26 | |||
27 | PROVIDES += "${@bb.utils.contains('PACKAGECONFIG', 'unwind', 'libunwind', '', d)}" | ||
28 | LIBUNWIND = "${@bb.utils.contains('PACKAGECONFIG', 'unwind', ';libunwind', '', d)}" | ||
29 | 24 | ||
30 | LIC_FILES_CHKSUM = "file://libcxx/LICENSE.TXT;md5=55d89dd7eec8d3b4204b680e27da3953 \ | 25 | LIC_FILES_CHKSUM = "file://libcxx/LICENSE.TXT;md5=55d89dd7eec8d3b4204b680e27da3953 \ |
31 | file://libcxxabi/LICENSE.TXT;md5=7b9334635b542c56868400a46b272b1e \ | 26 | file://libcxxabi/LICENSE.TXT;md5=7b9334635b542c56868400a46b272b1e \ |
32 | file://libunwind/LICENSE.TXT;md5=f66970035d12f196030658b11725e1a1 \ | ||
33 | " | 27 | " |
34 | THUMB_TUNE_CCARGS = "" | 28 | THUMB_TUNE_CCARGS = "" |
35 | #TUNE_CCARGS += "-nostdlib" | 29 | #TUNE_CCARGS += "-nostdlib" |
@@ -45,14 +39,21 @@ EXTRA_OECMAKE += "\ | |||
45 | -DLIBCXXABI_LIBCXX_INCLUDES=${S}/libcxx/include \ | 39 | -DLIBCXXABI_LIBCXX_INCLUDES=${S}/libcxx/include \ |
46 | -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${S}/libcxxabi/include \ | 40 | -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${S}/libcxxabi/include \ |
47 | -DLIBCXX_CXX_ABI_LIBRARY_PATH=${B}/${baselib} \ | 41 | -DLIBCXX_CXX_ABI_LIBRARY_PATH=${B}/${baselib} \ |
42 | -DCMAKE_SHARED_LINKER_FLAGS='${SHAREDFLAGS}' \ | ||
48 | -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${AR} \ | 43 | -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${AR} \ |
49 | -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${NM} \ | 44 | -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${NM} \ |
50 | -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${RANLIB} \ | 45 | -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${RANLIB} \ |
51 | -DLLVM_ENABLE_PROJECTS='libcxx;libcxxabi${LIBUNWIND}' \ | 46 | -DLLVM_ENABLE_PROJECTS='libcxx;libcxxabi' \ |
52 | -DLLVM_LIBDIR_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \ | 47 | -DLLVM_LIBDIR_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \ |
53 | -G Ninja \ | 48 | -G Ninja \ |
54 | ${S}/llvm \ | 49 | ${S}/llvm \ |
55 | " | 50 | " |
51 | SHAREDFLAGS ?= "-lunwind" | ||
52 | SHAREDFLAGS_riscv32 = "-lgcc_s -latomic" | ||
53 | SHAREDFLAGS_riscv64 = "-lgcc_s -latomic" | ||
54 | SHAREDFLAGS_powerpc = "-lgcc_s -latomic" | ||
55 | SHAREDFLAGS_append_arm = " -latomic" | ||
56 | SHAREDFLAGS_append_armeb = " -latomic" | ||
56 | 57 | ||
57 | EXTRA_OECMAKE_append_class-native = " -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF" | 58 | EXTRA_OECMAKE_append_class-native = " -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF" |
58 | EXTRA_OECMAKE_append_class-nativesdk = " -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF" | 59 | EXTRA_OECMAKE_append_class-nativesdk = " -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF" |
@@ -60,7 +61,7 @@ EXTRA_OECMAKE_append_libc-musl = " -DLIBCXX_HAS_MUSL_LIBC=ON " | |||
60 | EXTRA_OECMAKE_append_riscv64 = " -DLIBCXXABI_ENABLE_EXCEPTIONS=ON \ | 61 | EXTRA_OECMAKE_append_riscv64 = " -DLIBCXXABI_ENABLE_EXCEPTIONS=ON \ |
61 | -DLIBCXX_ENABLE_EXCEPTIONS=ON \ | 62 | -DLIBCXX_ENABLE_EXCEPTIONS=ON \ |
62 | -DLIBOMP_LIBFLAGS='-latomic' \ | 63 | -DLIBOMP_LIBFLAGS='-latomic' \ |
63 | -DCMAKE_SHARED_LINKER_FLAGS='-lgcc_s -latomic' \ | 64 | -DLIBCXX_HAS_GCC_S_LIB=ON \ |
64 | " | 65 | " |
65 | 66 | ||
66 | EXTRA_OECMAKE_append_armv5 = " -D_LIBCXXABI_HAS_ATOMIC_BUILTINS=OFF" | 67 | EXTRA_OECMAKE_append_armv5 = " -D_LIBCXXABI_HAS_ATOMIC_BUILTINS=OFF" |
@@ -70,40 +71,24 @@ EXTRA_OECMAKE_append_arm = " -DCMAKE_REQUIRED_FLAGS='-fno-exceptions'" | |||
70 | EXTRA_OECMAKE_append_riscv32 = " -DLIBCXXABI_ENABLE_EXCEPTIONS=ON \ | 71 | EXTRA_OECMAKE_append_riscv32 = " -DLIBCXXABI_ENABLE_EXCEPTIONS=ON \ |
71 | -DLIBCXX_ENABLE_EXCEPTIONS=ON \ | 72 | -DLIBCXX_ENABLE_EXCEPTIONS=ON \ |
72 | -DLIBOMP_LIBFLAGS='-latomic' \ | 73 | -DLIBOMP_LIBFLAGS='-latomic' \ |
73 | -DCMAKE_SHARED_LINKER_FLAGS='-lgcc_s -latomic' \ | 74 | -DLIBCXX_HAS_GCC_S_LIB=ON \ |
74 | " | 75 | " |
75 | EXTRA_OECMAKE_append_powerpc = " -DLIBCXXABI_ENABLE_EXCEPTIONS=ON \ | 76 | EXTRA_OECMAKE_append_powerpc = " -DLIBCXXABI_ENABLE_EXCEPTIONS=ON \ |
76 | -DLIBCXX_ENABLE_EXCEPTIONS=ON \ | 77 | -DLIBCXX_ENABLE_EXCEPTIONS=ON \ |
77 | -DLIBOMP_LIBFLAGS='-latomic' \ | 78 | -DLIBOMP_LIBFLAGS='-latomic' \ |
78 | -DCMAKE_SHARED_LINKER_FLAGS='-lgcc_s -latomic' \ | 79 | -DLIBCXX_HAS_GCC_S_LIB=ON \ |
79 | " | 80 | " |
80 | do_compile() { | 81 | do_compile() { |
81 | if ${@bb.utils.contains('PACKAGECONFIG', 'unwind', 'true', 'false', d)}; then | ||
82 | ninja -v ${PARALLEL_MAKE} unwind | ||
83 | fi | ||
84 | ninja -v ${PARALLEL_MAKE} cxxabi | 82 | ninja -v ${PARALLEL_MAKE} cxxabi |
85 | ninja -v ${PARALLEL_MAKE} cxx | 83 | ninja -v ${PARALLEL_MAKE} cxx |
86 | } | 84 | } |
87 | 85 | ||
88 | do_install() { | 86 | do_install() { |
89 | if ${@bb.utils.contains('PACKAGECONFIG', 'unwind', 'true', 'false', d)}; then | ||
90 | DESTDIR=${D} ninja ${PARALLEL_MAKE} install-unwind | ||
91 | fi | ||
92 | DESTDIR=${D} ninja ${PARALLEL_MAKE} install-cxx install-cxxabi | 87 | DESTDIR=${D} ninja ${PARALLEL_MAKE} install-cxx install-cxxabi |
93 | } | 88 | } |
94 | 89 | ||
95 | ALLOW_EMPTY_${PN} = "1" | 90 | ALLOW_EMPTY_${PN} = "1" |
96 | 91 | ||
97 | RPROVIDES_${PN} += "${@bb.utils.contains('PACKAGECONFIG', 'unwind', 'libunwind', '', d)}" | ||
98 | RPROVIDES_${PN}-dbg += "${@bb.utils.contains('PACKAGECONFIG', 'unwind', 'libunwind-dbg', '', d)}" | ||
99 | RPROVIDES_${PN}-dev += "${@bb.utils.contains('PACKAGECONFIG', 'unwind', 'libunwind-dev', '', d)}" | ||
100 | RPROVIDES_${PN}-doc += "${@bb.utils.contains('PACKAGECONFIG', 'unwind', 'libunwind-doc', '', d)}" | ||
101 | RPROVIDES_${PN}-staticdev += "${@bb.utils.contains('PACKAGECONFIG', 'unwind', 'libunwind-staticdev', '', d)}" | ||
102 | RPROVIDES_${PN}-locale += "${@bb.utils.contains('PACKAGECONFIG', 'unwind', 'libunwind-locale', '', d)}" | ||
103 | RPROVIDES_${PN}-src += "${@bb.utils.contains('PACKAGECONFIG', 'unwind', 'libunwind-src', '', d)}" | ||
104 | |||
105 | PACKAGES_DYNAMIC += "${@bb.utils.contains('PACKAGECONFIG', 'unwind', '^libunwind-locale-.*', '', d)}" | ||
106 | |||
107 | BBCLASSEXTEND = "native nativesdk" | 92 | BBCLASSEXTEND = "native nativesdk" |
108 | TOOLCHAIN = "clang" | 93 | TOOLCHAIN = "clang" |
109 | 94 | ||