[zorg] r224445 - Add sanitizer-x86_64-linux-fast bot.

Sergey Matveev earthdok at google.com
Mon Dec 22 10:14:37 PST 2014


http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/48

we're testing lld starting with this build

On Mon, Dec 22, 2014 at 9:10 PM, Kostya Serebryany <kcc at google.com> wrote:
>
> s/ldd/lld/
>
> On Mon, Dec 22, 2014 at 10:09 AM, Kostya Serebryany <kcc at google.com>
> wrote:
>>
>> +Rui for ldd bugs
>>
>> On Mon, Dec 22, 2014 at 7:21 AM, Sergey Matveev <earthdok at google.com>
>> wrote:
>>>
>>> 340 LLD tests failing under ASan. Mostly leaks, but one UAF and one
>>> buffer overflow as well. I won't be able to clean those up anytime soon as
>>> I'm going on vacation.
>>>
>>> On Mon, Dec 22, 2014 at 5:18 PM, Sergey Matveev <earthdok at google.com>
>>> wrote:
>>>>
>>>> I'll take a look.
>>>>
>>>> On Fri, Dec 19, 2014 at 10:32 PM, Kostya Serebryany <kcc at google.com>
>>>> wrote:
>>>>>
>>>>> Chandler suggests that adding check-lld would be cool
>>>>> (you need to make sure that ldd is checked out and that it's asan/msan
>>>>> clean)
>>>>> Can you do this?
>>>>>
>>>>> On Fri, Dec 19, 2014 at 11:30 AM, Kostya Serebryany <kcc at google.com>
>>>>> wrote:
>>>>>>
>>>>>> Excellent, thanks!
>>>>>> Do you already have some stats?  (average time, average # of CLs
>>>>>> covered, etc).
>>>>>> I wonder if we can make it work for every CL?
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Wed, Dec 17, 2014 at 10:22 AM, Sergey Matveev <earthdok at google.com
>>>>>> > wrote:
>>>>>>>
>>>>>>> Author: smatveev
>>>>>>> Date: Wed Dec 17 12:22:17 2014
>>>>>>> New Revision: 224445
>>>>>>>
>>>>>>> URL: http://llvm.org/viewvc/llvm-project?rev=224445&view=rev
>>>>>>> Log:
>>>>>>> Add sanitizer-x86_64-linux-fast bot.
>>>>>>>
>>>>>>> Add a new sanitizer bot. The host compiler is clang fixed at a
>>>>>>> specific
>>>>>>> revision; it will not be rebuilt unless the revision number is
>>>>>>> changed in the
>>>>>>> bot config. The host compiler does incremental builds of
>>>>>>> (A,M)San-instrumented
>>>>>>> LLVM/clang, which are then tested with check-llvm, check-clang.
>>>>>>>
>>>>>>> Added:
>>>>>>>     zorg/trunk/zorg/buildbot/builders/sanitizers/buildbot_fast.sh
>>>>>>>  (with props)
>>>>>>> Modified:
>>>>>>>     zorg/trunk/buildbot/osuosl/master/config/builders.py
>>>>>>>     zorg/trunk/buildbot/osuosl/master/config/slaves.py
>>>>>>>     zorg/trunk/zorg/buildbot/builders/sanitizers/buildbot_selector.py
>>>>>>>
>>>>>>> Modified: zorg/trunk/buildbot/osuosl/master/config/builders.py
>>>>>>> URL:
>>>>>>> http://llvm.org/viewvc/llvm-project/zorg/trunk/buildbot/osuosl/master/config/builders.py?rev=224445&r1=224444&r2=224445&view=diff
>>>>>>>
>>>>>>> ==============================================================================
>>>>>>> --- zorg/trunk/buildbot/osuosl/master/config/builders.py (original)
>>>>>>> +++ zorg/trunk/buildbot/osuosl/master/config/builders.py Wed Dec 17
>>>>>>> 12:22:17 2014
>>>>>>> @@ -661,6 +661,11 @@ def _get_sanitizer_builders():
>>>>>>>             'builddir': "sanitizer-x86_64-linux-bootstrap",
>>>>>>>             'factory': SanitizerBuilder.getSanitizerBuildFactory()},
>>>>>>>
>>>>>>> +          {'name': "sanitizer-x86_64-linux-fast",
>>>>>>> +           'slavenames' :["sanitizer-buildbot3"],
>>>>>>> +           'builddir': "sanitizer-x86_64-linux-fast",
>>>>>>> +           'factory': SanitizerBuilder.getSanitizerBuildFactory()},
>>>>>>> +
>>>>>>>            #{'name': "llvm-clang-lld-x86_64-ubuntu-sanitize-address",
>>>>>>>            # 'slavenames':["hexagon-build-03"],
>>>>>>>            #
>>>>>>> 'builddir':"llvm-clang-lld-x86_64-ubuntu-sanitize-address",
>>>>>>>
>>>>>>> Modified: zorg/trunk/buildbot/osuosl/master/config/slaves.py
>>>>>>> URL:
>>>>>>> http://llvm.org/viewvc/llvm-project/zorg/trunk/buildbot/osuosl/master/config/slaves.py?rev=224445&r1=224444&r2=224445&view=diff
>>>>>>>
>>>>>>> ==============================================================================
>>>>>>> --- zorg/trunk/buildbot/osuosl/master/config/slaves.py (original)
>>>>>>> +++ zorg/trunk/buildbot/osuosl/master/config/slaves.py Wed Dec 17
>>>>>>> 12:22:17 2014
>>>>>>> @@ -153,10 +153,12 @@ def get_build_slaves():
>>>>>>>          # AArch64 Clang, Juno ARM Development Platform
>>>>>>>          create_slave("juno-aarch64-01", properties={'jobs': 4},
>>>>>>> max_builds=1),
>>>>>>>
>>>>>>> -        # Ubuntu x86-64, 12x Intel(R) Xeon(R) CPU X5650 @ 2.67GHz
>>>>>>> +        # Debian 7.7 x86_64 16-core GCE instance
>>>>>>>          create_slave("sanitizer-buildbot1", properties={'jobs': 8},
>>>>>>> max_builds=1),
>>>>>>> -        # Ubuntu x86-64, 24x Intel(R) Xeon(R) CPU X5650 @ 2.67GHz
>>>>>>> +        # Debian 7.7 x86_64 16-core GCE instance
>>>>>>>          create_slave("sanitizer-buildbot2", properties={'jobs': 8},
>>>>>>> max_builds=1),
>>>>>>> +        # Debian 7.7 x86_64 8-core GCE instance
>>>>>>> +        create_slave("sanitizer-buildbot3", properties={'jobs': 8},
>>>>>>> max_builds=1),
>>>>>>>
>>>>>>>          # zEnterprise 196 (s390x), SLES 11 SP2
>>>>>>>          create_slave("systemz-1", properties={'jobs': 4},
>>>>>>> max_builds=1),
>>>>>>>
>>>>>>> Added: zorg/trunk/zorg/buildbot/builders/sanitizers/buildbot_fast.sh
>>>>>>> URL:
>>>>>>> http://llvm.org/viewvc/llvm-project/zorg/trunk/zorg/buildbot/builders/sanitizers/buildbot_fast.sh?rev=224445&view=auto
>>>>>>>
>>>>>>> ==============================================================================
>>>>>>> --- zorg/trunk/zorg/buildbot/builders/sanitizers/buildbot_fast.sh
>>>>>>> (added)
>>>>>>> +++ zorg/trunk/zorg/buildbot/builders/sanitizers/buildbot_fast.sh
>>>>>>> Wed Dec 17 12:22:17 2014
>>>>>>> @@ -0,0 +1,156 @@
>>>>>>> +#!/usr/bin/env bash
>>>>>>> +
>>>>>>> +set -x
>>>>>>> +set -e
>>>>>>> +set -u
>>>>>>> +
>>>>>>> +HERE="$(cd $(dirname $0) && pwd)"
>>>>>>> +. ${HERE}/buildbot_functions.sh
>>>>>>> +
>>>>>>> +ROOT=`pwd`
>>>>>>> +PLATFORM=`uname`
>>>>>>> +export PATH="/usr/local/bin:$PATH"
>>>>>>> +
>>>>>>> +if [ "$BUILDBOT_CLOBBER" != "" ]; then
>>>>>>> +  echo @@@BUILD_STEP clobber@@@
>>>>>>> +  rm -rf llvm
>>>>>>> +  rm -rf llvm_build0
>>>>>>> +fi
>>>>>>> +
>>>>>>> +HOST_CLANG_REVISION=223108
>>>>>>> +
>>>>>>> +MEMORY_SANITIZER_KIND="Memory"
>>>>>>> +BUILDBOT_MSAN_ORIGINS=${BUILDBOT_MSAN_ORIGINS:-}
>>>>>>> +if [ "$BUILDBOT_MSAN_ORIGINS" != "" ]; then
>>>>>>> +    MEMORY_SANITIZER_KIND="MemoryWithOrigins"
>>>>>>> +fi
>>>>>>> +
>>>>>>> +MAKE_JOBS=${MAX_MAKE_JOBS:-16}
>>>>>>> +LLVM=$ROOT/llvm
>>>>>>> +
>>>>>>> +type -a gcc
>>>>>>> +type -a g++
>>>>>>> +CMAKE_COMMON_OPTIONS="-GNinja -DCMAKE_BUILD_TYPE=Release
>>>>>>> -DLLVM_ENABLE_ASSERTIONS=ON -DLLVM_PARALLEL_LINK_JOBS=3"
>>>>>>> +CMAKE_STAGE1_OPTIONS="${CMAKE_COMMON_OPTIONS}"
>>>>>>> +
>>>>>>> +# Stage 1
>>>>>>> +
>>>>>>> +if  [ -r host_clang_revision ] && \
>>>>>>> +    [ "$(cat host_clang_revision)" == $HOST_CLANG_REVISION ]
>>>>>>> +then
>>>>>>> +  # Do nothing.
>>>>>>> +  echo @@@BUILD_STEP using pre-built stage1 clang at
>>>>>>> r$HOST_CLANG_REVISION@@@
>>>>>>> +else
>>>>>>> +  echo @@@BUILD_STEP sync to r$HOST_CLANG_REVISION@@@
>>>>>>> +  REAL_BUILDBOT_REVISION=$BUILDBOT_REVISION
>>>>>>> +  BUILDBOT_REVISION=$HOST_CLANG_REVISION
>>>>>>> +  buildbot_update
>>>>>>> +
>>>>>>> +  echo @@@BUILD_STEP build stage1 clang at r$HOST_CLANG_REVISION@@@
>>>>>>> +
>>>>>>> +  rm -rf host_clang_revision
>>>>>>> +
>>>>>>> +  # CMake does not notice that the compiler itself has changed.
>>>>>>> Anyway,
>>>>>>> +  # incremental builds of stage2 don't make sense if stage1
>>>>>>> compiler has
>>>>>>> +  # changed. Clobber the build trees.
>>>>>>> +  rm -rf libcxx_build_msan
>>>>>>> +  rm -rf llvm_build_msan
>>>>>>> +  rm -rf llvm_build_asan
>>>>>>> +
>>>>>>> +  if [ ! -d llvm_build0 ]; then
>>>>>>> +    mkdir llvm_build0
>>>>>>> +  fi
>>>>>>> +  # Build cxx/cxxabi to fool the compiler check in MSan stage 2.
>>>>>>> +  (cd llvm_build0 && cmake ${CMAKE_STAGE1_OPTIONS} $LLVM && \
>>>>>>> +    ninja clang compiler-rt llvm-symbolizer)
>>>>>>> +  echo $HOST_CLANG_REVISION > host_clang_revision
>>>>>>> +
>>>>>>> +  BUILDBOT_REVISION=$REAL_BUILDBOT_REVISION
>>>>>>> +fi
>>>>>>> +
>>>>>>> +echo @@@BUILD_STEP update@@@
>>>>>>> +buildbot_update
>>>>>>> +
>>>>>>> +CLANG_PATH=$ROOT/llvm_build0/bin
>>>>>>> +CMAKE_STAGE2_COMMON_OPTIONS="\
>>>>>>> +  ${CMAKE_COMMON_OPTIONS} \
>>>>>>> +  -DCMAKE_C_COMPILER=${CLANG_PATH}/clang \
>>>>>>> +  -DCMAKE_CXX_COMPILER=${CLANG_PATH}/clang++ \
>>>>>>> +  "
>>>>>>> +LLVM_SYMBOLIZER_PATH=${CLANG_PATH}/llvm-symbolizer
>>>>>>> +export ASAN_SYMBOLIZER_PATH=${LLVM_SYMBOLIZER_PATH}
>>>>>>> +export MSAN_SYMBOLIZER_PATH=${LLVM_SYMBOLIZER_PATH}
>>>>>>> +
>>>>>>> +
>>>>>>> +# Stage 2 / Memory Sanitizer
>>>>>>> +
>>>>>>> +echo @@@BUILD_STEP build libcxx/msan@@@
>>>>>>> +if [ ! -d libcxx_build_msan ]; then
>>>>>>> +  mkdir libcxx_build_msan
>>>>>>> +fi
>>>>>>> +
>>>>>>> +(cd libcxx_build_msan && \
>>>>>>> +  cmake \
>>>>>>> +    ${CMAKE_STAGE2_COMMON_OPTIONS} \
>>>>>>> +    -DLLVM_USE_SANITIZER=${MEMORY_SANITIZER_KIND} \
>>>>>>> +    $LLVM && \
>>>>>>> +  ninja cxx cxxabi) || echo @@@STEP_FAILURE@@@
>>>>>>> +
>>>>>>> +
>>>>>>> +echo @@@BUILD_STEP build clang/msan@@@
>>>>>>> +if [ ! -d llvm_build_msan ]; then
>>>>>>> +  mkdir llvm_build_msan
>>>>>>> +fi
>>>>>>> +
>>>>>>> +MSAN_LDFLAGS="-lc++abi -Wl,--rpath=${ROOT}/libcxx_build_msan/lib
>>>>>>> -L${ROOT}/libcxx_build_msan/lib"
>>>>>>> +# See http://llvm.org/bugs/show_bug.cgi?id=19071,
>>>>>>> http://www.cmake.org/Bug/view.php?id=15264
>>>>>>> +CMAKE_BUG_WORKAROUND_CFLAGS="$MSAN_LDFLAGS -fsanitize=memory -w"
>>>>>>> +MSAN_CFLAGS="-I${ROOT}/libcxx_build_msan/include
>>>>>>> -I${ROOT}/libcxx_build_msan/include/c++/v1 $CMAKE_BUG_WORKAROUND_CFLAGS"
>>>>>>> +
>>>>>>> +(cd llvm_build_msan && \
>>>>>>> + cmake ${CMAKE_STAGE2_COMMON_OPTIONS} \
>>>>>>> +   -DLLVM_USE_SANITIZER=${MEMORY_SANITIZER_KIND} \
>>>>>>> +   -DLLVM_ENABLE_LIBCXX=ON \
>>>>>>> +   -DCMAKE_C_FLAGS="${MSAN_CFLAGS}" \
>>>>>>> +   -DCMAKE_CXX_FLAGS="${MSAN_CFLAGS}" \
>>>>>>> +   -DCMAKE_EXE_LINKER_FLAGS="${MSAN_LDFLAGS}" \
>>>>>>> +   $LLVM && \
>>>>>>> + ninja clang) || echo @@@STEP_FAILURE@@@
>>>>>>> +
>>>>>>> +echo @@@BUILD_STEP check-llvm msan@@@
>>>>>>> +
>>>>>>> +(cd llvm_build_msan && ninja check-llvm) || echo @@@STEP_WARNINGS@
>>>>>>> @@
>>>>>>> +
>>>>>>> +echo @@@BUILD_STEP check-clang msan@@@
>>>>>>> +
>>>>>>> +(cd llvm_build_msan && ninja check-clang) || echo @@@STEP_FAILURE@
>>>>>>> @@
>>>>>>> +
>>>>>>> +
>>>>>>> +# Stage 2 / AddressSanitizer
>>>>>>> +
>>>>>>> +echo @@@BUILD_STEP build clang/asan@@@
>>>>>>> +
>>>>>>> +# Turn on init-order checker as ASan runtime option.
>>>>>>> +export
>>>>>>> ASAN_OPTIONS="check_initialization_order=true:detect_stack_use_after_return=1:detect_leaks=1"
>>>>>>> +CMAKE_ASAN_OPTIONS=" \
>>>>>>> +  ${CMAKE_STAGE2_COMMON_OPTIONS} \
>>>>>>> +  -DLLVM_USE_SANITIZER=Address \
>>>>>>> +  "
>>>>>>> +
>>>>>>> +if [ ! -d llvm_build_asan ]; then
>>>>>>> +  mkdir llvm_build_asan
>>>>>>> +fi
>>>>>>> +
>>>>>>> +(cd llvm_build_asan && \
>>>>>>> + cmake ${CMAKE_ASAN_OPTIONS} $LLVM && \
>>>>>>> + ninja clang) || echo @@@STEP_FAILURE@@@
>>>>>>> +
>>>>>>> +
>>>>>>> +echo @@@BUILD_STEP check-llvm asan@@@
>>>>>>> +
>>>>>>> +(cd llvm_build_asan && ninja check-llvm) || echo @@@STEP_FAILURE@@@
>>>>>>> +
>>>>>>> +
>>>>>>> +echo @@@BUILD_STEP check-clang asan@@@
>>>>>>> +
>>>>>>> +(cd llvm_build_asan && ninja check-clang) || echo @@@STEP_FAILURE@
>>>>>>> @@
>>>>>>>
>>>>>>> Propchange:
>>>>>>> zorg/trunk/zorg/buildbot/builders/sanitizers/buildbot_fast.sh
>>>>>>>
>>>>>>> ------------------------------------------------------------------------------
>>>>>>>     svn:executable = *
>>>>>>>
>>>>>>> Modified:
>>>>>>> zorg/trunk/zorg/buildbot/builders/sanitizers/buildbot_selector.py
>>>>>>> URL:
>>>>>>> http://llvm.org/viewvc/llvm-project/zorg/trunk/zorg/buildbot/builders/sanitizers/buildbot_selector.py?rev=224445&r1=224444&r2=224445&view=diff
>>>>>>>
>>>>>>> ==============================================================================
>>>>>>> ---
>>>>>>> zorg/trunk/zorg/buildbot/builders/sanitizers/buildbot_selector.py (original)
>>>>>>> +++
>>>>>>> zorg/trunk/zorg/buildbot/builders/sanitizers/buildbot_selector.py Wed Dec
>>>>>>> 17 12:22:17 2014
>>>>>>> @@ -25,6 +25,7 @@ BOT_ASSIGNMENT = {
>>>>>>>      'sanitizer-ppc64-linux1': bash('buildbot_cmake.sh'),
>>>>>>>      'sanitizer-x86_64-linux': bash('buildbot_cmake.sh'),
>>>>>>>      'sanitizer-x86_64-linux-bootstrap':
>>>>>>> bash('buildbot_bootstrap.sh'),
>>>>>>> +    'sanitizer-x86_64-linux-fast': bash('buildbot_fast.sh'),
>>>>>>>  }
>>>>>>>
>>>>>>>  BOT_ADDITIONAL_ENV = {
>>>>>>> @@ -39,6 +40,7 @@ BOT_ADDITIONAL_ENV = {
>>>>>>>      'sanitizer-ppc64-linux1': { 'HAVE_NINJA': '0' },
>>>>>>>      'sanitizer-x86_64-linux': { 'BUILD_ANDROID' : '1',
>>>>>>> 'RUN_ANDROID' : '1', 'HAVE_NINJA' : '1' },
>>>>>>>      'sanitizer-x86_64-linux-bootstrap': {},
>>>>>>> +    'sanitizer-x86_64-linux-fast': {},
>>>>>>>  }
>>>>>>>
>>>>>>>  def Main():
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> llvm-commits mailing list
>>>>>>> llvm-commits at cs.uiuc.edu
>>>>>>> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>>>>>>
>>>>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141222/9ae62703/attachment.html>


More information about the llvm-commits mailing list