Path: blob/main/conda-recipes/llvmdev_for_wheel/build.sh
1154 views
#!/bin/bash1# File is a copy of ../llvmdev/build.sh with changes to:2# - disable ZSTD345# based on https://github.com/AnacondaRecipes/llvmdev-feedstock/blob/master/recipe/build.sh67set -x89# Make osx work like linux.10sed -i.bak "s/NOT APPLE AND ARG_SONAME/ARG_SONAME/g" llvm/cmake/modules/AddLLVM.cmake11sed -i.bak "s/NOT APPLE AND NOT ARG_SONAME/NOT ARG_SONAME/g" llvm/cmake/modules/AddLLVM.cmake1213mkdir build14cd build1516export CPU_COUNT=41718CMAKE_ARGS="${CMAKE_ARGS} -DLLVM_ENABLE_PROJECTS=lld;compiler-rt"1920if [[ "$target_platform" == "linux-64" ]]; then21CMAKE_ARGS="${CMAKE_ARGS} -DLLVM_USE_INTEL_JITEVENTS=ON"22fi2324if [[ "$CC_FOR_BUILD" != "" && "$CC_FOR_BUILD" != "$CC" ]]; then25CMAKE_ARGS="${CMAKE_ARGS} -DCROSS_TOOLCHAIN_FLAGS_NATIVE=-DCMAKE_C_COMPILER=$CC_FOR_BUILD;-DCMAKE_CXX_COMPILER=$CXX_FOR_BUILD;-DCMAKE_C_FLAGS=-O2;-DCMAKE_CXX_FLAGS=-O2;-DCMAKE_EXE_LINKER_FLAGS=-Wl,-rpath,${BUILD_PREFIX}/lib;-DCMAKE_MODULE_LINKER_FLAGS=;-DCMAKE_SHARED_LINKER_FLAGS=;-DCMAKE_STATIC_LINKER_FLAGS=;-DLLVM_INCLUDE_BENCHMARKS=OFF;"26CMAKE_ARGS="${CMAKE_ARGS} -DLLVM_HOST_TRIPLE=$(echo $HOST | sed s/conda/unknown/g) -DLLVM_DEFAULT_TARGET_TRIPLE=$(echo $HOST | sed s/conda/unknown/g)"27fi2829# disable -fno-plt due to https://bugs.llvm.org/show_bug.cgi?id=51863 due to some GCC bug30if [[ "$target_platform" == "linux-ppc64le" ]]; then31CFLAGS="$(echo $CFLAGS | sed 's/-fno-plt //g')"32CXXFLAGS="$(echo $CXXFLAGS | sed 's/-fno-plt //g')"33CMAKE_ARGS="${CMAKE_ARGS} -DFFI_INCLUDE_DIR=$PREFIX/include"34CMAKE_ARGS="${CMAKE_ARGS} -DFFI_LIBRARY_DIR=$PREFIX/lib"35fi3637if [[ $target_platform == osx-arm64 ]]; then38CMAKE_ARGS="${CMAKE_ARGS} -DCMAKE_ENABLE_WERROR=FALSE"39fi4041cmake -DCMAKE_INSTALL_PREFIX="${PREFIX}" \42-DCMAKE_BUILD_TYPE=Release \43-DCMAKE_LIBRARY_PATH="${PREFIX}" \44-DLLVM_ENABLE_ZSTD=OFF \45-DLLVM_ENABLE_LIBEDIT=OFF \46-DLLVM_ENABLE_LIBXML2=OFF \47-DLLVM_ENABLE_RTTI=OFF \48-DLLVM_ENABLE_ASSERTIONS=ON \49-DLLVM_ENABLE_TERMINFO=OFF \50-DLLVM_INCLUDE_BENCHMARKS=OFF \51-DLLVM_INCLUDE_DOCS=OFF \52-DLLVM_INCLUDE_EXAMPLES=OFF \53-DLLVM_INCLUDE_GO_TESTS=OFF \54-DLLVM_INCLUDE_TESTS=ON \55-DLLVM_INCLUDE_UTILS=ON \56-DLLVM_INSTALL_UTILS=ON \57-DLLVM_UTILS_INSTALL_DIR=libexec/llvm \58-DLLVM_BUILD_LLVM_DYLIB=OFF \59-DLLVM_LINK_LLVM_DYLIB=OFF \60-DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=WebAssembly \61-DLLVM_ENABLE_FFI=ON \62-DLLVM_ENABLE_Z3_SOLVER=OFF \63-DLLVM_OPTIMIZED_TABLEGEN=ON \64-DCMAKE_POLICY_DEFAULT_CMP0111=NEW \65-DCOMPILER_RT_BUILD_BUILTINS=ON \66-DCOMPILER_RT_ENABLE_IOS=OFF \67-DCOMPILER_RT_BUILTINS_HIDE_SYMBOLS=OFF \68-DCOMPILER_RT_BUILD_LIBFUZZER=OFF \69-DCOMPILER_RT_BUILD_CRT=OFF \70-DCOMPILER_RT_BUILD_MEMPROF=OFF \71-DCOMPILER_RT_BUILD_PROFILE=OFF \72-DCOMPILER_RT_BUILD_SANITIZERS=OFF \73-DCOMPILER_RT_BUILD_XRAY=OFF \74-DCOMPILER_RT_BUILD_GWP_ASAN=OFF \75-DCOMPILER_RT_BUILD_ORC=OFF \76-DCOMPILER_RT_INCLUDE_TESTS=OFF \77${CMAKE_ARGS} \78-GNinja \79../llvm808182ninja -j${CPU_COUNT}8384ninja install8586if [[ "${target_platform}" == "linux-64" ]]; then87export TEST_CPU_FLAG="-mcpu=haswell"88else89export TEST_CPU_FLAG=""90fi9192if [[ "$CONDA_BUILD_CROSS_COMPILATION" != "1" ]]; then9394echo "Testing on ${target_platform}"95# bin/opt -S -vector-library=SVML $TEST_CPU_FLAG -O3 $RECIPE_DIR/numba-3016.ll | bin/FileCheck $RECIPE_DIR/numba-3016.ll || exit $?9697if [[ "$target_platform" == linux* ]]; then98ln -s $(which $CC) $BUILD_PREFIX/bin/gcc99100# These tests tests permission-based behaviour and probably fail because of some101# filesystem-related reason. They are sporadic failures and don't seem serious so they're excluded.102# Note that indents would introduce spaces into the environment variable103export LIT_FILTER_OUT='tools/llvm-ar/error-opening-permission.test|'\104'tools/llvm-dwarfdump/X86/output.s|'\105'tools/llvm-ifs/fail-file-write.test|'\106'tools/llvm-ranlib/error-opening-permission.test|'\107'ExecutionEngine/Interpreter/intrinsics.ll'108fi109110if [[ "$target_platform" == osx-* ]]; then111# This failure seems like something to do with the output format of ls -lu112# and looks harmless113export LIT_FILTER_OUT='tools/llvm-objcopy/ELF/strip-preserve-atime.test|'\114'ExecutionEngine/Interpreter/intrinsics.ll'115fi116117cd ../llvm/test118${PYTHON} ../../build/bin/llvm-lit -vv --ignore-fail Transforms ExecutionEngine Analysis CodeGen/X86119fi120121122123