diff options
author | Khem Raj <raj.khem@gmail.com> | 2019-09-13 12:01:44 -0700 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2019-09-14 00:47:23 -0700 |
commit | e3c6cdc243e71888c7f84ff99632728def120d95 (patch) | |
tree | 902149dd30a391f42dcfe3ebe494df91f4274abb /recipes-devtools/clang/clang_git.bb | |
parent | 2bbb0477e5578591daeba0d1bb9dcd500b31fdf3 (diff) | |
download | meta-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.bb | 38 |
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 | |||
61 | PACKAGECONFIG[shared-libs] = "-DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON,,," | 61 | PACKAGECONFIG[shared-libs] = "-DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON,,," |
62 | PACKAGECONFIG[terminfo] = "-DLLVM_ENABLE_TERMINFO=ON,-DLLVM_ENABLE_TERMINFO=OFF,ncurses," | 62 | PACKAGECONFIG[terminfo] = "-DLLVM_ENABLE_TERMINFO=ON,-DLLVM_ENABLE_TERMINFO=OFF,ncurses," |
63 | PACKAGECONFIG[pfm] = "-DLLVM_ENABLE_LIBPFM=ON,-DLLVM_ENABLE_LIBPFM=OFF,libpfm," | 63 | PACKAGECONFIG[pfm] = "-DLLVM_ENABLE_LIBPFM=ON,-DLLVM_ENABLE_LIBPFM=OFF,libpfm," |
64 | PACKAGECONFIG[bootstrap] = "-DCLANG_ENABLE_BOOTSTRAP=On -DCLANG_BOOTSTRAP_PASSTHROUGH='${PASSTHROUGH}' -DBOOTSTRAP_LLVM_ENABLE_LTO=Thin -DBOOTSTRAP_LLVM_ENABLE_LLD=ON,,," | ||
65 | |||
66 | BUILDTARGET = "${@bb.utils.contains('PACKAGECONFIG', 'bootstrap', 'stage2', '', d)}" | ||
67 | BINPATHPREFIX = "${@bb.utils.contains('PACKAGECONFIG', 'bootstrap', '/tools/clang/stage2-bins/NATIVE', '', d)}" | ||
68 | INSTALLTARGET = "${@bb.utils.contains('PACKAGECONFIG', 'bootstrap', 'stage2-install', 'install', d)}" | ||
69 | |||
70 | PASSTHROUGH = "\ | ||
71 | CLANG_DEFAULT_RTLIB;CLANG_DEFAULT_CXX_STDLIB;LLVM_BUILD_LLVM_DYLIB;LLVM_LINK_LLVM_DYLIB;\ | ||
72 | LLVM_ENABLE_ASSERTIONS;LLVM_ENABLE_EXPENSIVE_CHECKS;LLVM_ENABLE_PIC;\ | ||
73 | LLVM_BINDINGS_LIST;LLVM_ENABLE_FFI;FFI_INCLUDE_DIR;LLVM_OPTIMIZED_TABLEGEN;\ | ||
74 | LLVM_ENABLE_RTTI;LLVM_ENABLE_EH;LLVM_BUILD_EXTERNAL_COMPILER_RT;CMAKE_SYSTEM_NAME;\ | ||
75 | CMAKE_BUILD_TYPE;BUILD_SHARED_LIBS;LLVM_ENABLE_PROJECTS;LLVM_BINUTILS_INCDIR;\ | ||
76 | LLVM_TARGETS_TO_BUILD;LLVM_EXPERIMENTAL_TARGETS_TO_BUILD;PYTHON_EXECUTABLE;\ | ||
77 | PYTHON_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 | ||
98 | EXTRA_OECMAKE_append_class-native = "\ | 113 | EXTRA_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" | |||
137 | DEPENDS_append_class-nativesdk = " clang-crosssdk-${SDK_ARCH} virtual/${TARGET_PREFIX}binutils-crosssdk nativesdk-python3" | 148 | DEPENDS_append_class-nativesdk = " clang-crosssdk-${SDK_ARCH} virtual/${TARGET_PREFIX}binutils-crosssdk nativesdk-python3" |
138 | DEPENDS_append_class-target = " clang-cross-${TARGET_ARCH} python3" | 149 | DEPENDS_append_class-target = " clang-cross-${TARGET_ARCH} python3" |
139 | 150 | ||
140 | BOOTSTRAPSTAGE ?= "" | ||
141 | BOOTSTRAPSTAGE_class-native = "stage2" | ||
142 | BINPATHPREFIX ?= "" | ||
143 | BINPATHPREFIX_class-native = "/tools/clang/stage2-bins/NATIVE" | ||
144 | INSTALLTARGET ?= "install" | ||
145 | INSTALLTARGET_class-native = "stage2-install" | ||
146 | PASSTHROUGH ?= "" | ||
147 | PASSTHROUGH_class-native = "\ | ||
148 | CLANG_DEFAULT_RTLIB;CLANG_DEFAULT_CXX_STDLIB;LLVM_BUILD_LLVM_DYLIB;LLVM_LINK_LLVM_DYLIB;\ | ||
149 | LLVM_ENABLE_ASSERTIONS;LLVM_ENABLE_EXPENSIVE_CHECKS;LLVM_ENABLE_PIC;\ | ||
150 | LLVM_BINDINGS_LIST;LLVM_ENABLE_FFI;FFI_INCLUDE_DIR;LLVM_OPTIMIZED_TABLEGEN;\ | ||
151 | LLVM_ENABLE_RTTI;LLVM_ENABLE_EH;LLVM_BUILD_EXTERNAL_COMPILER_RT;CMAKE_SYSTEM_NAME;\ | ||
152 | CMAKE_BUILD_TYPE;BUILD_SHARED_LIBS;LLVM_ENABLE_PROJECTS;LLVM_BINUTILS_INCDIR;\ | ||
153 | LLVM_TARGETS_TO_BUILD;LLVM_EXPERIMENTAL_TARGETS_TO_BUILD;PYTHON_EXECUTABLE;\ | ||
154 | PYTHON_LIBRARY;PYTHON_INCLUDE_DIR;LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN;\ | ||
155 | " | ||
156 | |||
157 | COMPATIBLE_HOST_riscv64 = "null" | 151 | COMPATIBLE_HOST_riscv64 = "null" |
158 | COMPATIBLE_HOST_riscv32 = "null" | 152 | COMPATIBLE_HOST_riscv32 = "null" |
159 | 153 | ||
@@ -161,7 +155,7 @@ RRECOMMENDS_${PN} = "binutils" | |||
161 | RRECOMMENDS_${PN}_append_class-target = " libcxx-dev" | 155 | RRECOMMENDS_${PN}_append_class-target = " libcxx-dev" |
162 | 156 | ||
163 | do_compile() { | 157 | do_compile() { |
164 | ninja ${PARALLEL_MAKE} ${BOOTSTRAPSTAGE} | 158 | ninja ${PARALLEL_MAKE} ${BUILDTARGET} |
165 | } | 159 | } |
166 | 160 | ||
167 | do_install() { | 161 | do_install() { |