* [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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).