testing and gdbstub updates:
- more migration of Travis to GitLab - drop Travis container - remove last of shippable - clean up gdbstub MAINTAINERS - remove gdb_get_floatN() helpers - don't be quiet about skipping gdb tests -----BEGIN PGP SIGNATURE----- iQEzBAABCgAdFiEEZoWumedRZ7yvyN81+9DbCVqeKkQFAmAqQcwACgkQ+9DbCVqe KkTbEQf5AUeAvmgzY135tjgD+w3/OKRKbHsSoiCE0ngyjxAoZFh6EWO28msH/17f QnhwR0G1sKLePXrD3e4mmnO8Unt3PmoONmaBACxJaFyC4w+KhiYUaoS63a/5CEFz BCCEvl0Fevq4zLi3kwZJ+W7hUagkfTZr+8hQq4FJfzPD+3X0Vd1JuiuySonbHIN3 MLloOdUo8jH8XCt+wgMYvdrrXaMYApOGsExcEVqIviYfwtVucKwuIKNS9aa90ZfR YpC0JHX06pUWo6wfVimS/HpmGL7qj32I8Eip9N7MXdNjwbAxMoz+IyZ1aTTs3MPg 04SMpy++y9G/w6dbW1DkXUH04se6Bw== =c+2x -----END PGP SIGNATURE----- Merge remote-tracking branch 'remotes/stsquad/tags/pull-testing-gdbstub-150221-1' into staging testing and gdbstub updates: - more migration of Travis to GitLab - drop Travis container - remove last of shippable - clean up gdbstub MAINTAINERS - remove gdb_get_floatN() helpers - don't be quiet about skipping gdb tests # gpg: Signature made Mon 15 Feb 2021 09:41:32 GMT # gpg: using RSA key 6685AE99E75167BCAFC8DF35FBD0DB095A9E2A44 # gpg: Good signature from "Alex Bennée (Master Work Key) <alex.bennee@linaro.org>" [full] # Primary key fingerprint: 6685 AE99 E751 67BC AFC8 DF35 FBD0 DB09 5A9E 2A44 * remotes/stsquad/tags/pull-testing-gdbstub-150221-1: tests/tcg: fix silent skipping of softmmu gdb tests bswap.h: Remove unused float-access functions gdbstub: Remove unused gdb_get_float32() and gdb_get_float64() target/ppc: Drop use of gdb_get_float64() and ldfq_p() target/m68k: Drop use of gdb_get_float64() and ldfq_p() target/sh4: Drop use of gdb_get_float32() and ldfl_p() MAINTAINERS: Add gdbstub.h to the "GDB stub" section tests/docker: remove travis container travis-ci: Disable C++ optional objects on AArch64 container .shippable: remove the last bits travis.yml: Move the -fsanitize=thread testing to the gitlab-CI travis.yml: (Re-)move the --enable-debug jobs travis.yml: Move the --enable-modules test to the gitlab-CI travis.yml: Move the -fsanitize=undefined test to the gitlab-CI travis.yml: Move gprof/gcov test across to gitlab Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
commit
0280396a33
@ -222,6 +222,7 @@ build-system-centos:
|
||||
variables:
|
||||
IMAGE: centos8
|
||||
CONFIGURE_ARGS: --disable-nettle --enable-gcrypt --enable-fdt=system
|
||||
--enable-modules
|
||||
TARGETS: ppc64-softmmu or1k-softmmu s390x-softmmu
|
||||
x86_64-softmmu rx-softmmu sh4-softmmu nios2-softmmu
|
||||
MAKE_CHECK_ARGS: check-build
|
||||
@ -402,7 +403,7 @@ build-some-softmmu:
|
||||
<<: *native_build_job_definition
|
||||
variables:
|
||||
IMAGE: debian-all-test-cross
|
||||
CONFIGURE_ARGS: --disable-tools --enable-debug-tcg
|
||||
CONFIGURE_ARGS: --disable-tools --enable-debug
|
||||
TARGETS: xtensa-softmmu arm-softmmu aarch64-softmmu alpha-softmmu
|
||||
MAKE_CHECK_ARGS: check-tcg
|
||||
|
||||
@ -432,14 +433,33 @@ build-some-softmmu-plugins:
|
||||
TARGETS: xtensa-softmmu arm-softmmu aarch64-softmmu alpha-softmmu
|
||||
MAKE_CHECK_ARGS: check-tcg
|
||||
|
||||
build-clang:
|
||||
clang-system:
|
||||
<<: *native_build_job_definition
|
||||
variables:
|
||||
IMAGE: fedora
|
||||
CONFIGURE_ARGS: --cc=clang --cxx=clang++
|
||||
--extra-cflags=-fsanitize=undefined --extra-cflags=-fno-sanitize-recover=undefined
|
||||
TARGETS: alpha-softmmu arm-softmmu m68k-softmmu mips64-softmmu
|
||||
ppc-softmmu s390x-softmmu arm-linux-user
|
||||
MAKE_CHECK_ARGS: check
|
||||
ppc-softmmu s390x-softmmu
|
||||
MAKE_CHECK_ARGS: check-qtest check-tcg
|
||||
|
||||
clang-user:
|
||||
<<: *native_build_job_definition
|
||||
variables:
|
||||
IMAGE: debian-all-test-cross
|
||||
CONFIGURE_ARGS: --cc=clang --cxx=clang++ --disable-system
|
||||
--target-list-exclude=microblazeel-linux-user,aarch64_be-linux-user,i386-linux-user,m68k-linux-user,mipsn32el-linux-user,xtensaeb-linux-user
|
||||
--extra-cflags=-fsanitize=undefined --extra-cflags=-fno-sanitize-recover=undefined
|
||||
MAKE_CHECK_ARGS: check-unit check-tcg
|
||||
|
||||
tsan-build:
|
||||
<<: *native_build_job_definition
|
||||
variables:
|
||||
IMAGE: ubuntu2004
|
||||
CONFIGURE_ARGS: --enable-tsan --cc=clang-10 --cxx=clang++-10 --disable-docs
|
||||
--enable-fdt=system --enable-slirp=system
|
||||
TARGETS: x86_64-softmmu ppc64-softmmu riscv64-softmmu x86_64-linux-user
|
||||
MAKE_CHECK_ARGS: bench V=1
|
||||
|
||||
# These targets are on the way out
|
||||
build-deprecated:
|
||||
@ -467,6 +487,18 @@ check-deprecated:
|
||||
MAKE_CHECK_ARGS: check-tcg
|
||||
allow_failure: true
|
||||
|
||||
# gprof/gcov are GCC features
|
||||
gprof-gcov:
|
||||
<<: *native_build_job_definition
|
||||
variables:
|
||||
IMAGE: ubuntu2004
|
||||
CONFIGURE_ARGS: --enable-gprof --enable-gcov
|
||||
MAKE_CHECK_ARGS: check
|
||||
TARGETS: aarch64-softmmu ppc64-softmmu s390x-softmmu x86_64-softmmu
|
||||
timeout: 70m
|
||||
after_script:
|
||||
- ${CI_PROJECT_DIR}/scripts/ci/coverage-summary.sh
|
||||
|
||||
build-oss-fuzz:
|
||||
<<: *native_build_job_definition
|
||||
variables:
|
||||
|
@ -1,23 +0,0 @@
|
||||
language: c
|
||||
git:
|
||||
submodules: false
|
||||
env:
|
||||
global:
|
||||
- LC_ALL=C
|
||||
matrix:
|
||||
- IMAGE=debian-amd64
|
||||
TARGET_LIST=x86_64-softmmu,x86_64-linux-user
|
||||
- IMAGE=debian-mips-cross
|
||||
TARGET_LIST=mips-softmmu
|
||||
build:
|
||||
pre_ci_boot:
|
||||
image_name: registry.gitlab.com/qemu-project/qemu/qemu/${IMAGE}
|
||||
image_tag: latest
|
||||
pull: true
|
||||
options: "-e HOME=/root"
|
||||
ci:
|
||||
- unset CC
|
||||
- mkdir build
|
||||
- cd build
|
||||
- ../configure --disable-docs ${QEMU_CONFIGURE_OPTS} --target-list=${TARGET_LIST}
|
||||
- make -j$(($(getconf _NPROCESSORS_ONLN) + 1))
|
113
.travis.yml
113
.travis.yml
@ -52,7 +52,6 @@ addons:
|
||||
- ninja-build
|
||||
- sparse
|
||||
- uuid-dev
|
||||
- gcovr
|
||||
# Tests dependencies
|
||||
- genisoimage
|
||||
|
||||
@ -119,116 +118,6 @@ after_script:
|
||||
|
||||
jobs:
|
||||
include:
|
||||
# --enable-debug implies --enable-debug-tcg, also runs quite a bit slower
|
||||
- name: "GCC debug (main-softmmu)"
|
||||
env:
|
||||
- CONFIG="--enable-debug --target-list=${MAIN_SOFTMMU_TARGETS}"
|
||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug"
|
||||
|
||||
|
||||
# TCG debug can be run just on its own and is mostly agnostic to user/softmmu distinctions
|
||||
- name: "GCC debug (user)"
|
||||
env:
|
||||
- CONFIG="--enable-debug-tcg --disable-system"
|
||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug-tcg"
|
||||
|
||||
# Module builds are mostly of interest to major distros
|
||||
- name: "GCC modules (main-softmmu)"
|
||||
env:
|
||||
- CONFIG="--enable-modules --target-list=${MAIN_SOFTMMU_TARGETS}"
|
||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
|
||||
|
||||
|
||||
# Test with Clang for compile portability (Travis uses clang-5.0)
|
||||
- name: "Clang (user)"
|
||||
env:
|
||||
- CONFIG="--disable-system --host-cc=clang --cxx=clang++"
|
||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-clang-default"
|
||||
compiler: clang
|
||||
|
||||
|
||||
- name: "Clang (main-softmmu)"
|
||||
env:
|
||||
- CONFIG="--target-list=${MAIN_SOFTMMU_TARGETS}
|
||||
--host-cc=clang --cxx=clang++"
|
||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-clang-sanitize"
|
||||
compiler: clang
|
||||
before_script:
|
||||
- mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
|
||||
- ${SRC_DIR}/configure ${CONFIG} --extra-cflags="-fsanitize=undefined -Werror" || { cat config.log meson-logs/meson-log.txt && exit 1; }
|
||||
|
||||
|
||||
- name: "Clang (other-softmmu)"
|
||||
env:
|
||||
- CONFIG="--disable-user --target-list-exclude=${MAIN_SOFTMMU_TARGETS}
|
||||
--host-cc=clang --cxx=clang++"
|
||||
- CACHE_NAME="${TRAVIS_BRANCH}-linux-clang-default"
|
||||
compiler: clang
|
||||
|
||||
|
||||
# gprof/gcov are GCC features
|
||||
- name: "GCC gprof/gcov"
|
||||
dist: bionic
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- ninja-build
|
||||
env:
|
||||
- CONFIG="--enable-gprof --enable-gcov --disable-libssh
|
||||
--target-list=${MAIN_SOFTMMU_TARGETS}"
|
||||
after_success:
|
||||
- ${SRC_DIR}/scripts/travis/coverage-summary.sh
|
||||
|
||||
|
||||
# Using newer GCC with sanitizers
|
||||
- name: "GCC9 with sanitizers (softmmu)"
|
||||
dist: bionic
|
||||
addons:
|
||||
apt:
|
||||
update: true
|
||||
sources:
|
||||
# PPAs for newer toolchains
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
# Extra toolchains
|
||||
- gcc-9
|
||||
- g++-9
|
||||
# Build dependencies
|
||||
- libaio-dev
|
||||
- libattr1-dev
|
||||
- libbrlapi-dev
|
||||
- libcap-ng-dev
|
||||
- libgnutls28-dev
|
||||
- libgtk-3-dev
|
||||
- libiscsi-dev
|
||||
- liblttng-ust-dev
|
||||
- libnfs-dev
|
||||
- libncurses5-dev
|
||||
- libnss3-dev
|
||||
- libpixman-1-dev
|
||||
- libpng-dev
|
||||
- librados-dev
|
||||
- libsdl2-dev
|
||||
- libsdl2-image-dev
|
||||
- libseccomp-dev
|
||||
- libspice-protocol-dev
|
||||
- libspice-server-dev
|
||||
- liburcu-dev
|
||||
- libusb-1.0-0-dev
|
||||
- libvte-2.91-dev
|
||||
- ninja-build
|
||||
- sparse
|
||||
- uuid-dev
|
||||
language: generic
|
||||
compiler: none
|
||||
env:
|
||||
- COMPILER_NAME=gcc CXX=g++-9 CC=gcc-9
|
||||
- CONFIG="--cc=gcc-9 --cxx=g++-9 --disable-linux-user"
|
||||
- TEST_CMD=""
|
||||
before_script:
|
||||
- mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
|
||||
- ${SRC_DIR}/configure ${CONFIG} --extra-cflags="-g3 -O0 -fsanitize=thread" || { cat config.log meson-logs/meson-log.txt && exit 1; }
|
||||
|
||||
|
||||
- name: "[aarch64] GCC check-tcg"
|
||||
arch: arm64
|
||||
@ -261,7 +150,7 @@ jobs:
|
||||
- genisoimage
|
||||
env:
|
||||
- TEST_CMD="make check check-tcg V=1"
|
||||
- CONFIG="--disable-containers --target-list=${MAIN_SOFTMMU_TARGETS}"
|
||||
- CONFIG="--disable-containers --target-list=${MAIN_SOFTMMU_TARGETS} --cxx=/bin/false"
|
||||
- UNRELIABLE=true
|
||||
|
||||
- name: "[ppc64] GCC check-tcg"
|
||||
|
@ -2340,6 +2340,7 @@ M: Alex Bennée <alex.bennee@linaro.org>
|
||||
R: Philippe Mathieu-Daudé <philmd@redhat.com>
|
||||
S: Maintained
|
||||
F: gdbstub*
|
||||
F: include/exec/gdbstub.h
|
||||
F: gdb-xml/
|
||||
F: tests/tcg/multiarch/gdbstub/
|
||||
|
||||
@ -3235,13 +3236,11 @@ R: Philippe Mathieu-Daudé <philmd@redhat.com>
|
||||
S: Maintained
|
||||
F: .github/lockdown.yml
|
||||
F: .travis.yml
|
||||
F: scripts/travis/
|
||||
F: .shippable.yml
|
||||
F: scripts/ci/
|
||||
F: tests/docker/
|
||||
F: tests/vm/
|
||||
F: scripts/archive-source.sh
|
||||
W: https://travis-ci.org/qemu/qemu
|
||||
W: https://app.shippable.com/github/qemu/qemu
|
||||
W: http://patchew.org/QEMU/
|
||||
|
||||
FreeBSD Hosted Continuous Integration
|
||||
|
@ -24,16 +24,12 @@ potentially unaligned pointer values.
|
||||
|
||||
Function names follow the pattern:
|
||||
|
||||
load: ``ld{type}{sign}{size}_{endian}_p(ptr)``
|
||||
load: ``ld{sign}{size}_{endian}_p(ptr)``
|
||||
|
||||
store: ``st{type}{size}_{endian}_p(ptr, val)``
|
||||
|
||||
``type``
|
||||
- (empty) : integer access
|
||||
- ``f`` : float access
|
||||
store: ``st{size}_{endian}_p(ptr, val)``
|
||||
|
||||
``sign``
|
||||
- (empty) : for 32 or 64 bit sizes (including floats and doubles)
|
||||
- (empty) : for 32 or 64 bit sizes
|
||||
- ``u`` : unsigned
|
||||
- ``s`` : signed
|
||||
|
||||
@ -67,8 +63,8 @@ of size ``sz`` bytes.
|
||||
|
||||
|
||||
Regexes for git grep
|
||||
- ``\<ldf\?[us]\?[bwlq]\(_[hbl]e\)\?_p\>``
|
||||
- ``\<stf\?[bwlq]\(_[hbl]e\)\?_p\>``
|
||||
- ``\<ld[us]\?[bwlq]\(_[hbl]e\)\?_p\>``
|
||||
- ``\<st[bwlq]\(_[hbl]e\)\?_p\>``
|
||||
- ``\<ldn_\([hbl]e\)?_p\>``
|
||||
- ``\<stn_\([hbl]e\)?_p\>``
|
||||
|
||||
|
@ -357,20 +357,6 @@ source and build it.
|
||||
|
||||
The full list of tests is printed in the ``make docker`` help.
|
||||
|
||||
Tools
|
||||
-----
|
||||
|
||||
There are executables that are created to run in a specific Docker environment.
|
||||
This makes it easy to write scripts that have heavy or special dependencies,
|
||||
but are still very easy to use.
|
||||
|
||||
Currently the only tool is ``travis``, which mimics the Travis-CI tests in a
|
||||
container. It runs in the ``travis`` image:
|
||||
|
||||
.. code::
|
||||
|
||||
make docker-travis@travis
|
||||
|
||||
Debugging a Docker test failure
|
||||
-------------------------------
|
||||
|
||||
|
@ -125,13 +125,9 @@ static inline void tswap64s(uint64_t *s)
|
||||
#define ldsw_p(p) ldsw_be_p(p)
|
||||
#define ldl_p(p) ldl_be_p(p)
|
||||
#define ldq_p(p) ldq_be_p(p)
|
||||
#define ldfl_p(p) ldfl_be_p(p)
|
||||
#define ldfq_p(p) ldfq_be_p(p)
|
||||
#define stw_p(p, v) stw_be_p(p, v)
|
||||
#define stl_p(p, v) stl_be_p(p, v)
|
||||
#define stq_p(p, v) stq_be_p(p, v)
|
||||
#define stfl_p(p, v) stfl_be_p(p, v)
|
||||
#define stfq_p(p, v) stfq_be_p(p, v)
|
||||
#define ldn_p(p, sz) ldn_be_p(p, sz)
|
||||
#define stn_p(p, sz, v) stn_be_p(p, sz, v)
|
||||
#else
|
||||
@ -139,13 +135,9 @@ static inline void tswap64s(uint64_t *s)
|
||||
#define ldsw_p(p) ldsw_le_p(p)
|
||||
#define ldl_p(p) ldl_le_p(p)
|
||||
#define ldq_p(p) ldq_le_p(p)
|
||||
#define ldfl_p(p) ldfl_le_p(p)
|
||||
#define ldfq_p(p) ldfq_le_p(p)
|
||||
#define stw_p(p, v) stw_le_p(p, v)
|
||||
#define stl_p(p, v) stl_le_p(p, v)
|
||||
#define stq_p(p, v) stq_le_p(p, v)
|
||||
#define stfl_p(p, v) stfl_le_p(p, v)
|
||||
#define stfq_p(p, v) stfq_le_p(p, v)
|
||||
#define ldn_p(p, sz) ldn_le_p(p, sz)
|
||||
#define stn_p(p, sz, v) stn_le_p(p, sz, v)
|
||||
#endif
|
||||
|
@ -135,26 +135,6 @@ static inline int gdb_get_reg128(GByteArray *buf, uint64_t val_hi,
|
||||
return 16;
|
||||
}
|
||||
|
||||
static inline int gdb_get_float32(GByteArray *array, float32 val)
|
||||
{
|
||||
uint8_t buf[sizeof(CPU_FloatU)];
|
||||
|
||||
stfl_p(buf, val);
|
||||
g_byte_array_append(array, buf, sizeof(buf));
|
||||
|
||||
return sizeof(buf);
|
||||
}
|
||||
|
||||
static inline int gdb_get_float64(GByteArray *array, float64 val)
|
||||
{
|
||||
uint8_t buf[sizeof(CPU_DoubleU)];
|
||||
|
||||
stfq_p(buf, val);
|
||||
g_byte_array_append(array, buf, sizeof(buf));
|
||||
|
||||
return sizeof(buf);
|
||||
}
|
||||
|
||||
static inline int gdb_get_zeroes(GByteArray *array, size_t len)
|
||||
{
|
||||
guint oldlen = array->len;
|
||||
|
@ -400,36 +400,6 @@ static inline void stq_le_p(void *ptr, uint64_t v)
|
||||
stq_he_p(ptr, le_bswap(v, 64));
|
||||
}
|
||||
|
||||
/* float access */
|
||||
|
||||
static inline float32 ldfl_le_p(const void *ptr)
|
||||
{
|
||||
CPU_FloatU u;
|
||||
u.l = ldl_le_p(ptr);
|
||||
return u.f;
|
||||
}
|
||||
|
||||
static inline void stfl_le_p(void *ptr, float32 v)
|
||||
{
|
||||
CPU_FloatU u;
|
||||
u.f = v;
|
||||
stl_le_p(ptr, u.l);
|
||||
}
|
||||
|
||||
static inline float64 ldfq_le_p(const void *ptr)
|
||||
{
|
||||
CPU_DoubleU u;
|
||||
u.ll = ldq_le_p(ptr);
|
||||
return u.d;
|
||||
}
|
||||
|
||||
static inline void stfq_le_p(void *ptr, float64 v)
|
||||
{
|
||||
CPU_DoubleU u;
|
||||
u.d = v;
|
||||
stq_le_p(ptr, u.ll);
|
||||
}
|
||||
|
||||
static inline int lduw_be_p(const void *ptr)
|
||||
{
|
||||
return (uint16_t)be_bswap(lduw_he_p(ptr), 16);
|
||||
@ -465,36 +435,6 @@ static inline void stq_be_p(void *ptr, uint64_t v)
|
||||
stq_he_p(ptr, be_bswap(v, 64));
|
||||
}
|
||||
|
||||
/* float access */
|
||||
|
||||
static inline float32 ldfl_be_p(const void *ptr)
|
||||
{
|
||||
CPU_FloatU u;
|
||||
u.l = ldl_be_p(ptr);
|
||||
return u.f;
|
||||
}
|
||||
|
||||
static inline void stfl_be_p(void *ptr, float32 v)
|
||||
{
|
||||
CPU_FloatU u;
|
||||
u.f = v;
|
||||
stl_be_p(ptr, u.l);
|
||||
}
|
||||
|
||||
static inline float64 ldfq_be_p(const void *ptr)
|
||||
{
|
||||
CPU_DoubleU u;
|
||||
u.ll = ldq_be_p(ptr);
|
||||
return u.d;
|
||||
}
|
||||
|
||||
static inline void stfq_be_p(void *ptr, float64 v)
|
||||
{
|
||||
CPU_DoubleU u;
|
||||
u.d = v;
|
||||
stq_be_p(ptr, u.ll);
|
||||
}
|
||||
|
||||
static inline unsigned long leul_to_cpu(unsigned long v)
|
||||
{
|
||||
#if HOST_LONG_BITS == 32
|
||||
|
@ -3,7 +3,7 @@
|
||||
# Author: Alex Bennée <alex.bennee@linaro.org>
|
||||
#
|
||||
# Summerise the state of code coverage with gcovr and tweak the output
|
||||
# to be more sane on Travis hosts. As we expect to be executed on a
|
||||
# to be more sane on CI runner. As we expect to be executed on a
|
||||
# throw away CI instance we do spam temp files all over the shop. You
|
||||
# most likely don't want to execute this script but just call gcovr
|
||||
# directly. See also "make coverage-report"
|
@ -72,8 +72,7 @@ static int cf_fpu_gdb_get_reg(CPUM68KState *env, GByteArray *mem_buf, int n)
|
||||
{
|
||||
if (n < 8) {
|
||||
float_status s;
|
||||
return gdb_get_float64(mem_buf,
|
||||
floatx80_to_float64(env->fregs[n].d, &s));
|
||||
return gdb_get_reg64(mem_buf, floatx80_to_float64(env->fregs[n].d, &s));
|
||||
}
|
||||
switch (n) {
|
||||
case 8: /* fpcontrol */
|
||||
@ -90,7 +89,7 @@ static int cf_fpu_gdb_set_reg(CPUM68KState *env, uint8_t *mem_buf, int n)
|
||||
{
|
||||
if (n < 8) {
|
||||
float_status s;
|
||||
env->fregs[n].d = float64_to_floatx80(ldfq_p(mem_buf), &s);
|
||||
env->fregs[n].d = float64_to_floatx80(ldq_p(mem_buf), &s);
|
||||
return 8;
|
||||
}
|
||||
switch (n) {
|
||||
|
@ -130,7 +130,7 @@ int ppc_cpu_gdb_read_register(CPUState *cs, GByteArray *buf, int n)
|
||||
gdb_get_regl(buf, env->gpr[n]);
|
||||
} else if (n < 64) {
|
||||
/* fprs */
|
||||
gdb_get_float64(buf, *cpu_fpr_ptr(env, n - 32));
|
||||
gdb_get_reg64(buf, *cpu_fpr_ptr(env, n - 32));
|
||||
} else {
|
||||
switch (n) {
|
||||
case 64:
|
||||
@ -184,7 +184,7 @@ int ppc_cpu_gdb_read_register_apple(CPUState *cs, GByteArray *buf, int n)
|
||||
gdb_get_reg64(buf, env->gpr[n]);
|
||||
} else if (n < 64) {
|
||||
/* fprs */
|
||||
gdb_get_float64(buf, *cpu_fpr_ptr(env, n - 32));
|
||||
gdb_get_reg64(buf, *cpu_fpr_ptr(env, n - 32));
|
||||
} else if (n < 96) {
|
||||
/* Altivec */
|
||||
gdb_get_reg64(buf, n - 64);
|
||||
@ -241,7 +241,7 @@ int ppc_cpu_gdb_write_register(CPUState *cs, uint8_t *mem_buf, int n)
|
||||
env->gpr[n] = ldtul_p(mem_buf);
|
||||
} else if (n < 64) {
|
||||
/* fprs */
|
||||
*cpu_fpr_ptr(env, n - 32) = ldfq_p(mem_buf);
|
||||
*cpu_fpr_ptr(env, n - 32) = ldq_p(mem_buf);
|
||||
} else {
|
||||
switch (n) {
|
||||
case 64:
|
||||
@ -291,7 +291,7 @@ int ppc_cpu_gdb_write_register_apple(CPUState *cs, uint8_t *mem_buf, int n)
|
||||
env->gpr[n] = ldq_p(mem_buf);
|
||||
} else if (n < 64) {
|
||||
/* fprs */
|
||||
*cpu_fpr_ptr(env, n - 32) = ldfq_p(mem_buf);
|
||||
*cpu_fpr_ptr(env, n - 32) = ldq_p(mem_buf);
|
||||
} else {
|
||||
switch (n) {
|
||||
case 64 + 32:
|
||||
|
@ -9923,7 +9923,7 @@ static int gdb_get_float_reg(CPUPPCState *env, GByteArray *buf, int n)
|
||||
{
|
||||
uint8_t *mem_buf;
|
||||
if (n < 32) {
|
||||
gdb_get_float64(buf, *cpu_fpr_ptr(env, n));
|
||||
gdb_get_reg64(buf, *cpu_fpr_ptr(env, n));
|
||||
mem_buf = gdb_get_reg_ptr(buf, 8);
|
||||
ppc_maybe_bswap_register(env, mem_buf, 8);
|
||||
return 8;
|
||||
@ -9941,7 +9941,7 @@ static int gdb_set_float_reg(CPUPPCState *env, uint8_t *mem_buf, int n)
|
||||
{
|
||||
if (n < 32) {
|
||||
ppc_maybe_bswap_register(env, mem_buf, 8);
|
||||
*cpu_fpr_ptr(env, n) = ldfq_p(mem_buf);
|
||||
*cpu_fpr_ptr(env, n) = ldq_p(mem_buf);
|
||||
return 8;
|
||||
}
|
||||
if (n == 32) {
|
||||
|
@ -58,9 +58,9 @@ int superh_cpu_gdb_read_register(CPUState *cs, GByteArray *mem_buf, int n)
|
||||
return gdb_get_regl(mem_buf, env->fpscr);
|
||||
case 25 ... 40:
|
||||
if (env->fpscr & FPSCR_FR) {
|
||||
return gdb_get_float32(mem_buf, env->fregs[n - 9]);
|
||||
return gdb_get_reg32(mem_buf, env->fregs[n - 9]);
|
||||
}
|
||||
return gdb_get_float32(mem_buf, env->fregs[n - 25]);
|
||||
return gdb_get_reg32(mem_buf, env->fregs[n - 25]);
|
||||
case 41:
|
||||
return gdb_get_regl(mem_buf, env->ssr);
|
||||
case 42:
|
||||
@ -119,9 +119,9 @@ int superh_cpu_gdb_write_register(CPUState *cs, uint8_t *mem_buf, int n)
|
||||
break;
|
||||
case 25 ... 40:
|
||||
if (env->fpscr & FPSCR_FR) {
|
||||
env->fregs[n - 9] = ldfl_p(mem_buf);
|
||||
env->fregs[n - 9] = ldl_p(mem_buf);
|
||||
} else {
|
||||
env->fregs[n - 25] = ldfl_p(mem_buf);
|
||||
env->fregs[n - 25] = ldl_p(mem_buf);
|
||||
}
|
||||
break;
|
||||
case 41:
|
||||
|
@ -21,8 +21,6 @@ DOCKER_REGISTRY := $(if $(REGISTRY),$(REGISTRY),registry.gitlab.com/qemu-project
|
||||
DOCKER_TESTS := $(notdir $(shell \
|
||||
find $(SRC_PATH)/tests/docker/ -name 'test-*' -type f))
|
||||
|
||||
DOCKER_TOOLS := travis
|
||||
|
||||
ENGINE := auto
|
||||
|
||||
DOCKER_SCRIPT=$(SRC_PATH)/tests/docker/docker.py --engine $(ENGINE)
|
||||
@ -126,7 +124,7 @@ ifneq ($(HOST_ARCH),x86_64)
|
||||
DOCKER_PARTIAL_IMAGES += debian-mips-cross debian-mipsel-cross debian-mips64el-cross
|
||||
DOCKER_PARTIAL_IMAGES += debian-ppc64el-cross
|
||||
DOCKER_PARTIAL_IMAGES += debian-s390x-cross
|
||||
DOCKER_PARTIAL_IMAGES += fedora travis
|
||||
DOCKER_PARTIAL_IMAGES += fedora
|
||||
endif
|
||||
|
||||
docker-image-debian-alpha-cross: docker-image-debian10
|
||||
@ -147,8 +145,6 @@ docker-image-debian-s390x-cross: docker-image-debian10
|
||||
docker-image-debian-sh4-cross: docker-image-debian10
|
||||
docker-image-debian-sparc64-cross: docker-image-debian10
|
||||
|
||||
docker-image-travis: NOUSER=1
|
||||
|
||||
# Specialist build images, sometimes very limited tools
|
||||
docker-image-debian-tricore-cross: docker-image-debian10
|
||||
docker-image-debian-all-test-cross: docker-image-debian10
|
||||
@ -174,7 +170,7 @@ DOCKER_PARTIAL_IMAGES += fedora-i386-cross fedora-cris-cross
|
||||
|
||||
# Expand all the pre-requistes for each docker image and test combination
|
||||
$(foreach i,$(filter-out $(DOCKER_PARTIAL_IMAGES),$(DOCKER_IMAGES)), \
|
||||
$(foreach t,$(DOCKER_TESTS) $(DOCKER_TOOLS), \
|
||||
$(foreach t,$(DOCKER_TESTS), \
|
||||
$(eval .PHONY: docker-$t@$i) \
|
||||
$(eval docker-$t@$i: docker-image-$i docker-run-$t@$i) \
|
||||
) \
|
||||
@ -212,9 +208,6 @@ endif
|
||||
@echo 'Available tests:'
|
||||
@echo ' $(DOCKER_TESTS)'
|
||||
@echo
|
||||
@echo 'Available tools:'
|
||||
@echo ' $(DOCKER_TOOLS)'
|
||||
@echo
|
||||
@echo 'Special variables:'
|
||||
@echo ' TARGET_LIST=a,b,c Override target list in builds.'
|
||||
@echo ' EXTRA_CONFIGURE_OPTS="..."'
|
||||
|
@ -1,17 +0,0 @@
|
||||
#
|
||||
# Travis Image - this is broadly the same image that we run our CI
|
||||
# tests on.
|
||||
#
|
||||
FROM travisci/ci-sardonyx:packer-1552557266-f909ac5
|
||||
ENV DEBIAN_FRONTEND noninteractive
|
||||
ENV LANG en_US.UTF-8
|
||||
ENV LC_ALL en_US.UTF-8
|
||||
RUN sed -i "s/# deb-src/deb-src/" /etc/apt/sources.list
|
||||
RUN apt-get update
|
||||
RUN apt-get -y build-dep qemu
|
||||
RUN apt-get -y install device-tree-compiler python3 python3-yaml dh-autoreconf gdb strace lsof net-tools gcovr ninja-build
|
||||
# Travis tools require PhantomJS / Neo4j / Maven accessible
|
||||
# in their PATH (QEMU build won't access them).
|
||||
ENV PATH /usr/local/phantomjs/bin:/usr/local/phantomjs:/usr/local/neo4j-3.2.7/bin:/usr/local/maven-3.5.2/bin:/usr/local/cmake-3.9.2/bin:/usr/local/clang-5.0.0/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||
ENV FEATURES clang pyyaml docs
|
||||
USER travis
|
@ -1,8 +1,10 @@
|
||||
FROM ubuntu:20.04
|
||||
ENV PACKAGES flex bison \
|
||||
bsdmainutils \
|
||||
ccache \
|
||||
clang-10\
|
||||
gcc \
|
||||
gcovr \
|
||||
genisoimage \
|
||||
gettext \
|
||||
git \
|
||||
|
@ -1,22 +0,0 @@
|
||||
#!/bin/bash -e
|
||||
#
|
||||
# Mimic a travis testing matrix
|
||||
#
|
||||
# Copyright (c) 2016 Red Hat Inc.
|
||||
#
|
||||
# Authors:
|
||||
# Fam Zheng <famz@redhat.com>
|
||||
#
|
||||
# This work is licensed under the terms of the GNU GPL, version 2
|
||||
# or (at your option) any later version. See the COPYING file in
|
||||
# the top-level directory.
|
||||
|
||||
. common.rc
|
||||
|
||||
requires pyyaml
|
||||
cmdfile=/tmp/travis_cmd_list.sh
|
||||
$QEMU_SRC/tests/docker/travis.py $QEMU_SRC/.travis.yml > $cmdfile
|
||||
chmod +x $cmdfile
|
||||
cd "$QEMU_SRC"
|
||||
unset BUILD_DIR SRC_DIR
|
||||
$cmdfile
|
@ -1,47 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
#
|
||||
# Travis YAML config parser
|
||||
#
|
||||
# Copyright (c) 2016 Red Hat Inc.
|
||||
#
|
||||
# Authors:
|
||||
# Fam Zheng <famz@redhat.com>
|
||||
#
|
||||
# This work is licensed under the terms of the GNU GPL, version 2
|
||||
# or (at your option) any later version. See the COPYING file in
|
||||
# the top-level directory.
|
||||
|
||||
import sys
|
||||
import yaml
|
||||
import itertools
|
||||
|
||||
def load_yaml(fname):
|
||||
return yaml.safe_load(open(fname, "r").read())
|
||||
|
||||
def conf_iter(conf):
|
||||
# If "compiler" is omitted from the included env then Travis picks the
|
||||
# first entry of the global compiler list.
|
||||
default_compiler = conf["compiler"][0]
|
||||
def env_to_list(env):
|
||||
return env if isinstance(env, list) else [env]
|
||||
for entry in conf["matrix"]["include"]:
|
||||
yield {"env": env_to_list(entry["env"]),
|
||||
"compiler": entry.get("compiler", default_compiler)}
|
||||
|
||||
def main():
|
||||
if len(sys.argv) < 2:
|
||||
sys.stderr.write("Usage: %s <travis-file>\n" % sys.argv[0])
|
||||
return 1
|
||||
conf = load_yaml(sys.argv[1])
|
||||
print("\n".join((": ${%s}" % var for var in conf["env"]["global"])))
|
||||
for config in conf_iter(conf):
|
||||
print("(")
|
||||
print("\n".join(config["env"]))
|
||||
print("alias cc=" + config["compiler"])
|
||||
print("\n".join(conf["before_script"]))
|
||||
print("\n".join(conf["script"]))
|
||||
print(")")
|
||||
return 0
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
@ -27,5 +27,9 @@ run-gdbstub-memory: memory
|
||||
--bin $< --test $(MULTIARCH_SRC)/gdbstub/memory.py, \
|
||||
"softmmu gdbstub support")
|
||||
|
||||
MULTIARCH_RUNS += run-gdbstub-memory
|
||||
else
|
||||
run-gdbstub-%:
|
||||
$(call skip-test, "gdbstub test $*", "need working gdb")
|
||||
endif
|
||||
|
||||
MULTIARCH_RUNS += run-gdbstub-memory
|
||||
|
Loading…
Reference in New Issue
Block a user