mirror of
https://github.com/qemu/qemu.git
synced 2024-11-25 03:43:37 +08:00
d83414e1fd
It helps ASAN to detect more leaks on coroutine stacks, and to get rid of some extra warnings. Before: tests/test-coroutine -p /basic/lifecycle /basic/lifecycle: ==20781==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! ==20781==WARNING: ASan is ignoring requested __asan_handle_no_return: stack top: 0x7ffcb184d000; bottom 0x7ff6c4cfd000; size: 0x0005ecb50000 (25446121472) False positive error reports may follow For details see https://github.com/google/sanitizers/issues/189 OK After: tests/test-coroutine -p /basic/lifecycle /basic/lifecycle: ==21110==WARNING: ASan doesn't fully support makecontext/swapcontext functions and may produce false positives in some cases! OK A similar work would need to be done for sigaltstack & windows fibers to have similar coverage. Since ucontext is preferred, I didn't bother checking the other coroutine implementations for now. Update travis to fix the build with ASAN annotations. Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20180116151152.4040-4-marcandre.lureau@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
200 lines
6.4 KiB
YAML
200 lines
6.4 KiB
YAML
sudo: false
|
|
language: c
|
|
python:
|
|
- "2.4"
|
|
compiler:
|
|
- gcc
|
|
cache: ccache
|
|
addons:
|
|
apt:
|
|
packages:
|
|
# Build dependencies
|
|
- libaio-dev
|
|
- libattr1-dev
|
|
- libbrlapi-dev
|
|
- libcap-ng-dev
|
|
- libgcc-6-dev
|
|
- libgnutls-dev
|
|
- libgtk-3-dev
|
|
- libiscsi-dev
|
|
- liblttng-ust-dev
|
|
- libncurses5-dev
|
|
- libnfs-dev
|
|
- libnss3-dev
|
|
- libpixman-1-dev
|
|
- libpng12-dev
|
|
- librados-dev
|
|
- libsdl1.2-dev
|
|
- libseccomp-dev
|
|
- libspice-protocol-dev
|
|
- libspice-server-dev
|
|
- libssh2-1-dev
|
|
- liburcu-dev
|
|
- libusb-1.0-0-dev
|
|
- libvte-2.90-dev
|
|
- sparse
|
|
- uuid-dev
|
|
|
|
# The channel name "irc.oftc.net#qemu" is encrypted against qemu/qemu
|
|
# to prevent IRC notifications from forks. This was created using:
|
|
# $ travis encrypt -r "qemu/qemu" "irc.oftc.net#qemu"
|
|
notifications:
|
|
irc:
|
|
channels:
|
|
- secure: "F7GDRgjuOo5IUyRLqSkmDL7kvdU4UcH3Lm/W2db2JnDHTGCqgEdaYEYKciyCLZ57vOTsTsOgesN8iUT7hNHBd1KWKjZe9KDTZWppWRYVwAwQMzVeSOsbbU4tRoJ6Pp+3qhH1Z0eGYR9ZgKYAoTumDFgSAYRp4IscKS8jkoedOqM="
|
|
on_success: change
|
|
on_failure: always
|
|
env:
|
|
global:
|
|
- TEST_CMD="make check"
|
|
- MAKEFLAGS="-j3"
|
|
matrix:
|
|
- CONFIG=""
|
|
- CONFIG="--enable-debug --enable-debug-tcg --enable-trace-backends=log"
|
|
- CONFIG="--disable-linux-aio --disable-cap-ng --disable-attr --disable-brlapi --disable-uuid --disable-libusb"
|
|
- CONFIG="--enable-modules"
|
|
- CONFIG="--with-coroutine=ucontext"
|
|
- CONFIG="--with-coroutine=sigaltstack"
|
|
git:
|
|
# we want to do this ourselves
|
|
submodules: false
|
|
before_install:
|
|
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew update ; fi
|
|
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install libffi gettext glib pixman ; fi
|
|
- wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
|
|
- git submodule update --init --recursive
|
|
before_script:
|
|
- ./configure ${CONFIG}
|
|
script:
|
|
- make ${MAKEFLAGS} && ${TEST_CMD}
|
|
matrix:
|
|
include:
|
|
# Test with CLang for compile portability
|
|
- env: CONFIG=""
|
|
compiler: clang
|
|
# gprof/gcov are GCC features
|
|
- env: CONFIG="--enable-gprof --enable-gcov --disable-pie"
|
|
compiler: gcc
|
|
# We manually include builds which we disable "make check" for
|
|
- env: CONFIG="--enable-debug --enable-tcg-interpreter"
|
|
TEST_CMD=""
|
|
compiler: gcc
|
|
- env: CONFIG="--enable-trace-backends=simple"
|
|
TEST_CMD=""
|
|
compiler: gcc
|
|
- env: CONFIG="--enable-trace-backends=ftrace"
|
|
TEST_CMD=""
|
|
compiler: gcc
|
|
- env: CONFIG="--enable-trace-backends=ust"
|
|
TEST_CMD=""
|
|
compiler: gcc
|
|
- env: CONFIG="--disable-tcg"
|
|
TEST_CMD=""
|
|
compiler: gcc
|
|
- env: CONFIG=""
|
|
os: osx
|
|
compiler: clang
|
|
# Plain Trusty System Build
|
|
- env: CONFIG="--disable-linux-user"
|
|
sudo: required
|
|
addons:
|
|
dist: trusty
|
|
compiler: gcc
|
|
before_install:
|
|
- sudo apt-get update -qq
|
|
- sudo apt-get build-dep -qq qemu
|
|
- wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
|
|
- git submodule update --init --recursive
|
|
# Plain Trusty Linux User Build
|
|
- env: CONFIG="--disable-system"
|
|
sudo: required
|
|
addons:
|
|
dist: trusty
|
|
compiler: gcc
|
|
before_install:
|
|
- sudo apt-get update -qq
|
|
- sudo apt-get build-dep -qq qemu
|
|
- wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
|
|
- git submodule update --init --recursive
|
|
# Trusty System build with latest stable clang
|
|
- sudo: required
|
|
addons:
|
|
dist: trusty
|
|
language: generic
|
|
compiler: none
|
|
env:
|
|
- COMPILER_NAME=clang CXX=clang++-3.9 CC=clang-3.9
|
|
- CONFIG="--disable-linux-user --cc=clang-3.9 --cxx=clang++-3.9"
|
|
before_install:
|
|
- wget -nv -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
|
|
- sudo apt-add-repository -y 'deb http://llvm.org/apt/trusty llvm-toolchain-trusty-3.9 main'
|
|
- sudo apt-get update -qq
|
|
- sudo apt-get install -qq -y clang-3.9
|
|
- sudo apt-get build-dep -qq qemu
|
|
- wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
|
|
- git submodule update --init --recursive
|
|
before_script:
|
|
- ./configure ${CONFIG} || cat config.log
|
|
# Trusty Linux User build with latest stable clang
|
|
- sudo: required
|
|
addons:
|
|
dist: trusty
|
|
language: generic
|
|
compiler: none
|
|
env:
|
|
- COMPILER_NAME=clang CXX=clang++-3.9 CC=clang-3.9
|
|
- CONFIG="--disable-system --cc=clang-3.9 --cxx=clang++-3.9"
|
|
before_install:
|
|
- wget -nv -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add -
|
|
- sudo apt-add-repository -y 'deb http://llvm.org/apt/trusty llvm-toolchain-trusty-3.9 main'
|
|
- sudo apt-get update -qq
|
|
- sudo apt-get install -qq -y clang-3.9
|
|
- sudo apt-get build-dep -qq qemu
|
|
- wget -O - http://people.linaro.org/~alex.bennee/qemu-submodule-git-seed.tar.xz | tar -xvJ
|
|
- git submodule update --init --recursive
|
|
before_script:
|
|
- ./configure ${CONFIG} || cat config.log
|
|
# Using newer GCC with sanitizers
|
|
- addons:
|
|
apt:
|
|
sources:
|
|
# PPAs for newer toolchains
|
|
- ubuntu-toolchain-r-test
|
|
packages:
|
|
# Extra toolchains
|
|
- gcc-5
|
|
- g++-5
|
|
# Build dependencies
|
|
- libaio-dev
|
|
- libattr1-dev
|
|
- libbrlapi-dev
|
|
- libcap-ng-dev
|
|
- libgnutls-dev
|
|
- libgtk-3-dev
|
|
- libiscsi-dev
|
|
- liblttng-ust-dev
|
|
- libnfs-dev
|
|
- libncurses5-dev
|
|
- libnss3-dev
|
|
- libpixman-1-dev
|
|
- libpng12-dev
|
|
- librados-dev
|
|
- libsdl1.2-dev
|
|
- libseccomp-dev
|
|
- libspice-protocol-dev
|
|
- libspice-server-dev
|
|
- libssh2-1-dev
|
|
- liburcu-dev
|
|
- libusb-1.0-0-dev
|
|
- libvte-2.90-dev
|
|
- sparse
|
|
- uuid-dev
|
|
language: generic
|
|
compiler: none
|
|
env:
|
|
- COMPILER_NAME=gcc CXX=g++-5 CC=gcc-5
|
|
- CONFIG="--cc=gcc-5 --cxx=g++-5 --disable-pie --disable-linux-user"
|
|
- TEST_CMD=""
|
|
before_script:
|
|
- ./configure ${CONFIG} --extra-cflags="-g3 -O0 -fsanitize=thread -fuse-ld=gold" || cat config.log
|