diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 72e8604579..a18e18b57e 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -134,7 +134,7 @@ build-system-fedora: variables: IMAGE: fedora CONFIGURE_ARGS: --disable-gcrypt --enable-nettle - TARGETS: tricore-softmmu unicore32-softmmu microblaze-softmmu mips-softmmu + TARGETS: tricore-softmmu microblaze-softmmu mips-softmmu xtensa-softmmu m68k-softmmu riscv32-softmmu ppc-softmmu sparc64-softmmu MAKE_CHECK_ARGS: check-build artifacts: @@ -166,7 +166,7 @@ build-system-centos: variables: IMAGE: centos8 CONFIGURE_ARGS: --disable-nettle --enable-gcrypt - TARGETS: ppc64-softmmu lm32-softmmu or1k-softmmu s390x-softmmu + TARGETS: ppc64-softmmu or1k-softmmu s390x-softmmu x86_64-softmmu rx-softmmu sh4-softmmu nios2-softmmu MAKE_CHECK_ARGS: check-build artifacts: @@ -254,6 +254,17 @@ build-clang: ppc-softmmu s390x-softmmu arm-linux-user MAKE_CHECK_ARGS: check +# These targets are on the way out +build-deprecated: + <<: *native_build_job_definition + variables: + IMAGE: debian-all-test-cross + CONFIGURE_ARGS: --disable-docs --disable-tools + MAKE_CHECK_ARGS: check-tcg + TARGETS: ppc64abi32-linux-user tilegx-linux-user lm32-softmmu + unicore32-softmmu + allow_failure: true + build-oss-fuzz: <<: *native_build_job_definition variables: diff --git a/.shippable.yml b/.shippable.yml index 89d8be4291..0b4fd6df1d 100644 --- a/.shippable.yml +++ b/.shippable.yml @@ -8,7 +8,7 @@ env: - IMAGE=debian-amd64 TARGET_LIST=x86_64-softmmu,x86_64-linux-user - IMAGE=debian-win32-cross - TARGET_LIST=arm-softmmu,i386-softmmu,lm32-softmmu + TARGET_LIST=arm-softmmu,i386-softmmu - IMAGE=debian-win64-cross TARGET_LIST=aarch64-softmmu,sparc64-softmmu,x86_64-softmmu - IMAGE=debian-armel-cross diff --git a/.travis.yml b/.travis.yml index 65341634d0..c75221dca3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -344,10 +344,9 @@ jobs: # Run check-tcg against linux-user (with plugins) # we skip sparc64-linux-user until it has been fixed somewhat # we skip cris-linux-user as it doesn't use the common run loop - # we skip ppc64abi32-linux-user as it seems to have a broken libc - name: "GCC plugins check-tcg (user)" env: - - CONFIG="--disable-system --enable-plugins --enable-debug-tcg --target-list-exclude=sparc64-linux-user,cris-linux-user,ppc64abi32-linux-user" + - CONFIG="--disable-system --enable-plugins --enable-debug-tcg --target-list-exclude=sparc64-linux-user,cris-linux-user" - TEST_BUILD_CMD="make build-tcg" - TEST_CMD="make check-tcg" - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug-tcg" diff --git a/configure b/configure index ce27eafb0a..7564479008 100755 --- a/configure +++ b/configure @@ -280,6 +280,9 @@ supported_whpx_target() { return 1 } +deprecated_targets_list=ppc64abi32-linux-user,tilegx-linux-user,lm32-softmmu,unicore32-softmmu +deprecated_features="" + supported_target() { case "$1" in *-softmmu) @@ -301,6 +304,12 @@ supported_target() { return 1 ;; esac + + # if a deprecated target is enabled we note it here + if echo "$deprecated_targets_list" | grep -q "$1"; then + add_to deprecated_features $1 + fi + test "$tcg" = "yes" && return 0 supported_kvm_target "$1" && return 0 supported_xen_target "$1" && return 0 @@ -542,8 +551,6 @@ gettext="" bogus_os="no" malloc_trim="" -deprecated_features="" - # parse CC options first for opt do optarg=$(expr "x$opt" : 'x[^=]*=\(.*\)') @@ -1722,22 +1729,19 @@ if [ "$bsd_user" = "yes" ]; then mak_wilds="${mak_wilds} $source_path/default-configs/*-bsd-user.mak" fi -if test -z "$target_list_exclude" -a -z "$target_list"; then - # if the user doesn't specify anything lets skip deprecating stuff - target_list_exclude=ppc64abi32-linux-user +# If the user doesn't explicitly specify a deprecated target we will +# skip it. +if test -z "$target_list"; then + if test -z "$target_list_exclude"; then + target_list_exclude="$deprecated_targets_list" + else + target_list_exclude="$target_list_exclude,$deprecated_targets_list" + fi fi -exclude_list=$(echo "$target_list_exclude" | sed -e 's/,/ /g') for config in $mak_wilds; do target="$(basename "$config" .mak)" - exclude="no" - for excl in $exclude_list; do - if test "$excl" = "$target"; then - exclude="yes" - break; - fi - done - if test "$exclude" = "no"; then + if echo "$target_list_exclude" | grep -vq "$target"; then default_target_list="${default_target_list} $target" fi done @@ -7668,7 +7672,6 @@ case "$target_name" in TARGET_SYSTBL_ABI=common,nospu,32 echo "TARGET_ABI32=y" >> $config_target_mak gdb_xml_files="power64-core.xml power-fpu.xml power-altivec.xml power-spe.xml power-vsx.xml" - deprecated_features="ppc64abi32 ${deprecated_features}" ;; riscv32) TARGET_BASE_ARCH=riscv diff --git a/linux-user/elfload.c b/linux-user/elfload.c index 4961e6119e..f6022fd704 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -2331,14 +2331,13 @@ static void pgb_reserved_va(const char *image_name, abi_ulong guest_loaddr, assert(guest_base != 0); test = g2h(0); addr = mmap(test, reserved_va, PROT_NONE, flags, -1, 0); - if (addr == MAP_FAILED) { + if (addr == MAP_FAILED || addr != test) { error_report("Unable to reserve 0x%lx bytes of virtual address " - "space (%s) for use as guest address space (check your " - "virtual memory ulimit setting or reserve less " - "using -R option)", reserved_va, strerror(errno)); + "space at %p (%s) for use as guest address space (check your" + "virtual memory ulimit setting, min_mmap_addr or reserve less " + "using -R option)", reserved_va, test, strerror(errno)); exit(EXIT_FAILURE); } - assert(addr == test); } void probe_guest_base(const char *image_name, abi_ulong guest_loaddr,