diff options
Diffstat (limited to 'recipes-devtools/clang/compiler-rt-sanitizers_git.bb')
-rw-r--r-- | recipes-devtools/clang/compiler-rt-sanitizers_git.bb | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/recipes-devtools/clang/compiler-rt-sanitizers_git.bb b/recipes-devtools/clang/compiler-rt-sanitizers_git.bb index 1cee81b..e9b6a9e 100644 --- a/recipes-devtools/clang/compiler-rt-sanitizers_git.bb +++ b/recipes-devtools/clang/compiler-rt-sanitizers_git.bb | |||
@@ -21,7 +21,8 @@ TUNE_CCARGS:remove = "-no-integrated-as" | |||
21 | 21 | ||
22 | DEPENDS += "ninja-native virtual/crypt compiler-rt" | 22 | DEPENDS += "ninja-native virtual/crypt compiler-rt" |
23 | DEPENDS:append:class-native = " clang-native libxcrypt-native" | 23 | DEPENDS:append:class-native = " clang-native libxcrypt-native" |
24 | DEPENDS:append:class-nativesdk = " clang-native clang-crosssdk-${SDK_SYS} nativesdk-libxcrypt" | 24 | DEPENDS:append:class-nativesdk = " clang-native clang-crosssdk-${SDK_SYS} nativesdk-libxcrypt nativesdk-gcc-runtime" |
25 | DEPENDS:append:class-target = " clang-cross-${TARGET_ARCH} virtual/${MLPREFIX}libc gcc-runtime" | ||
25 | 26 | ||
26 | PACKAGECONFIG ??= "" | 27 | PACKAGECONFIG ??= "" |
27 | PACKAGECONFIG[crt] = "-DCOMPILER_RT_BUILD_CRT:BOOL=ON,-DCOMPILER_RT_BUILD_CRT:BOOL=OFF" | 28 | PACKAGECONFIG[crt] = "-DCOMPILER_RT_BUILD_CRT:BOOL=ON,-DCOMPILER_RT_BUILD_CRT:BOOL=OFF" |
@@ -40,10 +41,8 @@ OECMAKE_TARGET_INSTALL = "install-compiler-rt install-compiler-rt-headers" | |||
40 | OECMAKE_SOURCEPATH = "${S}/llvm" | 41 | OECMAKE_SOURCEPATH = "${S}/llvm" |
41 | EXTRA_OECMAKE += "-DCMAKE_BUILD_TYPE=RelWithDebInfo \ | 42 | EXTRA_OECMAKE += "-DCMAKE_BUILD_TYPE=RelWithDebInfo \ |
42 | -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF \ | 43 | -DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF \ |
43 | -DCOMPILER_RT_STANDALONE_BUILD=OFF \ | 44 | -DCOMPILER_RT_STANDALONE_BUILD=ON \ |
44 | -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON \ | ||
45 | -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON \ | 45 | -DCOMPILER_RT_USE_BUILTINS_LIBRARY=ON \ |
46 | -DCMAKE_C_COMPILER_TARGET=${HOST_ARCH}${HOST_VENDOR}-${HOST_OS}${HF} \ | ||
47 | -DCOMPILER_RT_BUILD_BUILTINS=OFF \ | 46 | -DCOMPILER_RT_BUILD_BUILTINS=OFF \ |
48 | -DCOMPILER_RT_INCLUDE_TESTS=OFF \ | 47 | -DCOMPILER_RT_INCLUDE_TESTS=OFF \ |
49 | -DSANITIZER_CXX_ABI_LIBNAME=${@bb.utils.contains("TC_CXX_RUNTIME", "llvm", "libc++", "libstdc++", d)} \ | 48 | -DSANITIZER_CXX_ABI_LIBNAME=${@bb.utils.contains("TC_CXX_RUNTIME", "llvm", "libc++", "libstdc++", d)} \ |
@@ -52,24 +51,29 @@ EXTRA_OECMAKE += "-DCMAKE_BUILD_TYPE=RelWithDebInfo \ | |||
52 | -DCOMPILER_RT_BUILD_LIBFUZZER=ON \ | 51 | -DCOMPILER_RT_BUILD_LIBFUZZER=ON \ |
53 | -DCOMPILER_RT_BUILD_PROFILE=ON \ | 52 | -DCOMPILER_RT_BUILD_PROFILE=ON \ |
54 | -DCOMPILER_RT_BUILD_MEMPROF=ON \ | 53 | -DCOMPILER_RT_BUILD_MEMPROF=ON \ |
55 | -DLLVM_ENABLE_PROJECTS='compiler-rt' \ | 54 | -DLLVM_ENABLE_RUNTIMES='compiler-rt' \ |
56 | -DLLVM_LIBDIR_SUFFIX=${LLVM_LIBDIR_SUFFIX} \ | 55 | -DLLVM_LIBDIR_SUFFIX=${LLVM_LIBDIR_SUFFIX} \ |
57 | -DLLVM_APPEND_VC_REV=OFF \ | 56 | -DLLVM_APPEND_VC_REV=OFF \ |
57 | -S ${S}/runtimes \ | ||
58 | " | 58 | " |
59 | 59 | ||
60 | EXTRA_OECMAKE:append:class-nativesdk = "\ | 60 | EXTRA_OECMAKE:append:class-target = "\ |
61 | -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \ | 61 | -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \ |
62 | -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \ | 62 | -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \ |
63 | -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-nm \ | 63 | -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-nm \ |
64 | -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ | 64 | -DCMAKE_C_COMPILER_TARGET=${HOST_ARCH}${HOST_VENDOR}-${HOST_OS}${HF} \ |
65 | -DCLANG_TABLEGEN=${STAGING_BINDIR_NATIVE}/clang-tblgen \ | 65 | -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON \ |
66 | -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ | ||
66 | " | 67 | " |
67 | 68 | ||
68 | EXTRA_OECMAKE:append:class-target = "\ | 69 | EXTRA_OECMAKE:append:class-nativesdk = "\ |
69 | -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \ | 70 | -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \ |
70 | -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \ | 71 | -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \ |
71 | -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-nm \ | 72 | -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-nm \ |
72 | -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ | 73 | -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ |
74 | -DCLANG_TABLEGEN=${STAGING_BINDIR_NATIVE}/clang-tblgen \ | ||
75 | -DCMAKE_C_COMPILER_TARGET=${HOST_ARCH}${HOST_VENDOR}-${HOST_OS}${HF} \ | ||
76 | -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON \ | ||
73 | " | 77 | " |
74 | 78 | ||
75 | EXTRA_OECMAKE:append:libc-musl = " -DLIBCXX_HAS_MUSL_LIBC=ON " | 79 | EXTRA_OECMAKE:append:libc-musl = " -DLIBCXX_HAS_MUSL_LIBC=ON " |
@@ -77,11 +81,12 @@ EXTRA_OECMAKE:append:powerpc = " -DCOMPILER_RT_DEFAULT_TARGET_ARCH=powerpc " | |||
77 | 81 | ||
78 | do_install:append () { | 82 | do_install:append () { |
79 | if [ -n "${LLVM_LIBDIR_SUFFIX}" ]; then | 83 | if [ -n "${LLVM_LIBDIR_SUFFIX}" ]; then |
80 | mkdir -p ${D}${nonarch_libdir}/clang | 84 | mkdir -p ${D}${nonarch_libdir}/clang/${MAJOR_VER}.${MINOR_VER}.${PATCH_VER}/lib |
81 | mv ${D}${libdir}/clang/${MAJOR_VER} ${D}${nonarch_libdir}/clang/${MAJOR_VER}.${MINOR_VER}.${PATCH_VER} | 85 | mv ${D}${libdir}/linux ${D}${nonarch_libdir}/clang/${MAJOR_VER}.${MINOR_VER}.${PATCH_VER}/lib |
82 | rmdir --ignore-fail-on-non-empty ${D}${libdir}/clang ${D}${libdir} | 86 | rmdir --ignore-fail-on-non-empty ${D}${libdir} |
83 | else | 87 | else |
84 | mv ${D}${libdir}/clang/${MAJOR_VER} ${D}${libdir}/clang/${MAJOR_VER}.${MINOR_VER}.${PATCH_VER} | 88 | mkdir -p ${D}${libdir}/clang/${MAJOR_VER}.${MINOR_VER}.${PATCH_VER}/lib |
89 | mv ${D}${libdir}/linux ${D}${libdir}/clang/${MAJOR_VER}.${MINOR_VER}.${PATCH_VER}/lib | ||
85 | fi | 90 | fi |
86 | # Already shipped with compile-rt Orc support | 91 | # Already shipped with compile-rt Orc support |
87 | rm -rf ${D}${nonarch_libdir}/clang/${MAJOR_VER}/lib/linux/liborc_rt-*.a | 92 | rm -rf ${D}${nonarch_libdir}/clang/${MAJOR_VER}/lib/linux/liborc_rt-*.a |
@@ -117,7 +122,10 @@ BBCLASSEXTEND = "native nativesdk" | |||
117 | ALLOW_EMPTY:${PN} = "1" | 122 | ALLOW_EMPTY:${PN} = "1" |
118 | ALLOW_EMPTY:${PN}-dev = "1" | 123 | ALLOW_EMPTY:${PN}-dev = "1" |
119 | 124 | ||
120 | TOOLCHAIN:forcevariable = "clang" | 125 | TOOLCHAIN = "clang" |
126 | # Overrides defaults from clang.bbclass | ||
127 | TOOLCHAIN:class-nativesdk = "clang" | ||
128 | TOOLCHAIN:class-native = "clang" | ||
121 | SYSROOT_DIRS:append:class-target = " ${nonarch_libdir}" | 129 | SYSROOT_DIRS:append:class-target = " ${nonarch_libdir}" |
122 | 130 | ||
123 | # riscv and x86_64 Sanitizers work on musl too | 131 | # riscv and x86_64 Sanitizers work on musl too |