Index: zorg/buildbot/builders/sanitizers/buildbot_android.sh =================================================================== --- /dev/null +++ zorg/buildbot/builders/sanitizers/buildbot_android.sh @@ -0,0 +1,68 @@ +#!/usr/bin/env bash + +set -x +set -e +set -u + +HERE="$(cd $(dirname $0) && pwd)" +. ${HERE}/buildbot_functions.sh +. ${HERE}/buildbot_android_functions.sh + +ROOT=`pwd` +PLATFORM=`uname` +export PATH="/usr/local/bin:$PATH" + +CHECK_LIBCXX=${CHECK_LIBCXX:-1} +CHECK_LLD=${CHECK_LLD:-1} +STAGE1_DIR=llvm_build0 +STAGE1_CLOBBER="llvm_build64 compiler_rt_build_android_* llvm_build_android_*" +LLVM=$ROOT/llvm +CMAKE_COMMON_OPTIONS="-GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_PARALLEL_LINK_JOBS=20" +BUILD_TYPE=Release + +if [ "$BUILDBOT_CLOBBER" != "" ]; then + echo @@@BUILD_STEP clobber@@@ + rm -rf llvm + rm -rf ${STAGE1_DIR} +fi + +# Stage 1 + +build_stage1_clang_at_revison 303753 +### From now on we use just-built Clang as a host compiler ### +CLANG_PATH=${ROOT}/${STAGE1_DIR}/bin + +echo @@@BUILD_STEP update@@@ +buildbot_update + +CMAKE_COMMON_OPTIONS="$CMAKE_COMMON_OPTIONS -DLLVM_ENABLE_ASSERTIONS=ON" + +# Build self-hosted tree with fresh Clang and -Werror. +CMAKE_COMMON_OPTIONS="${CMAKE_COMMON_OPTIONS} -DLLVM_ENABLE_WERROR=ON -DCMAKE_C_COMPILER=${CLANG_PATH}/clang -DCMAKE_CXX_COMPILER=${CLANG_PATH}/clang++ -DCMAKE_C_FLAGS=-gmlt -DCMAKE_CXX_FLAGS=-gmlt" + +echo @@@BUILD_STEP bootstrap clang@@@ +if [ ! -d llvm_build64 ]; then + mkdir llvm_build64 +fi +(cd llvm_build64 && cmake ${CMAKE_COMMON_OPTIONS} -DLLVM_BUILD_EXTERNAL_COMPILER_RT=ON $LLVM && ninja) || echo @@@STEP_FAILURE@@ +exit + +build_android() { + CPU=$1 + TRIPLE=$2 + echo @@@BUILD_STEP build compiler-rt android/$CPU@@@ + build_compiler_rt $CPU $TRIPLE + + echo @@@BUILD_STEP build llvm-symbolizer android/$CPU@@@ + build_llvm_symbolizer $CPU $TRIPLE +} +# Testing armv7 instead of plain arm to work around +# https://code.google.com/p/android/issues/detail?id=68779 +build_android arm armv7-linux-androideabi +build_android x86 i686-linux-android +build_android aarch64 aarch64-linux-android + +test_android arm armeabi-v7a @@@STEP_FAILURE@@@ +test_android x86 x86 @@@STEP_FAILURE@@@ +test_android aarch64 arm64-v8a @@@STEP_FAILURE@@@ + Index: zorg/buildbot/builders/sanitizers/buildbot_android_functions.sh =================================================================== --- zorg/buildbot/builders/sanitizers/buildbot_android_functions.sh +++ zorg/buildbot/builders/sanitizers/buildbot_android_functions.sh @@ -23,7 +23,7 @@ -DLLVM_BUILD_RUNTIME=OFF \ -DLLVM_TABLEGEN=$ROOT/llvm_build64/bin/llvm-tblgen \ ${CMAKE_COMMON_OPTIONS} \ - $LLVM_CHECKOUT || echo @@@STEP_FAILURE@@@ + $LLVM || echo @@@STEP_FAILURE@@@ ninja llvm-symbolizer || echo @@@STEP_FAILURE@@@ cd .. @@ -59,7 +59,7 @@ -DCOMPILER_RT_OUTPUT_DIR="$ANDROID_LIBRARY_OUTPUT_DIR" \ -DCOMPILER_RT_EXEC_OUTPUT_DIR="$ANDROID_EXEC_OUTPUT_DIR" \ ${CMAKE_COMMON_OPTIONS} \ - $LLVM_CHECKOUT/projects/compiler-rt || echo @@@STEP_FAILURE@@@ + $LLVM/projects/compiler-rt || echo @@@STEP_FAILURE@@@ ninja asan || echo @@@STEP_FAILURE@@@ ls "$ANDROID_LIBRARY_OUTPUT_DIR" ninja AsanUnitTests SanitizerUnitTests || echo @@@STEP_FAILURE@@@ Index: zorg/buildbot/builders/sanitizers/buildbot_fast.sh =================================================================== --- zorg/buildbot/builders/sanitizers/buildbot_fast.sh +++ zorg/buildbot/builders/sanitizers/buildbot_fast.sh @@ -22,7 +22,7 @@ STAGE2_LIBCXX_UBSAN_DIR=libcxx_build_ubsan STAGE1_CLOBBER="${STAGE2_LIBCXX_MSAN_DIR} ${STAGE2_LIBCXX_ASAN_DIR} ${STAGE2_LIBCXX_UBSAN_DIR} ${STAGE2_MSAN_DIR} ${STAGE2_ASAN_DIR} ${STAGE2_UBSAN_DIR}" LLVM=$ROOT/llvm -CMAKE_COMMON_OPTIONS="-GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_PARALLEL_LINK_JOBS=20" +CMAKE_COMMON_OPTIONS="-GNinja -DCMAKE_BUILD_TYPE=Release -DLLVM_PARALLEL_LINK_JOBS=20" if [ "$BUILDBOT_CLOBBER" != "" ]; then echo @@@BUILD_STEP clobber@@@ @@ -34,6 +34,8 @@ build_stage1_clang_at_revison 303753 +CMAKE_COMMON_OPTIONS="$CMAKE_COMMON_OPTIONS -DLLVM_ENABLE_ASSERTIONS=ON" + echo @@@BUILD_STEP update@@@ buildbot_update