From nobody Fri Dec 19 21:55:53 2025 Delivered-To: importer@patchew.org Received-SPF: pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) client-ip=170.10.133.124; envelope-from=libvir-list-bounces@redhat.com; helo=us-smtp-delivery-124.mimecast.com; Authentication-Results: mx.zohomail.com; spf=pass (zohomail.com: domain of redhat.com designates 170.10.133.124 as permitted sender) smtp.mailfrom=libvir-list-bounces@redhat.com; dmarc=fail(p=none dis=none) header.from=linaro.org Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by mx.zohomail.com with SMTPS id 1641391239044580.8500533130881; Wed, 5 Jan 2022 06:00:39 -0800 (PST) Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-654-6eD1AHorPBSwzN8DwVP34g-1; Wed, 05 Jan 2022 09:00:35 -0500 Received: from smtp.corp.redhat.com (int-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 8CF40801B0C; Wed, 5 Jan 2022 14:00:30 +0000 (UTC) Received: from colo-mx.corp.redhat.com (colo-mx02.intmail.prod.int.phx2.redhat.com [10.5.11.21]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 23A8D7E2F6; Wed, 5 Jan 2022 14:00:29 +0000 (UTC) Received: from lists01.pubmisc.prod.ext.phx2.redhat.com (lists01.pubmisc.prod.ext.phx2.redhat.com [10.5.19.33]) by colo-mx.corp.redhat.com (Postfix) with ESMTP id CC77B4BB7C; Wed, 5 Jan 2022 14:00:26 +0000 (UTC) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) by lists01.pubmisc.prod.ext.phx2.redhat.com (8.13.8/8.13.8) with ESMTP id 205E0Oan023146 for ; Wed, 5 Jan 2022 09:00:24 -0500 Received: by smtp.corp.redhat.com (Postfix) id 16E7C1121318; Wed, 5 Jan 2022 14:00:24 +0000 (UTC) Received: from mimecast-mx02.redhat.com (mimecast10.extmail.prod.ext.rdu2.redhat.com [10.11.55.26]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 120071121315 for ; Wed, 5 Jan 2022 14:00:18 +0000 (UTC) Received: from us-smtp-1.mimecast.com (us-smtp-delivery-1.mimecast.com [205.139.110.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mimecast-mx02.redhat.com (Postfix) with ESMTPS id 46BA41C05EAE for ; Wed, 5 Jan 2022 14:00:18 +0000 (UTC) Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-146--C45jRgYMrSi1f1a4eQU5Q-1; Wed, 05 Jan 2022 09:00:16 -0500 Received: by mail-wm1-f42.google.com with SMTP id o30so23060130wms.4 for ; Wed, 05 Jan 2022 06:00:16 -0800 (PST) Received: from zen.linaroharston ([51.148.130.216]) by smtp.gmail.com with ESMTPSA id j11sm2474010wmq.23.2022.01.05.06.00.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 05 Jan 2022 06:00:13 -0800 (PST) Received: from zen.lan (localhost [127.0.0.1]) by zen.linaroharston (Postfix) with ESMTP id 61CC21FFD8; Wed, 5 Jan 2022 13:50:12 +0000 (GMT) X-MC-Unique: 6eD1AHorPBSwzN8DwVP34g-1 X-MC-Unique: -C45jRgYMrSi1f1a4eQU5Q-1 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=/6SYzwNlzDH/I4p5Pu80Z4qjvUWTeu3InzKxm2WICj4=; b=OjKsy43X+AYSlzfHC7Ai/ixrmDzo5AvZTVuVfI3MmK79wd9Zy+i65y13m4RK6fTFiu LIqSmUwXXZOG1yIUNnvRb5clK4yLWItCI4WrkE0y0keT4VW9adItN3MLBTvzOe1VTXmg oM7Hsm4jKavjitE5br/GrlTtB04/6I6aKeiFInPCI2KBDs2oiBN6nP/e1Uh/RPo9dCrm KXJvrcTOtF84JkS/znzyaw4wVD0kSM4QTavfSC/sNE6cR2LXXbiou4xEPtsNMTeD8RYL Qw9XXvgiF+KSi14SUfH/ZcJboMo9rOMFyOaKUbnAB+Nm6ACGpFv+81W5ms1rimm+TkUm HPGw== X-Gm-Message-State: AOAM533zWEufCamMSNPYpIDOSKkrURXmQPSwN6HSTxIMrlzxK3HEBJyt phXGBfD/PFczlf+SI7QxFDRlGg== X-Google-Smtp-Source: ABdhPJxlShQi6hggIzPMtLG1tAokhbFmEkQ+010FhFeMN7J5nS6m6maGiduzkZ3K4pFdStl+xnZ05A== X-Received: by 2002:a05:600c:34d2:: with SMTP id d18mr2982526wmq.71.1641391215338; Wed, 05 Jan 2022 06:00:15 -0800 (PST) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: qemu-devel@nongnu.org Subject: [PATCH v1 34/34] linux-user: Remove the deprecated ppc64abi32 target Date: Wed, 5 Jan 2022 13:50:09 +0000 Message-Id: <20220105135009.1584676-35-alex.bennee@linaro.org> In-Reply-To: <20220105135009.1584676-1-alex.bennee@linaro.org> References: <20220105135009.1584676-1-alex.bennee@linaro.org> MIME-Version: 1.0 X-Mimecast-Impersonation-Protect: Policy=CLT - Impersonation Protection Definition; Similar Internal Domain=false; Similar Monitored External Domain=false; Custom External Domain=false; Mimecast External Domain=false; Newly Observed Domain=false; Internal User Name=false; Custom Display Name List=false; Reply-to Address Mismatch=false; Targeted Threat Dictionary=false; Mimecast Threat Dictionary=false; Custom Threat Dictionary=false X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-loop: libvir-list@redhat.com Cc: fam@euphon.net, Thomas Huth , Beraldo Leal , "reviewer:Incompatible changes" , Richard Henderson , f4bug@amsat.org, Wainer dos Santos Moschetta , Laurent Vivier , =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , stefanha@redhat.com, crosa@redhat.com, pbonzini@redhat.com, =?UTF-8?q?Alex=20Benn=C3=A9e?= , aurelien@aurel32.net X-BeenThere: libvir-list@redhat.com X-Mailman-Version: 2.1.12 Precedence: junk List-Id: Development discussions about the libvirt library & tools List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: libvir-list-bounces@redhat.com Errors-To: libvir-list-bounces@redhat.com X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=libvir-list-bounces@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-ZM-MESSAGEID: 1641391241162100001 From: Thomas Huth It's likely broken, and nobody cared for picking it up again during the deprecation phase, so let's remove this now. Since this is the last entry in deprecated_targets_list, remove the related code in the configure script, too. Signed-off-by: Thomas Huth Reviewed-by: Richard Henderson Acked-by: C=C3=A9dric Le Goater Acked-by: Alex Benn=C3=A9e Message-Id: <20211215084958.185214-1-thuth@redhat.com> Signed-off-by: Alex Benn=C3=A9e --- docs/about/deprecated.rst | 7 ----- docs/about/removed-features.rst | 8 +++++ docs/user/main.rst | 1 - configure | 29 +------------------ configs/targets/ppc64abi32-linux-user.mak | 8 ----- linux-user/ppc/target_syscall.h | 4 +-- linux-user/syscall_defs.h | 6 ++-- linux-user/elfload.c | 4 +-- linux-user/ppc/signal.c | 11 ++----- .gitlab-ci.d/buildtest.yml | 27 ----------------- .../dockerfiles/debian-ppc64el-cross.docker | 2 +- tests/tcg/configure.sh | 2 +- 12 files changed, 21 insertions(+), 88 deletions(-) delete mode 100644 configs/targets/ppc64abi32-linux-user.mak diff --git a/docs/about/deprecated.rst b/docs/about/deprecated.rst index 5693abb663..7f12f53713 100644 --- a/docs/about/deprecated.rst +++ b/docs/about/deprecated.rst @@ -396,13 +396,6 @@ The above, converted to the current supported format:: linux-user mode CPUs -------------------- =20 -``ppc64abi32`` CPUs (since 5.2) -''''''''''''''''''''''''''''''' - -The ``ppc64abi32`` architecture has a number of issues which regularly -trip up our CI testing and is suspected to be quite broken. For that -reason the maintainers strongly suspect no one actually uses it. - MIPS ``I7200`` CPU (since 5.2) '''''''''''''''''''''''''''''' =20 diff --git a/docs/about/removed-features.rst b/docs/about/removed-features.= rst index d42c3341de..f92b8bd738 100644 --- a/docs/about/removed-features.rst +++ b/docs/about/removed-features.rst @@ -594,6 +594,14 @@ the upstream Linux kernel in 2018, and it has also bee= n dropped from glibc, so there is no new Linux development taking place with this architecture. For running the old binaries, you can use older versions of QEMU. =20 +``ppc64abi32`` CPUs (removed in 7.0) +'''''''''''''''''''''''''''''''''''' + +The ``ppc64abi32`` architecture has a number of issues which regularly +tripped up the CI testing and was suspected to be quite broken. For that +reason the maintainers strongly suspected no one actually used it. + + System emulator devices ----------------------- =20 diff --git a/docs/user/main.rst b/docs/user/main.rst index e08d4be63b..6f2ffa080f 100644 --- a/docs/user/main.rst +++ b/docs/user/main.rst @@ -166,7 +166,6 @@ Other binaries =20 - user mode (PowerPC) =20 - * ``qemu-ppc64abi32`` TODO. * ``qemu-ppc64`` TODO. * ``qemu-ppc`` TODO. =20 diff --git a/configure b/configure index 030728d11e..0c57a063c6 100755 --- a/configure +++ b/configure @@ -1273,8 +1273,6 @@ if [ "$ARCH" =3D "unknown" ]; then fi =20 default_target_list=3D"" -deprecated_targets_list=3Dppc64abi32-linux-user -deprecated_features=3D"" mak_wilds=3D"" =20 if [ "$softmmu" =3D "yes" ]; then @@ -1287,16 +1285,6 @@ if [ "$bsd_user" =3D "yes" ]; then mak_wilds=3D"${mak_wilds} $source_path/configs/targets/*-bsd-user.mak" fi =20 -# 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=3D"$deprecated_targets_list" - else - target_list_exclude=3D"$target_list_exclude,$deprecated_targets_li= st" - fi -fi - for config in $mak_wilds; do target=3D"$(basename "$config" .mak)" if echo "$target_list_exclude" | grep -vq "$target"; then @@ -1315,11 +1303,9 @@ Standard options: --prefix=3DPREFIX install in PREFIX [$prefix] --interp-prefix=3DPREFIX where to find shared libraries, etc. use %M for cpu name [$interp_prefix] - --target-list=3DLIST set target list (default: build all non-depre= cated) + --target-list=3DLIST set target list (default: build all) $(echo Available targets: $default_target_list | \ fold -s -w 53 | sed -e 's/^/ /') -$(echo Deprecated targets: $deprecated_targets_list | \ - fold -s -w 53 | sed -e 's/^/ /') --target-list-exclude=3DLIST exclude a set of targets from the default t= arget-list =20 Advanced options (experts only): @@ -1804,13 +1790,6 @@ else done fi =20 -for target in $target_list; do - # if a deprecated target is enabled we note it here - if echo "$deprecated_targets_list" | grep -q "$target"; then - add_to deprecated_features $target - fi -done - # see if system emulation was really requested case " $target_list " in *"-softmmu "*) softmmu=3Dyes @@ -3950,12 +3929,6 @@ else fi fi =20 -if test -n "${deprecated_features}"; then - echo "Warning, deprecated features enabled." - echo "Please see docs/about/deprecated.rst" - echo " features: ${deprecated_features}" -fi - # Create list of config switches that should be poisoned in common code... # but filter out CONFIG_TCG and CONFIG_USER_ONLY which are special. target_configs_h=3D$(ls *-config-devices.h *-config-target.h 2>/dev/null) diff --git a/configs/targets/ppc64abi32-linux-user.mak b/configs/targets/pp= c64abi32-linux-user.mak deleted file mode 100644 index 0945451081..0000000000 --- a/configs/targets/ppc64abi32-linux-user.mak +++ /dev/null @@ -1,8 +0,0 @@ -TARGET_ARCH=3Dppc64 -TARGET_ABI32=3Dy -TARGET_BASE_ARCH=3Dppc -TARGET_ABI_DIR=3Dppc -TARGET_SYSTBL_ABI=3Dcommon,nospu,32 -TARGET_SYSTBL=3Dsyscall.tbl -TARGET_WORDS_BIGENDIAN=3Dy -TARGET_XML_FILES=3D gdb-xml/power64-core.xml gdb-xml/power-fpu.xml gdb-xml= /power-altivec.xml gdb-xml/power-spe.xml gdb-xml/power-vsx.xml diff --git a/linux-user/ppc/target_syscall.h b/linux-user/ppc/target_syscal= l.h index b9c4b813d3..30591806f0 100644 --- a/linux-user/ppc/target_syscall.h +++ b/linux-user/ppc/target_syscall.h @@ -36,7 +36,7 @@ struct target_pt_regs { abi_ulong link; abi_ulong xer; abi_ulong ccr; -#if defined(TARGET_PPC64) && !defined(TARGET_ABI32) +#if defined(TARGET_PPC64) abi_ulong softe; #else abi_ulong mq; /* 601 only (not used at present) */ @@ -58,7 +58,7 @@ struct target_revectored_struct { * flags masks */ =20 -#if defined(TARGET_PPC64) && !defined(TARGET_ABI32) +#if defined(TARGET_PPC64) #ifdef TARGET_WORDS_BIGENDIAN #define UNAME_MACHINE "ppc64" #else diff --git a/linux-user/syscall_defs.h b/linux-user/syscall_defs.h index 0b13975937..7a8f24967d 100644 --- a/linux-user/syscall_defs.h +++ b/linux-user/syscall_defs.h @@ -1607,7 +1607,7 @@ struct target_stat64 { struct target_stat { abi_ulong st_dev; abi_ulong st_ino; -#if defined(TARGET_PPC64) && !defined(TARGET_ABI32) +#if defined(TARGET_PPC64) abi_ulong st_nlink; unsigned int st_mode; #else @@ -1628,12 +1628,12 @@ struct target_stat { abi_ulong target_st_ctime_nsec; abi_ulong __unused4; abi_ulong __unused5; -#if defined(TARGET_PPC64) && !defined(TARGET_ABI32) +#if defined(TARGET_PPC64) abi_ulong __unused6; #endif }; =20 -#if !defined(TARGET_PPC64) || defined(TARGET_ABI32) +#if !defined(TARGET_PPC64) #define TARGET_HAS_STRUCT_STAT64 struct QEMU_PACKED target_stat64 { unsigned long long st_dev; diff --git a/linux-user/elfload.c b/linux-user/elfload.c index fa9dae5f3f..130dcb0e14 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -718,7 +718,7 @@ static inline void init_thread(struct target_pt_regs *r= egs, #define ELF_MACHINE PPC_ELF_MACHINE #define ELF_START_MMAP 0x80000000 =20 -#if defined(TARGET_PPC64) && !defined(TARGET_ABI32) +#if defined(TARGET_PPC64) =20 #define elf_check_arch(x) ( (x) =3D=3D EM_PPC64 ) =20 @@ -870,7 +870,7 @@ static uint32_t get_elf_hwcap2(void) static inline void init_thread(struct target_pt_regs *_regs, struct image_= info *infop) { _regs->gpr[1] =3D infop->start_stack; -#if defined(TARGET_PPC64) && !defined(TARGET_ABI32) +#if defined(TARGET_PPC64) if (get_ppc64_abi(infop) < 2) { uint64_t val; get_user_u64(val, infop->entry + 8); diff --git a/linux-user/ppc/signal.c b/linux-user/ppc/signal.c index 176c9d8503..ec0b9c0df3 100644 --- a/linux-user/ppc/signal.c +++ b/linux-user/ppc/signal.c @@ -477,9 +477,7 @@ void setup_rt_frame(int sig, struct target_sigaction *k= a, int i, err =3D 0; #if defined(TARGET_PPC64) struct target_sigcontext *sc =3D 0; -#if !defined(TARGET_ABI32) struct image_info *image =3D ((TaskState *)thread_cpu->opaque)->info; -#endif #endif =20 rt_sf_addr =3D get_sigframe(ka, env, sizeof(*rt_sf)); @@ -530,7 +528,7 @@ void setup_rt_frame(int sig, struct target_sigaction *k= a, env->gpr[5] =3D (target_ulong) h2g(&rt_sf->uc); env->gpr[6] =3D (target_ulong) h2g(rt_sf); =20 -#if defined(TARGET_PPC64) && !defined(TARGET_ABI32) +#if defined(TARGET_PPC64) if (get_ppc64_abi(image) < 2) { /* ELFv1 PPC64 function pointers are pointers to OPD entries. */ struct target_func_ptr *handler =3D @@ -562,7 +560,7 @@ sigsegv: =20 } =20 -#if !defined(TARGET_PPC64) || defined(TARGET_ABI32) +#if !defined(TARGET_PPC64) long do_sigreturn(CPUPPCState *env) { struct target_sigcontext *sc =3D NULL; @@ -575,12 +573,9 @@ long do_sigreturn(CPUPPCState *env) if (!lock_user_struct(VERIFY_READ, sc, sc_addr, 1)) goto sigsegv; =20 -#if defined(TARGET_PPC64) - set.sig[0] =3D sc->oldmask + ((uint64_t)(sc->_unused[3]) << 32); -#else __get_user(set.sig[0], &sc->oldmask); __get_user(set.sig[1], &sc->_unused[3]); -#endif + target_to_host_sigset_internal(&blocked, &set); set_sigmask(&blocked); =20 diff --git a/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml index 8f2a3c8f5b..0aa70213fb 100644 --- a/.gitlab-ci.d/buildtest.yml +++ b/.gitlab-ci.d/buildtest.yml @@ -473,33 +473,6 @@ tsan-build: TARGETS: x86_64-softmmu ppc64-softmmu riscv64-softmmu x86_64-linux-user MAKE_CHECK_ARGS: bench V=3D1 =20 -# These targets are on the way out -build-deprecated: - extends: .native_build_job_template - needs: - job: amd64-debian-user-cross-container - variables: - IMAGE: debian-all-test-cross - CONFIGURE_ARGS: --disable-tools - MAKE_CHECK_ARGS: build-tcg - TARGETS: ppc64abi32-linux-user - artifacts: - expire_in: 2 days - paths: - - build - -# We split the check-tcg step as test failures are expected but we still -# want to catch the build breaking. -check-deprecated: - extends: .native_test_job_template - needs: - - job: build-deprecated - artifacts: true - variables: - IMAGE: debian-all-test-cross - MAKE_CHECK_ARGS: check-tcg - allow_failure: true - # gprof/gcov are GCC features build-gprof-gcov: extends: .native_build_job_template diff --git a/tests/docker/dockerfiles/debian-ppc64el-cross.docker b/tests/d= ocker/dockerfiles/debian-ppc64el-cross.docker index 1146a06be6..5de12b01cd 100644 --- a/tests/docker/dockerfiles/debian-ppc64el-cross.docker +++ b/tests/docker/dockerfiles/debian-ppc64el-cross.docker @@ -16,7 +16,7 @@ RUN apt update && \ =20 # Specify the cross prefix for this image (see tests/docker/common.rc) ENV QEMU_CONFIGURE_OPTS --cross-prefix=3Dpowerpc64le-linux-gnu- -ENV DEF_TARGET_LIST ppc64-softmmu,ppc64-linux-user,ppc64abi32-linux-user +ENV DEF_TARGET_LIST ppc64-softmmu,ppc64-linux-user =20 # Install extra libraries to increase code coverage RUN apt update && \ diff --git a/tests/tcg/configure.sh b/tests/tcg/configure.sh index 309335a2bd..763e9b6ad8 100755 --- a/tests/tcg/configure.sh +++ b/tests/tcg/configure.sh @@ -167,7 +167,7 @@ for target in $target_list; do container_image=3Ddebian-nios2-cross container_cross_cc=3Dnios2-linux-gnu-gcc ;; - ppc-*|ppc64abi32-*) + ppc-*) container_hosts=3Dx86_64 container_image=3Ddebian-powerpc-test-cross container_cross_cc=3Dpowerpc-linux-gnu-gcc-10 --=20 2.30.2