summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2019-10-02 15:44:35 -0700
committerKhem Raj <raj.khem@gmail.com>2019-10-02 23:36:21 -0700
commit020afc93301dc463952e4de20a112612f99da592 (patch)
tree593e3e67f94be383ddc586dba486822eccb6632e
parentf169030a6650d0b1ffb64e85d302b16ef137b60d (diff)
downloadmeta-clang-020afc93301dc463952e4de20a112612f99da592.tar.gz
libcxx: Introduce packageconfigs for unwind and exceptions atomics support
Fix build on armv5 Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r--recipes-devtools/clang/libcxx_git.bb45
1 files changed, 16 insertions, 29 deletions
diff --git a/recipes-devtools/clang/libcxx_git.bb b/recipes-devtools/clang/libcxx_git.bb
index 10c20fe..b1fb023 100644
--- a/recipes-devtools/clang/libcxx_git.bb
+++ b/recipes-devtools/clang/libcxx_git.bb
@@ -10,8 +10,18 @@ require common-source.inc
10 10
11inherit cmake pythonnative 11inherit cmake pythonnative
12 12
13PACKAGECONFIG ??= "unwind exceptions"
14PACKAGECONFIG_powerpc = ""
15PACKAGECONFIG_riscv32 = ""
16PACKAGECONFIG_riscv64 = ""
17PACKAGECONFIG_append_armv5 = " no-atomics"
18
19PACKAGECONFIG[unwind] = "-DLIBCXXABI_USE_LLVM_UNWINDER=ON,-DLIBCXXABI_USE_LLVM_UNWINDER=OFF,llvm-libunwind"
20PACKAGECONFIG[exceptions] = "-DLIBCXXABI_ENABLE_EXCEPTIONS=ON -DDLIBCXX_ENABLE_EXCEPTIONS=ON,-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF -DLIBCXX_ENABLE_EXCEPTIONS=OFF -DCMAKE_REQUIRED_FLAGS='-fno-exceptions',"
21PACKAGECONFIG[no-atomics] = "-D_LIBCXXABI_HAS_ATOMIC_BUILTINS=OFF -DCMAKE_SHARED_LINKER_FLAGS='-latomic',,"
22
13DEPENDS += "ninja-native" 23DEPENDS += "ninja-native"
14DEPENDS += "ninja-native compiler-rt clang-cross-${TARGET_ARCH} virtual/${MLPREFIX}libc virtual/${TARGET_PREFIX}compilerlibs llvm-libunwind" 24DEPENDS_append_class-target = " compiler-rt clang-cross-${TARGET_ARCH} virtual/${MLPREFIX}libc virtual/${TARGET_PREFIX}compilerlibs"
15 25
16LIBCPLUSPLUS = "" 26LIBCPLUSPLUS = ""
17 27
@@ -30,12 +40,10 @@ EXTRA_OECMAKE += "\
30 -DLIBCXXABI_ENABLE_SHARED=ON \ 40 -DLIBCXXABI_ENABLE_SHARED=ON \
31 -DLIBCXXABI_USE_COMPILER_RT=ON \ 41 -DLIBCXXABI_USE_COMPILER_RT=ON \
32 -DLIBCXXABI_LIBCXX_INCLUDES=${S}/libcxx/include \ 42 -DLIBCXXABI_LIBCXX_INCLUDES=${S}/libcxx/include \
33 -DLIBCXXABI_USE_LLVM_UNWINDER=ON \
34 -DLIBCXX_CXX_ABI=libcxxabi \ 43 -DLIBCXX_CXX_ABI=libcxxabi \
35 -DLIBCXX_USE_COMPILER_RT=ON \ 44 -DLIBCXX_USE_COMPILER_RT=ON \
36 -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${S}/libcxxabi/include \ 45 -DLIBCXX_CXX_ABI_INCLUDE_PATHS=${S}/libcxxabi/include \
37 -DLIBCXX_CXX_ABI_LIBRARY_PATH=${B}/${baselib} \ 46 -DLIBCXX_CXX_ABI_LIBRARY_PATH=${B}/${baselib} \
38 -DCMAKE_SHARED_LINKER_FLAGS='${LDFLAGS} ${SHAREDFLAGS}' \
39 -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${AR} \ 47 -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${AR} \
40 -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${NM} \ 48 -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${NM} \
41 -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${RANLIB} \ 49 -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${RANLIB} \
@@ -44,36 +52,15 @@ EXTRA_OECMAKE += "\
44 -G Ninja \ 52 -G Ninja \
45 ${S}/llvm \ 53 ${S}/llvm \
46" 54"
47SHAREDFLAGS ?= "-lunwind"
48SHAREDFLAGS_riscv32 = "-lgcc_s -latomic"
49SHAREDFLAGS_riscv64 = "-lgcc_s -latomic"
50SHAREDFLAGS_powerpc = "-lgcc_s -latomic"
51SHAREDFLAGS_append_arm = " -latomic"
52SHAREDFLAGS_append_armeb = " -latomic"
53 55
54EXTRA_OECMAKE_append_class-native = " -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF" 56EXTRA_OECMAKE_append_class-native = " -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF"
57
55EXTRA_OECMAKE_append_class-nativesdk = " -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF" 58EXTRA_OECMAKE_append_class-nativesdk = " -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF"
59
56EXTRA_OECMAKE_append_libc-musl = " -DLIBCXX_HAS_MUSL_LIBC=ON " 60EXTRA_OECMAKE_append_libc-musl = " -DLIBCXX_HAS_MUSL_LIBC=ON "
57EXTRA_OECMAKE_append_riscv64 = " -DLIBCXXABI_ENABLE_EXCEPTIONS=ON \ 61
58 -DLIBCXX_ENABLE_EXCEPTIONS=ON \ 62CXXFLAGS_append_armv5 = " -mfpu=vfp2"
59 -DLIBOMP_LIBFLAGS='-latomic' \ 63
60 -DLIBCXX_HAS_GCC_S_LIB=ON \
61 "
62
63EXTRA_OECMAKE_append_armv5 = " -D_LIBCXXABI_HAS_ATOMIC_BUILTINS=OFF"
64
65EXTRA_OECMAKE_append_arm = " -DCMAKE_REQUIRED_FLAGS='-fno-exceptions'"
66
67EXTRA_OECMAKE_append_riscv32 = " -DLIBCXXABI_ENABLE_EXCEPTIONS=ON \
68 -DLIBCXX_ENABLE_EXCEPTIONS=ON \
69 -DLIBOMP_LIBFLAGS='-latomic' \
70 -DLIBCXX_HAS_GCC_S_LIB=ON \
71 "
72EXTRA_OECMAKE_append_powerpc = " -DLIBCXXABI_ENABLE_EXCEPTIONS=ON \
73 -DLIBCXX_ENABLE_EXCEPTIONS=ON \
74 -DLIBOMP_LIBFLAGS='-latomic' \
75 -DLIBCXX_HAS_GCC_S_LIB=ON \
76 "
77do_compile() { 64do_compile() {
78 ninja -v ${PARALLEL_MAKE} cxxabi 65 ninja -v ${PARALLEL_MAKE} cxxabi
79 ninja -v ${PARALLEL_MAKE} cxx 66 ninja -v ${PARALLEL_MAKE} cxx