summaryrefslogtreecommitdiffstats
path: root/recipes-devtools/clang/clang_git.bb
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2019-09-13 12:01:44 -0700
committerKhem Raj <raj.khem@gmail.com>2019-09-14 00:47:23 -0700
commite3c6cdc243e71888c7f84ff99632728def120d95 (patch)
tree902149dd30a391f42dcfe3ebe494df91f4274abb /recipes-devtools/clang/clang_git.bb
parent2bbb0477e5578591daeba0d1bb9dcd500b31fdf3 (diff)
downloadmeta-clang-e3c6cdc243e71888c7f84ff99632728def120d95.tar.gz
clang: Turn bootstrapping into a packageconfig
This helps to enable/disable it on demand, currently we have some problems with stage2 not respecting PYTHON_EXECUTABLE e.g. which can cause problems when we have non-standard local installs of python, this should actually be fixed in llvm CMake infra, but we insulate ourselves here first Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'recipes-devtools/clang/clang_git.bb')
-rw-r--r--recipes-devtools/clang/clang_git.bb38
1 files changed, 16 insertions, 22 deletions
diff --git a/recipes-devtools/clang/clang_git.bb b/recipes-devtools/clang/clang_git.bb
index 1d9e4a0..ba69243 100644
--- a/recipes-devtools/clang/clang_git.bb
+++ b/recipes-devtools/clang/clang_git.bb
@@ -61,6 +61,21 @@ PACKAGECONFIG[full-lto] = "-DLLVM_ENABLE_LTO=Full -DLLVM_BINUTILS_INCDIR=${STAGI
61PACKAGECONFIG[shared-libs] = "-DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON,,," 61PACKAGECONFIG[shared-libs] = "-DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON,,,"
62PACKAGECONFIG[terminfo] = "-DLLVM_ENABLE_TERMINFO=ON,-DLLVM_ENABLE_TERMINFO=OFF,ncurses," 62PACKAGECONFIG[terminfo] = "-DLLVM_ENABLE_TERMINFO=ON,-DLLVM_ENABLE_TERMINFO=OFF,ncurses,"
63PACKAGECONFIG[pfm] = "-DLLVM_ENABLE_LIBPFM=ON,-DLLVM_ENABLE_LIBPFM=OFF,libpfm," 63PACKAGECONFIG[pfm] = "-DLLVM_ENABLE_LIBPFM=ON,-DLLVM_ENABLE_LIBPFM=OFF,libpfm,"
64PACKAGECONFIG[bootstrap] = "-DCLANG_ENABLE_BOOTSTRAP=On -DCLANG_BOOTSTRAP_PASSTHROUGH='${PASSTHROUGH}' -DBOOTSTRAP_LLVM_ENABLE_LTO=Thin -DBOOTSTRAP_LLVM_ENABLE_LLD=ON,,,"
65
66BUILDTARGET = "${@bb.utils.contains('PACKAGECONFIG', 'bootstrap', 'stage2', '', d)}"
67BINPATHPREFIX = "${@bb.utils.contains('PACKAGECONFIG', 'bootstrap', '/tools/clang/stage2-bins/NATIVE', '', d)}"
68INSTALLTARGET = "${@bb.utils.contains('PACKAGECONFIG', 'bootstrap', 'stage2-install', 'install', d)}"
69
70PASSTHROUGH = "\
71CLANG_DEFAULT_RTLIB;CLANG_DEFAULT_CXX_STDLIB;LLVM_BUILD_LLVM_DYLIB;LLVM_LINK_LLVM_DYLIB;\
72LLVM_ENABLE_ASSERTIONS;LLVM_ENABLE_EXPENSIVE_CHECKS;LLVM_ENABLE_PIC;\
73LLVM_BINDINGS_LIST;LLVM_ENABLE_FFI;FFI_INCLUDE_DIR;LLVM_OPTIMIZED_TABLEGEN;\
74LLVM_ENABLE_RTTI;LLVM_ENABLE_EH;LLVM_BUILD_EXTERNAL_COMPILER_RT;CMAKE_SYSTEM_NAME;\
75CMAKE_BUILD_TYPE;BUILD_SHARED_LIBS;LLVM_ENABLE_PROJECTS;LLVM_BINUTILS_INCDIR;\
76LLVM_TARGETS_TO_BUILD;LLVM_EXPERIMENTAL_TARGETS_TO_BUILD;PYTHON_EXECUTABLE;\
77PYTHON_LIBRARY;PYTHON_INCLUDE_DIR;LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN;\
78"
64# 79#
65# Default to build all OE-Core supported target arches (user overridable). 80# Default to build all OE-Core supported target arches (user overridable).
66# 81#
@@ -96,10 +111,6 @@ EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \
96" 111"
97 112
98EXTRA_OECMAKE_append_class-native = "\ 113EXTRA_OECMAKE_append_class-native = "\
99 -DCLANG_ENABLE_BOOTSTRAP=On \
100 -DCLANG_BOOTSTRAP_PASSTHROUGH='${PASSTHROUGH}' \
101 -DBOOTSTRAP_LLVM_ENABLE_LTO=Thin \
102 -DBOOTSTRAP_LLVM_ENABLE_LLD=ON \
103 -DLLVM_TARGETS_TO_BUILD='${LLVM_TARGETS_TO_BUILD}' \ 114 -DLLVM_TARGETS_TO_BUILD='${LLVM_TARGETS_TO_BUILD}' \
104 -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD}' \ 115 -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD}' \
105 -DPYTHON_EXECUTABLE='${PYTHON}' \ 116 -DPYTHON_EXECUTABLE='${PYTHON}' \
@@ -137,23 +148,6 @@ DEPENDS = "binutils zlib libffi libxml2 libedit ninja-native swig-native"
137DEPENDS_append_class-nativesdk = " clang-crosssdk-${SDK_ARCH} virtual/${TARGET_PREFIX}binutils-crosssdk nativesdk-python3" 148DEPENDS_append_class-nativesdk = " clang-crosssdk-${SDK_ARCH} virtual/${TARGET_PREFIX}binutils-crosssdk nativesdk-python3"
138DEPENDS_append_class-target = " clang-cross-${TARGET_ARCH} python3" 149DEPENDS_append_class-target = " clang-cross-${TARGET_ARCH} python3"
139 150
140BOOTSTRAPSTAGE ?= ""
141BOOTSTRAPSTAGE_class-native = "stage2"
142BINPATHPREFIX ?= ""
143BINPATHPREFIX_class-native = "/tools/clang/stage2-bins/NATIVE"
144INSTALLTARGET ?= "install"
145INSTALLTARGET_class-native = "stage2-install"
146PASSTHROUGH ?= ""
147PASSTHROUGH_class-native = "\
148CLANG_DEFAULT_RTLIB;CLANG_DEFAULT_CXX_STDLIB;LLVM_BUILD_LLVM_DYLIB;LLVM_LINK_LLVM_DYLIB;\
149LLVM_ENABLE_ASSERTIONS;LLVM_ENABLE_EXPENSIVE_CHECKS;LLVM_ENABLE_PIC;\
150LLVM_BINDINGS_LIST;LLVM_ENABLE_FFI;FFI_INCLUDE_DIR;LLVM_OPTIMIZED_TABLEGEN;\
151LLVM_ENABLE_RTTI;LLVM_ENABLE_EH;LLVM_BUILD_EXTERNAL_COMPILER_RT;CMAKE_SYSTEM_NAME;\
152CMAKE_BUILD_TYPE;BUILD_SHARED_LIBS;LLVM_ENABLE_PROJECTS;LLVM_BINUTILS_INCDIR;\
153LLVM_TARGETS_TO_BUILD;LLVM_EXPERIMENTAL_TARGETS_TO_BUILD;PYTHON_EXECUTABLE;\
154PYTHON_LIBRARY;PYTHON_INCLUDE_DIR;LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN;\
155"
156
157COMPATIBLE_HOST_riscv64 = "null" 151COMPATIBLE_HOST_riscv64 = "null"
158COMPATIBLE_HOST_riscv32 = "null" 152COMPATIBLE_HOST_riscv32 = "null"
159 153
@@ -161,7 +155,7 @@ RRECOMMENDS_${PN} = "binutils"
161RRECOMMENDS_${PN}_append_class-target = " libcxx-dev" 155RRECOMMENDS_${PN}_append_class-target = " libcxx-dev"
162 156
163do_compile() { 157do_compile() {
164 ninja ${PARALLEL_MAKE} ${BOOTSTRAPSTAGE} 158 ninja ${PARALLEL_MAKE} ${BUILDTARGET}
165} 159}
166 160
167do_install() { 161do_install() {