* [PATCH v3 0/2] tests/docker: tests/tcg/ppc64le: Newer toolchain to build tests for PowerISA v3.1 instructions
@ 2021-04-23 20:57 matheus.ferst
2021-04-23 20:57 ` [PATCH v3 1/2] tests/docker: gcc-10 based images for ppc64{, le} tests matheus.ferst
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: matheus.ferst @ 2021-04-23 20:57 UTC (permalink / raw)
To: qemu-devel
Cc: Matheus Ferst, gustavo.romero, f4bug, qemu-ppc, bruno.larsen,
alex.bennee, david
From: Matheus Ferst <matheus.ferst@eldorado.org.br>
This series adds gcc-10 based images to enable the build of tests with Power10
instructions. Then, to put it to good use, a tests for the byte-reverse
instructions (implemented in 9d69cfa2faa7) is introduced.
v3:
- Fixed field 'needs' of powerpc-test-debian-cross-container in
.gitlab-ci.d/containers.yml
v2:
- Unused images removed from tests/docker/Makefile.include,
tests/docker/dockerfiles, and .gitlab-ci.d/containers.yml
- Nested ppc64-* and ppc64le-* cases in tests/tcg/configure.sh
- Fixed inline assembly usage and unused header removed from
tests/tcg/ppc64le/byte_reverse.c
Matheus Ferst (2):
tests/docker: gcc-10 based images for ppc64{,le} tests
tests/tcg/ppc64le: tests for brh/brw/brd
.gitlab-ci.d/containers.yml | 13 +++---------
tests/docker/Makefile.include | 5 ++---
.../dockerfiles/debian-powerpc-cross.docker | 12 -----------
.../debian-powerpc-test-cross.docker | 17 +++++++++++++++
.../dockerfiles/debian-ppc64-cross.docker | 11 ----------
tests/tcg/configure.sh | 20 +++++++++---------
tests/tcg/ppc64/Makefile.target | 7 +++++++
tests/tcg/ppc64le/Makefile.target | 7 +++++++
tests/tcg/ppc64le/byte_reverse.c | 21 +++++++++++++++++++
9 files changed, 67 insertions(+), 46 deletions(-)
delete mode 100644 tests/docker/dockerfiles/debian-powerpc-cross.docker
create mode 100644 tests/docker/dockerfiles/debian-powerpc-test-cross.docker
delete mode 100644 tests/docker/dockerfiles/debian-ppc64-cross.docker
create mode 100644 tests/tcg/ppc64le/byte_reverse.c
--
2.25.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v3 1/2] tests/docker: gcc-10 based images for ppc64{, le} tests
2021-04-23 20:57 [PATCH v3 0/2] tests/docker: tests/tcg/ppc64le: Newer toolchain to build tests for PowerISA v3.1 instructions matheus.ferst
@ 2021-04-23 20:57 ` matheus.ferst
2021-04-23 20:57 ` [PATCH v3 2/2] tests/tcg/ppc64le: tests for brh/brw/brd matheus.ferst
2021-04-26 10:01 ` [PATCH v3 0/2] tests/docker: tests/tcg/ppc64le: Newer toolchain to build tests for PowerISA v3.1 instructions Alex Bennée
2 siblings, 0 replies; 4+ messages in thread
From: matheus.ferst @ 2021-04-23 20:57 UTC (permalink / raw)
To: qemu-devel
Cc: Matheus Ferst, gustavo.romero, f4bug, qemu-ppc, bruno.larsen,
alex.bennee, david
From: Matheus Ferst <matheus.ferst@eldorado.org.br>
A newer compiler is needed to build tests for Power10 instructions. As
done for arm64 on c729a99d2701, a new '-test-cross' image is created for
ppc64 and ppc64le. As done on 936fda4d771f, a test for compiler support
is added to verify that the toolchain in use has '-mpower10'. Finally,
Unused images (docker-power-cross and docker-ppc64-cross) are removed.
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br>
---
.gitlab-ci.d/containers.yml | 13 +++---------
tests/docker/Makefile.include | 5 ++---
.../dockerfiles/debian-powerpc-cross.docker | 12 -----------
.../debian-powerpc-test-cross.docker | 17 ++++++++++++++++
.../dockerfiles/debian-ppc64-cross.docker | 11 ----------
tests/tcg/configure.sh | 20 +++++++++----------
6 files changed, 32 insertions(+), 46 deletions(-)
delete mode 100644 tests/docker/dockerfiles/debian-powerpc-cross.docker
create mode 100644 tests/docker/dockerfiles/debian-powerpc-test-cross.docker
delete mode 100644 tests/docker/dockerfiles/debian-ppc64-cross.docker
diff --git a/.gitlab-ci.d/containers.yml b/.gitlab-ci.d/containers.yml
index 33e4046e23..325191627d 100644
--- a/.gitlab-ci.d/containers.yml
+++ b/.gitlab-ci.d/containers.yml
@@ -144,19 +144,12 @@ mipsel-debian-cross-container:
variables:
NAME: debian-mipsel-cross
-powerpc-debian-cross-container:
+powerpc-test-debian-cross-container:
<<: *container_job_definition
stage: containers-layer2
- needs: ['amd64-debian10-container']
- variables:
- NAME: debian-powerpc-cross
-
-ppc64-debian-cross-container:
- <<: *container_job_definition
- stage: containers-layer2
- needs: ['amd64-debian10-container']
+ needs: ['amd64-debian11-container']
variables:
- NAME: debian-ppc64-cross
+ NAME: debian-powerpc-test-cross
ppc64el-debian-cross-container:
<<: *container_job_definition
diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index 9f464cb92c..3b692d67d7 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -140,8 +140,6 @@ docker-image-debian-mips-cross: docker-image-debian10
docker-image-debian-mips64-cross: docker-image-debian10
docker-image-debian-mips64el-cross: docker-image-debian10
docker-image-debian-mipsel-cross: docker-image-debian10
-docker-image-debian-powerpc-cross: docker-image-debian10
-docker-image-debian-ppc64-cross: docker-image-debian10
docker-image-debian-ppc64el-cross: docker-image-debian10
docker-image-debian-riscv64-cross: docker-image-debian10
docker-image-debian-s390x-cross: docker-image-debian10
@@ -152,13 +150,14 @@ docker-image-debian-sparc64-cross: docker-image-debian10
docker-image-debian-tricore-cross: docker-image-debian10
docker-image-debian-all-test-cross: docker-image-debian10
docker-image-debian-arm64-test-cross: docker-image-debian11
+docker-image-debian-powerpc-test-cross: docker-image-debian11
# These images may be good enough for building tests but not for test builds
DOCKER_PARTIAL_IMAGES += debian-alpha-cross
DOCKER_PARTIAL_IMAGES += debian-arm64-test-cross
+DOCKER_PARTIAL_IMAGES += debian-powerpc-test-cross
DOCKER_PARTIAL_IMAGES += debian-hppa-cross
DOCKER_PARTIAL_IMAGES += debian-m68k-cross debian-mips64-cross
-DOCKER_PARTIAL_IMAGES += debian-powerpc-cross debian-ppc64-cross
DOCKER_PARTIAL_IMAGES += debian-riscv64-cross
DOCKER_PARTIAL_IMAGES += debian-sh4-cross debian-sparc64-cross
DOCKER_PARTIAL_IMAGES += debian-tricore-cross
diff --git a/tests/docker/dockerfiles/debian-powerpc-cross.docker b/tests/docker/dockerfiles/debian-powerpc-cross.docker
deleted file mode 100644
index 07e1789650..0000000000
--- a/tests/docker/dockerfiles/debian-powerpc-cross.docker
+++ /dev/null
@@ -1,12 +0,0 @@
-#
-# Docker powerpc cross-compiler target
-#
-# This docker target builds on the debian Buster base image.
-#
-FROM qemu/debian10
-
-RUN apt update && \
- DEBIAN_FRONTEND=noninteractive eatmydata \
- apt install -y --no-install-recommends \
- gcc-powerpc-linux-gnu \
- libc6-dev-powerpc-cross
diff --git a/tests/docker/dockerfiles/debian-powerpc-test-cross.docker b/tests/docker/dockerfiles/debian-powerpc-test-cross.docker
new file mode 100644
index 0000000000..36b336f709
--- /dev/null
+++ b/tests/docker/dockerfiles/debian-powerpc-test-cross.docker
@@ -0,0 +1,17 @@
+#
+# Docker powerpc/ppc64/ppc64le cross-compiler target
+#
+# This docker target builds on the debian Bullseye base image.
+#
+FROM qemu/debian11
+
+RUN apt update && \
+ DEBIAN_FRONTEND=noninteractive eatmydata \
+ apt install -y --no-install-recommends \
+ gcc-powerpc-linux-gnu \
+ libc6-dev-powerpc-cross \
+ gcc-10-powerpc64-linux-gnu \
+ libc6-dev-ppc64-cross \
+ gcc-10-powerpc64le-linux-gnu \
+ libc6-dev-ppc64el-cross
+
diff --git a/tests/docker/dockerfiles/debian-ppc64-cross.docker b/tests/docker/dockerfiles/debian-ppc64-cross.docker
deleted file mode 100644
index 8efe68874e..0000000000
--- a/tests/docker/dockerfiles/debian-ppc64-cross.docker
+++ /dev/null
@@ -1,11 +0,0 @@
-#
-# Docker ppc64 cross-compiler target
-#
-# This docker target builds on the debian Buster base image.
-FROM qemu/debian10
-
-RUN apt update && \
- DEBIAN_FRONTEND=noninteractive eatmydata \
- apt install -y --no-install-recommends \
- gcc-powerpc64-linux-gnu \
- libc6-dev-ppc64-cross
diff --git a/tests/tcg/configure.sh b/tests/tcg/configure.sh
index fa1a4261a4..c859b618de 100755
--- a/tests/tcg/configure.sh
+++ b/tests/tcg/configure.sh
@@ -165,18 +165,14 @@ for target in $target_list; do
;;
ppc-*|ppc64abi32-*)
container_hosts=x86_64
- container_image=debian-powerpc-cross
- container_cross_cc=powerpc-linux-gnu-gcc
+ container_image=debian-powerpc-test-cross
+ container_cross_cc=powerpc-linux-gnu-gcc-10
;;
- ppc64-*)
+ ppc64-*|ppc64le-*)
container_hosts=x86_64
- container_image=debian-ppc64-cross
- container_cross_cc=powerpc64-linux-gnu-gcc
- ;;
- ppc64le-*)
- container_hosts=x86_64
- container_image=debian-ppc64el-cross
- container_cross_cc=powerpc64le-linux-gnu-gcc
+ container_image=debian-powerpc-test-cross
+ container_cross_cc=${target%%-*}-linux-gnu-gcc-10
+ container_cross_cc=powerpc${container_cross_cc#ppc}
;;
riscv64-*)
container_hosts=x86_64
@@ -280,6 +276,10 @@ for target in $target_list; do
-mpower8-vector -o $TMPE $TMPC; then
echo "CROSS_CC_HAS_POWER8_VECTOR=y" >> $config_target_mak
fi
+ if do_compiler "$target_compiler" $target_compiler_cflags \
+ -mpower10 -o $TMPE $TMPC; then
+ echo "CROSS_CC_HAS_POWER10=y" >> $config_target_mak
+ fi
;;
i386-linux-user)
if do_compiler "$target_compiler" $target_compiler_cflags \
--
2.25.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* [PATCH v3 2/2] tests/tcg/ppc64le: tests for brh/brw/brd
2021-04-23 20:57 [PATCH v3 0/2] tests/docker: tests/tcg/ppc64le: Newer toolchain to build tests for PowerISA v3.1 instructions matheus.ferst
2021-04-23 20:57 ` [PATCH v3 1/2] tests/docker: gcc-10 based images for ppc64{, le} tests matheus.ferst
@ 2021-04-23 20:57 ` matheus.ferst
2021-04-26 10:01 ` [PATCH v3 0/2] tests/docker: tests/tcg/ppc64le: Newer toolchain to build tests for PowerISA v3.1 instructions Alex Bennée
2 siblings, 0 replies; 4+ messages in thread
From: matheus.ferst @ 2021-04-23 20:57 UTC (permalink / raw)
To: qemu-devel
Cc: Fabiano Rosas, Matheus Ferst, gustavo.romero, f4bug, qemu-ppc,
bruno.larsen, alex.bennee, david
From: Matheus Ferst <matheus.ferst@eldorado.org.br>
Tests for Byte-Reverse Halfword, Word and Doubleword
Signed-off-by: Matheus Ferst <matheus.ferst@eldorado.org.br>
Tested-by: Fabiano Rosas <farosas@linux.ibm.com>
---
tests/tcg/ppc64/Makefile.target | 7 +++++++
tests/tcg/ppc64le/Makefile.target | 7 +++++++
tests/tcg/ppc64le/byte_reverse.c | 21 +++++++++++++++++++++
3 files changed, 35 insertions(+)
create mode 100644 tests/tcg/ppc64le/byte_reverse.c
diff --git a/tests/tcg/ppc64/Makefile.target b/tests/tcg/ppc64/Makefile.target
index 0c6a4585fc..55c690c8ad 100644
--- a/tests/tcg/ppc64/Makefile.target
+++ b/tests/tcg/ppc64/Makefile.target
@@ -10,4 +10,11 @@ PPC64_TESTS=bcdsub
endif
bcdsub: CFLAGS += -mpower8-vector
+ifneq ($(DOCKER_IMAGE)$(CROSS_CC_HAS_POWER10),)
+POWER10_TESTS=byte_reverse
+RUN_POWER10_TESTS=$(patsubst %, run-%, $(POWER10_TESTS))
+$(RUN_POWER10_TESTS): QEMU_OPTS+=-cpu POWER10
+PPC64_TESTS += $(POWER10_TESTS)
+endif
+
TESTS += $(PPC64_TESTS)
diff --git a/tests/tcg/ppc64le/Makefile.target b/tests/tcg/ppc64le/Makefile.target
index 1acfcff94a..517d290b1a 100644
--- a/tests/tcg/ppc64le/Makefile.target
+++ b/tests/tcg/ppc64le/Makefile.target
@@ -9,4 +9,11 @@ PPC64LE_TESTS=bcdsub
endif
bcdsub: CFLAGS += -mpower8-vector
+ifneq ($(DOCKER_IMAGE)$(CROSS_CC_HAS_POWER10),)
+POWER10_TESTS=byte_reverse
+RUN_POWER10_TESTS=$(patsubst %, run-%, $(POWER10_TESTS))
+$(RUN_POWER10_TESTS): QEMU_OPTS+=-cpu POWER10
+PPC64LE_TESTS += $(POWER10_TESTS)
+endif
+
TESTS += $(PPC64LE_TESTS)
diff --git a/tests/tcg/ppc64le/byte_reverse.c b/tests/tcg/ppc64le/byte_reverse.c
new file mode 100644
index 0000000000..53b76fc2e2
--- /dev/null
+++ b/tests/tcg/ppc64le/byte_reverse.c
@@ -0,0 +1,21 @@
+#include <assert.h>
+
+int main(void)
+{
+ unsigned long var;
+
+ var = 0xFEDCBA9876543210;
+ asm("brh %0, %0" : "+r"(var));
+ assert(var == 0xDCFE98BA54761032);
+
+ var = 0xFEDCBA9876543210;
+ asm("brw %0, %0" : "+r"(var));
+ assert(var == 0x98BADCFE10325476);
+
+ var = 0xFEDCBA9876543210;
+ asm("brd %0, %0" : "+r"(var));
+ assert(var == 0x1032547698BADCFE);
+
+ return 0;
+}
+
--
2.25.1
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH v3 0/2] tests/docker: tests/tcg/ppc64le: Newer toolchain to build tests for PowerISA v3.1 instructions
2021-04-23 20:57 [PATCH v3 0/2] tests/docker: tests/tcg/ppc64le: Newer toolchain to build tests for PowerISA v3.1 instructions matheus.ferst
2021-04-23 20:57 ` [PATCH v3 1/2] tests/docker: gcc-10 based images for ppc64{, le} tests matheus.ferst
2021-04-23 20:57 ` [PATCH v3 2/2] tests/tcg/ppc64le: tests for brh/brw/brd matheus.ferst
@ 2021-04-26 10:01 ` Alex Bennée
2 siblings, 0 replies; 4+ messages in thread
From: Alex Bennée @ 2021-04-26 10:01 UTC (permalink / raw)
To: matheus.ferst
Cc: gustavo.romero, f4bug, qemu-devel, qemu-ppc, bruno.larsen, david
matheus.ferst@eldorado.org.br writes:
> From: Matheus Ferst <matheus.ferst@eldorado.org.br>
>
> This series adds gcc-10 based images to enable the build of tests with Power10
> instructions. Then, to put it to good use, a tests for the byte-reverse
> instructions (implemented in 9d69cfa2faa7) is introduced.
>
> v3:
> - Fixed field 'needs' of powerpc-test-debian-cross-container in
> .gitlab-ci.d/containers.yml
>
> v2:
> - Unused images removed from tests/docker/Makefile.include,
> tests/docker/dockerfiles, and .gitlab-ci.d/containers.yml
> - Nested ppc64-* and ppc64le-* cases in tests/tcg/configure.sh
> - Fixed inline assembly usage and unused header removed from
> tests/tcg/ppc64le/byte_reverse.c
>
> Matheus Ferst (2):
> tests/docker: gcc-10 based images for ppc64{,le} tests
> tests/tcg/ppc64le: tests for brh/brw/brd
>
> .gitlab-ci.d/containers.yml | 13 +++---------
> tests/docker/Makefile.include | 5 ++---
> .../dockerfiles/debian-powerpc-cross.docker | 12 -----------
> .../debian-powerpc-test-cross.docker | 17 +++++++++++++++
> .../dockerfiles/debian-ppc64-cross.docker | 11 ----------
> tests/tcg/configure.sh | 20 +++++++++---------
> tests/tcg/ppc64/Makefile.target | 7 +++++++
> tests/tcg/ppc64le/Makefile.target | 7 +++++++
> tests/tcg/ppc64le/byte_reverse.c | 21 +++++++++++++++++++
> 9 files changed, 67 insertions(+), 46 deletions(-)
> delete mode 100644 tests/docker/dockerfiles/debian-powerpc-cross.docker
> create mode 100644 tests/docker/dockerfiles/debian-powerpc-test-cross.docker
> delete mode 100644 tests/docker/dockerfiles/debian-ppc64-cross.docker
> create mode 100644 tests/tcg/ppc64le/byte_reverse.c
Queued to testing/next, thanks.
It should be noted the GitLab CI run still skips these tests due to use
of debian-all-test-cross which is still debian10 based. As long as the
maintainer and interested developers still run tests locally this
shouldn't be a major hole in coverage.
Once bullseye goes gold we will be updating all our test images in due
course anyway.
--
Alex Bennée
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2021-04-26 10:07 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-23 20:57 [PATCH v3 0/2] tests/docker: tests/tcg/ppc64le: Newer toolchain to build tests for PowerISA v3.1 instructions matheus.ferst
2021-04-23 20:57 ` [PATCH v3 1/2] tests/docker: gcc-10 based images for ppc64{, le} tests matheus.ferst
2021-04-23 20:57 ` [PATCH v3 2/2] tests/tcg/ppc64le: tests for brh/brw/brd matheus.ferst
2021-04-26 10:01 ` [PATCH v3 0/2] tests/docker: tests/tcg/ppc64le: Newer toolchain to build tests for PowerISA v3.1 instructions Alex Bennée
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.