linux-user: Remove the deprecated ppc64abi32 target

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 <thuth@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Acked-by: Cédric Le Goater <clg@kaod.org>
Acked-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20211215084958.185214-1-thuth@redhat.com>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <20220112112722.3641051-32-alex.bennee@linaro.org>
This commit is contained in:
Thomas Huth 2022-01-12 11:27:22 +00:00 committed by Alex Bennée
parent 6f15c076da
commit 74154d7e4a
12 changed files with 21 additions and 88 deletions

View File

@ -473,33 +473,6 @@ tsan-build:
TARGETS: x86_64-softmmu ppc64-softmmu riscv64-softmmu x86_64-linux-user TARGETS: x86_64-softmmu ppc64-softmmu riscv64-softmmu x86_64-linux-user
MAKE_CHECK_ARGS: bench V=1 MAKE_CHECK_ARGS: bench V=1
# 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 # gprof/gcov are GCC features
build-gprof-gcov: build-gprof-gcov:
extends: .native_build_job_template extends: .native_build_job_template

View File

@ -1,8 +0,0 @@
TARGET_ARCH=ppc64
TARGET_ABI32=y
TARGET_BASE_ARCH=ppc
TARGET_ABI_DIR=ppc
TARGET_SYSTBL_ABI=common,nospu,32
TARGET_SYSTBL=syscall.tbl
TARGET_WORDS_BIGENDIAN=y
TARGET_XML_FILES= 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

29
configure vendored
View File

@ -1252,8 +1252,6 @@ if eval test -z "\${cross_cc_$cpu}"; then
fi fi
default_target_list="" default_target_list=""
deprecated_targets_list=ppc64abi32-linux-user
deprecated_features=""
mak_wilds="" mak_wilds=""
if [ "$linux_user" != no ]; then if [ "$linux_user" != no ]; then
@ -1281,16 +1279,6 @@ if [ "$bsd_user" = "yes" ]; then
mak_wilds="${mak_wilds} $source_path/configs/targets/*-bsd-user.mak" mak_wilds="${mak_wilds} $source_path/configs/targets/*-bsd-user.mak"
fi fi
# 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
for config in $mak_wilds; do for config in $mak_wilds; do
target="$(basename "$config" .mak)" target="$(basename "$config" .mak)"
if echo "$target_list_exclude" | grep -vq "$target"; then if echo "$target_list_exclude" | grep -vq "$target"; then
@ -1309,11 +1297,9 @@ Standard options:
--prefix=PREFIX install in PREFIX [$prefix] --prefix=PREFIX install in PREFIX [$prefix]
--interp-prefix=PREFIX where to find shared libraries, etc. --interp-prefix=PREFIX where to find shared libraries, etc.
use %M for cpu name [$interp_prefix] use %M for cpu name [$interp_prefix]
--target-list=LIST set target list (default: build all non-deprecated) --target-list=LIST set target list (default: build all)
$(echo Available targets: $default_target_list | \ $(echo Available targets: $default_target_list | \
fold -s -w 53 | sed -e 's/^/ /') fold -s -w 53 | sed -e 's/^/ /')
$(echo Deprecated targets: $deprecated_targets_list | \
fold -s -w 53 | sed -e 's/^/ /')
--target-list-exclude=LIST exclude a set of targets from the default target-list --target-list-exclude=LIST exclude a set of targets from the default target-list
Advanced options (experts only): Advanced options (experts only):
@ -1797,13 +1783,6 @@ else
done done
fi fi
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 # see if system emulation was really requested
case " $target_list " in case " $target_list " in
*"-softmmu "*) softmmu=yes *"-softmmu "*) softmmu=yes
@ -3830,12 +3809,6 @@ else
fi fi
fi fi
if test -n "${deprecated_features}"; then
echo "Warning, deprecated features enabled."
echo "Please see docs/about/deprecated.rst"
echo " features: ${deprecated_features}"
fi
# Save the configure command line for later reuse. # Save the configure command line for later reuse.
cat <<EOD >config.status cat <<EOD >config.status
#!/bin/sh #!/bin/sh

View File

@ -403,13 +403,6 @@ The above, converted to the current supported format::
linux-user mode CPUs linux-user mode CPUs
-------------------- --------------------
``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) MIPS ``I7200`` CPU (since 5.2)
'''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''

View File

@ -601,6 +601,14 @@ the upstream Linux kernel in 2018, and it has also been dropped from glibc, so
there is no new Linux development taking place with this architecture. For there is no new Linux development taking place with this architecture. For
running the old binaries, you can use older versions of QEMU. running the old binaries, you can use older versions of QEMU.
``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.
TCG introspection features TCG introspection features
-------------------------- --------------------------

View File

@ -166,7 +166,6 @@ Other binaries
- user mode (PowerPC) - user mode (PowerPC)
* ``qemu-ppc64abi32`` TODO.
* ``qemu-ppc64`` TODO. * ``qemu-ppc64`` TODO.
* ``qemu-ppc`` TODO. * ``qemu-ppc`` TODO.

View File

@ -718,7 +718,7 @@ static inline void init_thread(struct target_pt_regs *regs,
#define ELF_MACHINE PPC_ELF_MACHINE #define ELF_MACHINE PPC_ELF_MACHINE
#define ELF_START_MMAP 0x80000000 #define ELF_START_MMAP 0x80000000
#if defined(TARGET_PPC64) && !defined(TARGET_ABI32) #if defined(TARGET_PPC64)
#define elf_check_arch(x) ( (x) == EM_PPC64 ) #define elf_check_arch(x) ( (x) == EM_PPC64 )
@ -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) static inline void init_thread(struct target_pt_regs *_regs, struct image_info *infop)
{ {
_regs->gpr[1] = infop->start_stack; _regs->gpr[1] = infop->start_stack;
#if defined(TARGET_PPC64) && !defined(TARGET_ABI32) #if defined(TARGET_PPC64)
if (get_ppc64_abi(infop) < 2) { if (get_ppc64_abi(infop) < 2) {
uint64_t val; uint64_t val;
get_user_u64(val, infop->entry + 8); get_user_u64(val, infop->entry + 8);

View File

@ -477,9 +477,7 @@ void setup_rt_frame(int sig, struct target_sigaction *ka,
int i, err = 0; int i, err = 0;
#if defined(TARGET_PPC64) #if defined(TARGET_PPC64)
struct target_sigcontext *sc = 0; struct target_sigcontext *sc = 0;
#if !defined(TARGET_ABI32)
struct image_info *image = ((TaskState *)thread_cpu->opaque)->info; struct image_info *image = ((TaskState *)thread_cpu->opaque)->info;
#endif
#endif #endif
rt_sf_addr = get_sigframe(ka, env, sizeof(*rt_sf)); rt_sf_addr = get_sigframe(ka, env, sizeof(*rt_sf));
@ -530,7 +528,7 @@ void setup_rt_frame(int sig, struct target_sigaction *ka,
env->gpr[5] = (target_ulong) h2g(&rt_sf->uc); env->gpr[5] = (target_ulong) h2g(&rt_sf->uc);
env->gpr[6] = (target_ulong) h2g(rt_sf); env->gpr[6] = (target_ulong) h2g(rt_sf);
#if defined(TARGET_PPC64) && !defined(TARGET_ABI32) #if defined(TARGET_PPC64)
if (get_ppc64_abi(image) < 2) { if (get_ppc64_abi(image) < 2) {
/* ELFv1 PPC64 function pointers are pointers to OPD entries. */ /* ELFv1 PPC64 function pointers are pointers to OPD entries. */
struct target_func_ptr *handler = struct target_func_ptr *handler =
@ -562,7 +560,7 @@ sigsegv:
} }
#if !defined(TARGET_PPC64) || defined(TARGET_ABI32) #if !defined(TARGET_PPC64)
long do_sigreturn(CPUPPCState *env) long do_sigreturn(CPUPPCState *env)
{ {
struct target_sigcontext *sc = NULL; struct target_sigcontext *sc = NULL;
@ -575,12 +573,9 @@ long do_sigreturn(CPUPPCState *env)
if (!lock_user_struct(VERIFY_READ, sc, sc_addr, 1)) if (!lock_user_struct(VERIFY_READ, sc, sc_addr, 1))
goto sigsegv; goto sigsegv;
#if defined(TARGET_PPC64)
set.sig[0] = sc->oldmask + ((uint64_t)(sc->_unused[3]) << 32);
#else
__get_user(set.sig[0], &sc->oldmask); __get_user(set.sig[0], &sc->oldmask);
__get_user(set.sig[1], &sc->_unused[3]); __get_user(set.sig[1], &sc->_unused[3]);
#endif
target_to_host_sigset_internal(&blocked, &set); target_to_host_sigset_internal(&blocked, &set);
set_sigmask(&blocked); set_sigmask(&blocked);

View File

@ -36,7 +36,7 @@ struct target_pt_regs {
abi_ulong link; abi_ulong link;
abi_ulong xer; abi_ulong xer;
abi_ulong ccr; abi_ulong ccr;
#if defined(TARGET_PPC64) && !defined(TARGET_ABI32) #if defined(TARGET_PPC64)
abi_ulong softe; abi_ulong softe;
#else #else
abi_ulong mq; /* 601 only (not used at present) */ abi_ulong mq; /* 601 only (not used at present) */
@ -58,7 +58,7 @@ struct target_revectored_struct {
* flags masks * flags masks
*/ */
#if defined(TARGET_PPC64) && !defined(TARGET_ABI32) #if defined(TARGET_PPC64)
#ifdef TARGET_WORDS_BIGENDIAN #ifdef TARGET_WORDS_BIGENDIAN
#define UNAME_MACHINE "ppc64" #define UNAME_MACHINE "ppc64"
#else #else

View File

@ -1558,7 +1558,7 @@ struct target_stat64 {
struct target_stat { struct target_stat {
abi_ulong st_dev; abi_ulong st_dev;
abi_ulong st_ino; abi_ulong st_ino;
#if defined(TARGET_PPC64) && !defined(TARGET_ABI32) #if defined(TARGET_PPC64)
abi_ulong st_nlink; abi_ulong st_nlink;
unsigned int st_mode; unsigned int st_mode;
#else #else
@ -1579,12 +1579,12 @@ struct target_stat {
abi_ulong target_st_ctime_nsec; abi_ulong target_st_ctime_nsec;
abi_ulong __unused4; abi_ulong __unused4;
abi_ulong __unused5; abi_ulong __unused5;
#if defined(TARGET_PPC64) && !defined(TARGET_ABI32) #if defined(TARGET_PPC64)
abi_ulong __unused6; abi_ulong __unused6;
#endif #endif
}; };
#if !defined(TARGET_PPC64) || defined(TARGET_ABI32) #if !defined(TARGET_PPC64)
#define TARGET_HAS_STRUCT_STAT64 #define TARGET_HAS_STRUCT_STAT64
struct QEMU_PACKED target_stat64 { struct QEMU_PACKED target_stat64 {
unsigned long long st_dev; unsigned long long st_dev;

View File

@ -16,7 +16,7 @@ RUN apt update && \
# Specify the cross prefix for this image (see tests/docker/common.rc) # Specify the cross prefix for this image (see tests/docker/common.rc)
ENV QEMU_CONFIGURE_OPTS --cross-prefix=powerpc64le-linux-gnu- ENV QEMU_CONFIGURE_OPTS --cross-prefix=powerpc64le-linux-gnu-
ENV DEF_TARGET_LIST ppc64-softmmu,ppc64-linux-user,ppc64abi32-linux-user ENV DEF_TARGET_LIST ppc64-softmmu,ppc64-linux-user
# Install extra libraries to increase code coverage # Install extra libraries to increase code coverage
RUN apt update && \ RUN apt update && \

View File

@ -167,7 +167,7 @@ for target in $target_list; do
container_image=debian-nios2-cross container_image=debian-nios2-cross
container_cross_cc=nios2-linux-gnu-gcc container_cross_cc=nios2-linux-gnu-gcc
;; ;;
ppc-*|ppc64abi32-*) ppc-*)
container_hosts=x86_64 container_hosts=x86_64
container_image=debian-powerpc-test-cross container_image=debian-powerpc-test-cross
container_cross_cc=powerpc-linux-gnu-gcc-10 container_cross_cc=powerpc-linux-gnu-gcc-10