From nobody Sun Feb 8 18:09:36 2026 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=redhat.com Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1639558311999206.03603931395105; Wed, 15 Dec 2021 00:51:51 -0800 (PST) Received: from localhost ([::1]:39206 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mxQ0s-0002e5-7m for importer@patchew.org; Wed, 15 Dec 2021 03:51:50 -0500 Received: from eggs.gnu.org ([209.51.188.92]:39902) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mxPzT-0001nu-LI for qemu-devel@nongnu.org; Wed, 15 Dec 2021 03:50:23 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.133.124]:30976) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mxPzO-0001iz-Aa for qemu-devel@nongnu.org; Wed, 15 Dec 2021 03:50:21 -0500 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-642-9Vq8sDEPOnehsRUTw8gfzg-1; Wed, 15 Dec 2021 03:50:04 -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 73B1A801B35; Wed, 15 Dec 2021 08:50:02 +0000 (UTC) Received: from thuth.com (dhcp-192-183.str.redhat.com [10.33.192.183]) by smtp.corp.redhat.com (Postfix) with ESMTP id 303F27E91E; Wed, 15 Dec 2021 08:49:59 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1639558207; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=5xRagRlTY02Phph6oFPTHX3quL5wfkms9ChGWKSYRlo=; b=D2hmlHSEhdmVt0QHabQKM40/zb6qWkR0WlkTdBTBwMBJpmmgwV57Xa3GTuLxrX5iPEYcMW Pn3wM4UDwOV0iBr+m5zDBojm2FTpezW3eaqaqrQf77lKePl6g1NBeGGQzkq3a3BIMHVjG8 bA0amDpKjMlYQTp5EYHtH/j1TKxERQ0= X-MC-Unique: 9Vq8sDEPOnehsRUTw8gfzg-1 From: Thomas Huth To: qemu-devel@nongnu.org, Laurent Vivier Subject: [PATCH] linux-user: Remove the deprecated ppc64abi32 target Date: Wed, 15 Dec 2021 09:49:58 +0100 Message-Id: <20211215084958.185214-1-thuth@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.12 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=thuth@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Transfer-Encoding: quoted-printable Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: pass client-ip=170.10.133.124; envelope-from=thuth@redhat.com; helo=us-smtp-delivery-124.mimecast.com X-Spam_score_int: -34 X-Spam_score: -3.5 X-Spam_bar: --- X-Spam_report: (-3.5 / 5.0 requ) BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.719, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Daniel Henrique Barboza , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= , Greg Kurz , qemu-ppc@nongnu.org, =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= , =?UTF-8?q?Alex=20Benn=C3=A9e?= , David Gibson Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) X-ZM-MESSAGEID: 1639558314562100001 Content-Type: text/plain; charset="utf-8" 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 Acked-by: Alex Benn=C3=A9e Acked-by: C=C3=A9dric Le Goater Reviewed-by: Richard Henderson --- .gitlab-ci.d/buildtest.yml | 27 ----------------- configs/targets/ppc64abi32-linux-user.mak | 8 ----- configure | 29 +------------------ docs/about/deprecated.rst | 7 ----- docs/about/removed-features.rst | 8 +++++ docs/user/main.rst | 1 - linux-user/elfload.c | 4 +-- linux-user/ppc/signal.c | 11 ++----- linux-user/ppc/target_syscall.h | 4 +-- linux-user/syscall_defs.h | 6 ++-- .../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/.gitlab-ci.d/buildtest.yml b/.gitlab-ci.d/buildtest.yml index 7e1cb0b3c2..d52fde23ec 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/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/configure b/configure index 48c21775f3..da34ab0e12 100755 --- a/configure +++ b/configure @@ -1295,8 +1295,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 @@ -1309,16 +1307,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 @@ -1337,11 +1325,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): @@ -1827,13 +1813,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 @@ -4017,12 +3996,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/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/linux-user/elfload.c b/linux-user/elfload.c index 767f54c76d..62ce067d58 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 90a0369632..86f4528422 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/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/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 9b76f58258..022bd45341 100755 --- a/tests/tcg/configure.sh +++ b/tests/tcg/configure.sh @@ -165,7 +165,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.27.0