From e3c6cdc243e71888c7f84ff99632728def120d95 Mon Sep 17 00:00:00 2001 From: Khem Raj Date: Fri, 13 Sep 2019 12:01:44 -0700 Subject: 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 --- recipes-devtools/clang/clang_git.bb | 38 ++++++++++++++++--------------------- 1 file 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 PACKAGECONFIG[shared-libs] = "-DLLVM_BUILD_LLVM_DYLIB=ON -DLLVM_LINK_LLVM_DYLIB=ON,,," PACKAGECONFIG[terminfo] = "-DLLVM_ENABLE_TERMINFO=ON,-DLLVM_ENABLE_TERMINFO=OFF,ncurses," PACKAGECONFIG[pfm] = "-DLLVM_ENABLE_LIBPFM=ON,-DLLVM_ENABLE_LIBPFM=OFF,libpfm," +PACKAGECONFIG[bootstrap] = "-DCLANG_ENABLE_BOOTSTRAP=On -DCLANG_BOOTSTRAP_PASSTHROUGH='${PASSTHROUGH}' -DBOOTSTRAP_LLVM_ENABLE_LTO=Thin -DBOOTSTRAP_LLVM_ENABLE_LLD=ON,,," + +BUILDTARGET = "${@bb.utils.contains('PACKAGECONFIG', 'bootstrap', 'stage2', '', d)}" +BINPATHPREFIX = "${@bb.utils.contains('PACKAGECONFIG', 'bootstrap', '/tools/clang/stage2-bins/NATIVE', '', d)}" +INSTALLTARGET = "${@bb.utils.contains('PACKAGECONFIG', 'bootstrap', 'stage2-install', 'install', d)}" + +PASSTHROUGH = "\ +CLANG_DEFAULT_RTLIB;CLANG_DEFAULT_CXX_STDLIB;LLVM_BUILD_LLVM_DYLIB;LLVM_LINK_LLVM_DYLIB;\ +LLVM_ENABLE_ASSERTIONS;LLVM_ENABLE_EXPENSIVE_CHECKS;LLVM_ENABLE_PIC;\ +LLVM_BINDINGS_LIST;LLVM_ENABLE_FFI;FFI_INCLUDE_DIR;LLVM_OPTIMIZED_TABLEGEN;\ +LLVM_ENABLE_RTTI;LLVM_ENABLE_EH;LLVM_BUILD_EXTERNAL_COMPILER_RT;CMAKE_SYSTEM_NAME;\ +CMAKE_BUILD_TYPE;BUILD_SHARED_LIBS;LLVM_ENABLE_PROJECTS;LLVM_BINUTILS_INCDIR;\ +LLVM_TARGETS_TO_BUILD;LLVM_EXPERIMENTAL_TARGETS_TO_BUILD;PYTHON_EXECUTABLE;\ +PYTHON_LIBRARY;PYTHON_INCLUDE_DIR;LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN;\ +" # # Default to build all OE-Core supported target arches (user overridable). # @@ -96,10 +111,6 @@ EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \ " EXTRA_OECMAKE_append_class-native = "\ - -DCLANG_ENABLE_BOOTSTRAP=On \ - -DCLANG_BOOTSTRAP_PASSTHROUGH='${PASSTHROUGH}' \ - -DBOOTSTRAP_LLVM_ENABLE_LTO=Thin \ - -DBOOTSTRAP_LLVM_ENABLE_LLD=ON \ -DLLVM_TARGETS_TO_BUILD='${LLVM_TARGETS_TO_BUILD}' \ -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD='${LLVM_EXPERIMENTAL_TARGETS_TO_BUILD}' \ -DPYTHON_EXECUTABLE='${PYTHON}' \ @@ -137,23 +148,6 @@ DEPENDS = "binutils zlib libffi libxml2 libedit ninja-native swig-native" DEPENDS_append_class-nativesdk = " clang-crosssdk-${SDK_ARCH} virtual/${TARGET_PREFIX}binutils-crosssdk nativesdk-python3" DEPENDS_append_class-target = " clang-cross-${TARGET_ARCH} python3" -BOOTSTRAPSTAGE ?= "" -BOOTSTRAPSTAGE_class-native = "stage2" -BINPATHPREFIX ?= "" -BINPATHPREFIX_class-native = "/tools/clang/stage2-bins/NATIVE" -INSTALLTARGET ?= "install" -INSTALLTARGET_class-native = "stage2-install" -PASSTHROUGH ?= "" -PASSTHROUGH_class-native = "\ -CLANG_DEFAULT_RTLIB;CLANG_DEFAULT_CXX_STDLIB;LLVM_BUILD_LLVM_DYLIB;LLVM_LINK_LLVM_DYLIB;\ -LLVM_ENABLE_ASSERTIONS;LLVM_ENABLE_EXPENSIVE_CHECKS;LLVM_ENABLE_PIC;\ -LLVM_BINDINGS_LIST;LLVM_ENABLE_FFI;FFI_INCLUDE_DIR;LLVM_OPTIMIZED_TABLEGEN;\ -LLVM_ENABLE_RTTI;LLVM_ENABLE_EH;LLVM_BUILD_EXTERNAL_COMPILER_RT;CMAKE_SYSTEM_NAME;\ -CMAKE_BUILD_TYPE;BUILD_SHARED_LIBS;LLVM_ENABLE_PROJECTS;LLVM_BINUTILS_INCDIR;\ -LLVM_TARGETS_TO_BUILD;LLVM_EXPERIMENTAL_TARGETS_TO_BUILD;PYTHON_EXECUTABLE;\ -PYTHON_LIBRARY;PYTHON_INCLUDE_DIR;LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN;\ -" - COMPATIBLE_HOST_riscv64 = "null" COMPATIBLE_HOST_riscv32 = "null" @@ -161,7 +155,7 @@ RRECOMMENDS_${PN} = "binutils" RRECOMMENDS_${PN}_append_class-target = " libcxx-dev" do_compile() { - ninja ${PARALLEL_MAKE} ${BOOTSTRAPSTAGE} + ninja ${PARALLEL_MAKE} ${BUILDTARGET} } do_install() { -- cgit v1.2.3-54-g00ecf