diff options
author | Khem Raj <raj.khem@gmail.com> | 2019-02-11 07:13:58 -0800 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2019-02-11 07:21:21 -0800 |
commit | 2486dda0738956df41a912d666f2feac5ec81e14 (patch) | |
tree | 4897a22131db467559e02842b4f7dae7661ecb2f | |
parent | 638bd7550d93a67791f33bef1882401a4181ae87 (diff) | |
download | meta-clang-2486dda0738956df41a912d666f2feac5ec81e14.tar.gz |
clang: Use gold linker for nativersdk
nativesdk packages are special in OE, where linker pads the dynamic
section with additional bits so that can be patched to a relocatable
location duting installing SDK, lld will need such a patch if it has to
link the nativesdk apps, until then we use gold
Add more fine grained packageconfigs for libpfm, ncurses, and libedit
Enable clang as toolchain to build nativesdk version of clang with gold
linker
Signed-off-by: Khem Raj <raj.khem@gmail.com>
-rw-r--r-- | recipes-devtools/clang/clang_git.bb | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/recipes-devtools/clang/clang_git.bb b/recipes-devtools/clang/clang_git.bb index 40bcaba..8298c81 100644 --- a/recipes-devtools/clang/clang_git.bb +++ b/recipes-devtools/clang/clang_git.bb | |||
@@ -10,17 +10,10 @@ require common-source.inc | |||
10 | 10 | ||
11 | INHIBIT_DEFAULT_DEPS = "1" | 11 | INHIBIT_DEFAULT_DEPS = "1" |
12 | 12 | ||
13 | OECMAKE_NATIVE_C_COMPILER_class-nativesdk = "clang -static-libgcc" | 13 | BUILD_AR_class-nativesdk = "llvm-ar" |
14 | OECMAKE_NATIVE_CXX_COMPILER_class-nativesdk = "clang++ -static-libgcc" | 14 | BUILD_RANLIB_class-nativesdk = "llvm-ranlib" |
15 | OECMAKE_NATIVE_AR_class-nativesdk = "llvm-ar" | 15 | BUILD_NM_class-nativesdk = "llvm-nm" |
16 | OECMAKE_NATIVE_RANLIB_class-nativesdk = "llvm-ranlib" | 16 | LDFLAGS_append_class-nativesdk = " -fuse-ld=gold" |
17 | OECMAKE_NATIVE_NM_class-nativesdk = "llvm-nm" | ||
18 | TOOLCHAIN_OPTIONS_append_class-nativesdk = " -static-libgcc" | ||
19 | |||
20 | CC_class-nativesdk = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | ||
21 | CXX_class-nativesdk = "${CCACHE}${HOST_PREFIX}clang++ ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | ||
22 | CPP_class-nativesdk = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS} -E" | ||
23 | CCLD_class-nativesdk = "${CCACHE}${HOST_PREFIX}clang ${HOST_CC_ARCH}${TOOLCHAIN_OPTIONS}" | ||
24 | 17 | ||
25 | inherit cmake cmake-native | 18 | inherit cmake cmake-native |
26 | 19 | ||
@@ -64,6 +57,9 @@ PACKAGECONFIG[libcplusplus] = "-DCLANG_DEFAULT_CXX_STDLIB=libc++,,libcxx" | |||
64 | PACKAGECONFIG[thin-lto] = "-DLLVM_ENABLE_LTO=Thin -DLLVM_BINUTILS_INCDIR=${STAGING_INCDIR},,binutils," | 57 | PACKAGECONFIG[thin-lto] = "-DLLVM_ENABLE_LTO=Thin -DLLVM_BINUTILS_INCDIR=${STAGING_INCDIR},,binutils," |
65 | PACKAGECONFIG[full-lto] = "-DLLVM_ENABLE_LTO=Full -DLLVM_BINUTILS_INCDIR=${STAGING_INCDIR},,binutils," | 58 | PACKAGECONFIG[full-lto] = "-DLLVM_ENABLE_LTO=Full -DLLVM_BINUTILS_INCDIR=${STAGING_INCDIR},,binutils," |
66 | PACKAGECONFIG[shared-libs] = "-DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON,,," | 59 | PACKAGECONFIG[shared-libs] = "-DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON,,," |
60 | PACKAGECONFIG[terminfo] = "-DLLVM_ENABLE_TERMINFO=ON,-DLLVM_ENABLE_TERMINFO=OFF,ncurses," | ||
61 | PACKAGECONFIG[pfm] = "-DLLVM_ENABLE_LIBPFM=ON,-DLLVM_ENABLE_LIBPFM=OFF,libpfm," | ||
62 | PACKAGECONFIG[libedit] = "-DLLVM_ENABLE_LIBEDIT=ON,-DLLVM_ENABLE_LIBEDIT=OFF,libedit," | ||
67 | 63 | ||
68 | # | 64 | # |
69 | # Default to build all OE-Core supported target arches (user overridable). | 65 | # Default to build all OE-Core supported target arches (user overridable). |
@@ -105,8 +101,10 @@ EXTRA_OECMAKE_append_class-native = "\ | |||
105 | " | 101 | " |
106 | EXTRA_OECMAKE_append_class-nativesdk = "\ | 102 | EXTRA_OECMAKE_append_class-nativesdk = "\ |
107 | -DCMAKE_CROSSCOMPILING:BOOL=ON \ | 103 | -DCMAKE_CROSSCOMPILING:BOOL=ON \ |
108 | -DLLVM_ENABLE_LLD=ON \ | ||
109 | -DCROSS_TOOLCHAIN_FLAGS_NATIVE='-DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain-native.cmake' \ | 104 | -DCROSS_TOOLCHAIN_FLAGS_NATIVE='-DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain-native.cmake' \ |
105 | -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \ | ||
106 | -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \ | ||
107 | -DCMAKE_NM=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-nm \ | ||
110 | -DLLVM_TARGETS_TO_BUILD='${LLVM_TARGETS_TO_BUILD}' \ | 108 | -DLLVM_TARGETS_TO_BUILD='${LLVM_TARGETS_TO_BUILD}' \ |
111 | -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD}' \ | 109 | -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD}' \ |
112 | -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ | 110 | -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen \ |
@@ -207,3 +205,5 @@ INSANE_SKIP_${PN}-dev += "dev-elf" | |||
207 | SSTATE_SCAN_FILES_remove = "*-config" | 205 | SSTATE_SCAN_FILES_remove = "*-config" |
208 | 206 | ||
209 | TOOLCHAIN = "clang" | 207 | TOOLCHAIN = "clang" |
208 | TOOLCHAIN_class-native = "gcc" | ||
209 | TOOLCHAIN_class-nativesdk = "clang" | ||