diff options
author | Khem Raj <raj.khem@gmail.com> | 2019-10-02 15:44:35 -0700 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2019-10-02 23:36:21 -0700 |
commit | 020afc93301dc463952e4de20a112612f99da592 (patch) | |
tree | 593e3e67f94be383ddc586dba486822eccb6632e | |
parent | f169030a6650d0b1ffb64e85d302b16ef137b60d (diff) | |
download | meta-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.bb | 45 |
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 | ||
11 | inherit cmake pythonnative | 11 | inherit cmake pythonnative |
12 | 12 | ||
13 | PACKAGECONFIG ??= "unwind exceptions" | ||
14 | PACKAGECONFIG_powerpc = "" | ||
15 | PACKAGECONFIG_riscv32 = "" | ||
16 | PACKAGECONFIG_riscv64 = "" | ||
17 | PACKAGECONFIG_append_armv5 = " no-atomics" | ||
18 | |||
19 | PACKAGECONFIG[unwind] = "-DLIBCXXABI_USE_LLVM_UNWINDER=ON,-DLIBCXXABI_USE_LLVM_UNWINDER=OFF,llvm-libunwind" | ||
20 | PACKAGECONFIG[exceptions] = "-DLIBCXXABI_ENABLE_EXCEPTIONS=ON -DDLIBCXX_ENABLE_EXCEPTIONS=ON,-DLIBCXXABI_ENABLE_EXCEPTIONS=OFF -DLIBCXX_ENABLE_EXCEPTIONS=OFF -DCMAKE_REQUIRED_FLAGS='-fno-exceptions'," | ||
21 | PACKAGECONFIG[no-atomics] = "-D_LIBCXXABI_HAS_ATOMIC_BUILTINS=OFF -DCMAKE_SHARED_LINKER_FLAGS='-latomic',," | ||
22 | |||
13 | DEPENDS += "ninja-native" | 23 | DEPENDS += "ninja-native" |
14 | DEPENDS += "ninja-native compiler-rt clang-cross-${TARGET_ARCH} virtual/${MLPREFIX}libc virtual/${TARGET_PREFIX}compilerlibs llvm-libunwind" | 24 | DEPENDS_append_class-target = " compiler-rt clang-cross-${TARGET_ARCH} virtual/${MLPREFIX}libc virtual/${TARGET_PREFIX}compilerlibs" |
15 | 25 | ||
16 | LIBCPLUSPLUS = "" | 26 | LIBCPLUSPLUS = "" |
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 | " |
47 | SHAREDFLAGS ?= "-lunwind" | ||
48 | SHAREDFLAGS_riscv32 = "-lgcc_s -latomic" | ||
49 | SHAREDFLAGS_riscv64 = "-lgcc_s -latomic" | ||
50 | SHAREDFLAGS_powerpc = "-lgcc_s -latomic" | ||
51 | SHAREDFLAGS_append_arm = " -latomic" | ||
52 | SHAREDFLAGS_append_armeb = " -latomic" | ||
53 | 55 | ||
54 | EXTRA_OECMAKE_append_class-native = " -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF" | 56 | EXTRA_OECMAKE_append_class-native = " -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF" |
57 | |||
55 | EXTRA_OECMAKE_append_class-nativesdk = " -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF" | 58 | EXTRA_OECMAKE_append_class-nativesdk = " -DLIBCXX_ENABLE_ABI_LINKER_SCRIPT=OFF" |
59 | |||
56 | EXTRA_OECMAKE_append_libc-musl = " -DLIBCXX_HAS_MUSL_LIBC=ON " | 60 | EXTRA_OECMAKE_append_libc-musl = " -DLIBCXX_HAS_MUSL_LIBC=ON " |
57 | EXTRA_OECMAKE_append_riscv64 = " -DLIBCXXABI_ENABLE_EXCEPTIONS=ON \ | 61 | |
58 | -DLIBCXX_ENABLE_EXCEPTIONS=ON \ | 62 | CXXFLAGS_append_armv5 = " -mfpu=vfp2" |
59 | -DLIBOMP_LIBFLAGS='-latomic' \ | 63 | |
60 | -DLIBCXX_HAS_GCC_S_LIB=ON \ | ||
61 | " | ||
62 | |||
63 | EXTRA_OECMAKE_append_armv5 = " -D_LIBCXXABI_HAS_ATOMIC_BUILTINS=OFF" | ||
64 | |||
65 | EXTRA_OECMAKE_append_arm = " -DCMAKE_REQUIRED_FLAGS='-fno-exceptions'" | ||
66 | |||
67 | EXTRA_OECMAKE_append_riscv32 = " -DLIBCXXABI_ENABLE_EXCEPTIONS=ON \ | ||
68 | -DLIBCXX_ENABLE_EXCEPTIONS=ON \ | ||
69 | -DLIBOMP_LIBFLAGS='-latomic' \ | ||
70 | -DLIBCXX_HAS_GCC_S_LIB=ON \ | ||
71 | " | ||
72 | EXTRA_OECMAKE_append_powerpc = " -DLIBCXXABI_ENABLE_EXCEPTIONS=ON \ | ||
73 | -DLIBCXX_ENABLE_EXCEPTIONS=ON \ | ||
74 | -DLIBOMP_LIBFLAGS='-latomic' \ | ||
75 | -DLIBCXX_HAS_GCC_S_LIB=ON \ | ||
76 | " | ||
77 | do_compile() { | 64 | do_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 |