* [PATCH] tests/docker: Fix microblaze atomics
@ 2024-09-19 15:23 Ilya Leoshkevich
2024-09-24 11:54 ` Alex Bennée
0 siblings, 1 reply; 4+ messages in thread
From: Ilya Leoshkevich @ 2024-09-19 15:23 UTC (permalink / raw)
To: Edgar E. Iglesias, Alex Bennée, Philippe Mathieu-Daudé,
Thomas Huth
Cc: Wainer dos Santos Moschetta, qemu-devel, Ilya Leoshkevich,
Peter Maydell
GCC produces invalid code for microblaze atomics.
The fix is unfortunately not upstream, so fetch it from an external
location and apply it locally.
Suggested-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
---
.../debian-microblaze-cross.d/build-toolchain.sh | 8 ++++++++
tests/docker/dockerfiles/debian-toolchain.docker | 7 +++++++
2 files changed, 15 insertions(+)
diff --git a/tests/docker/dockerfiles/debian-microblaze-cross.d/build-toolchain.sh b/tests/docker/dockerfiles/debian-microblaze-cross.d/build-toolchain.sh
index 23ec0aa9a72..c5cd0aa931c 100755
--- a/tests/docker/dockerfiles/debian-microblaze-cross.d/build-toolchain.sh
+++ b/tests/docker/dockerfiles/debian-microblaze-cross.d/build-toolchain.sh
@@ -10,6 +10,8 @@ TOOLCHAIN_INSTALL=/usr/local
TOOLCHAIN_BIN=${TOOLCHAIN_INSTALL}/bin
CROSS_SYSROOT=${TOOLCHAIN_INSTALL}/$TARGET/sys-root
+GCC_PATCH0_URL=https://raw.githubusercontent.com/Xilinx/meta-xilinx/refs/tags/xlnx-rel-v2024.1/meta-microblaze/recipes-devtools/gcc/gcc-12/0009-Patch-microblaze-Fix-atomic-boolean-return-value.patch
+
export PATH=${TOOLCHAIN_BIN}:$PATH
#
@@ -31,6 +33,12 @@ mv gcc-11.2.0 src-gcc
mv musl-1.2.2 src-musl
mv linux-5.10.70 src-linux
+#
+# Patch gcc
+#
+
+wget -O - ${GCC_PATCH0_URL} | patch -d src-gcc -p1
+
mkdir -p bld-hdr bld-binu bld-gcc bld-musl
mkdir -p ${CROSS_SYSROOT}/usr/include
diff --git a/tests/docker/dockerfiles/debian-toolchain.docker b/tests/docker/dockerfiles/debian-toolchain.docker
index 687a97fec4a..ab4ce29533d 100644
--- a/tests/docker/dockerfiles/debian-toolchain.docker
+++ b/tests/docker/dockerfiles/debian-toolchain.docker
@@ -10,6 +10,8 @@ FROM docker.io/library/debian:11-slim
# ??? The build-dep isn't working, missing a number of
# minimal build dependiencies, e.g. libmpc.
+RUN sed 's/^deb /deb-src /' </etc/apt/sources.list >/etc/apt/sources.list.d/deb-src.list
+
RUN apt update && \
DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
DEBIAN_FRONTEND=noninteractive eatmydata \
@@ -33,6 +35,11 @@ RUN cd /root && ./build-toolchain.sh
# and the build trees by restoring the original image,
# then copying the built toolchain from stage 0.
FROM docker.io/library/debian:11-slim
+RUN apt update && \
+ DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
+ DEBIAN_FRONTEND=noninteractive eatmydata \
+ apt install -y --no-install-recommends \
+ libmpc3
COPY --from=0 /usr/local /usr/local
# As a final step configure the user (if env is defined)
ARG USER
--
2.46.0
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH] tests/docker: Fix microblaze atomics
2024-09-19 15:23 [PATCH] tests/docker: Fix microblaze atomics Ilya Leoshkevich
@ 2024-09-24 11:54 ` Alex Bennée
2024-09-24 12:22 ` Ilya Leoshkevich
0 siblings, 1 reply; 4+ messages in thread
From: Alex Bennée @ 2024-09-24 11:54 UTC (permalink / raw)
To: Ilya Leoshkevich
Cc: Edgar E. Iglesias, Philippe Mathieu-Daudé, Thomas Huth,
Wainer dos Santos Moschetta, qemu-devel, Peter Maydell,
Mahesh Bodapati
Ilya Leoshkevich <iii@linux.ibm.com> writes:
(add Mahesh to CC)
> GCC produces invalid code for microblaze atomics.
>
> The fix is unfortunately not upstream, so fetch it from an external
> location and apply it locally.
Queued to testing/next, thanks.
However I didn't see any tests failing so I'm curious where you saw the
problem? Would it be worth adding an atomics test (microblaze or
generic) to catch this?
Also for the Microblaze guys is there any push to upstream the patches
you have into GCC or have an easily distributively binary build we could
convert our dockerfiles to?
>
> Suggested-by: Peter Maydell <peter.maydell@linaro.org>
> Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
> ---
> .../debian-microblaze-cross.d/build-toolchain.sh | 8 ++++++++
> tests/docker/dockerfiles/debian-toolchain.docker | 7 +++++++
> 2 files changed, 15 insertions(+)
>
> diff --git a/tests/docker/dockerfiles/debian-microblaze-cross.d/build-toolchain.sh b/tests/docker/dockerfiles/debian-microblaze-cross.d/build-toolchain.sh
> index 23ec0aa9a72..c5cd0aa931c 100755
> --- a/tests/docker/dockerfiles/debian-microblaze-cross.d/build-toolchain.sh
> +++ b/tests/docker/dockerfiles/debian-microblaze-cross.d/build-toolchain.sh
> @@ -10,6 +10,8 @@ TOOLCHAIN_INSTALL=/usr/local
> TOOLCHAIN_BIN=${TOOLCHAIN_INSTALL}/bin
> CROSS_SYSROOT=${TOOLCHAIN_INSTALL}/$TARGET/sys-root
>
> +GCC_PATCH0_URL=https://raw.githubusercontent.com/Xilinx/meta-xilinx/refs/tags/xlnx-rel-v2024.1/meta-microblaze/recipes-devtools/gcc/gcc-12/0009-Patch-microblaze-Fix-atomic-boolean-return-value.patch
> +
> export PATH=${TOOLCHAIN_BIN}:$PATH
>
> #
> @@ -31,6 +33,12 @@ mv gcc-11.2.0 src-gcc
> mv musl-1.2.2 src-musl
> mv linux-5.10.70 src-linux
>
> +#
> +# Patch gcc
> +#
> +
> +wget -O - ${GCC_PATCH0_URL} | patch -d src-gcc -p1
> +
> mkdir -p bld-hdr bld-binu bld-gcc bld-musl
> mkdir -p ${CROSS_SYSROOT}/usr/include
>
> diff --git a/tests/docker/dockerfiles/debian-toolchain.docker b/tests/docker/dockerfiles/debian-toolchain.docker
> index 687a97fec4a..ab4ce29533d 100644
> --- a/tests/docker/dockerfiles/debian-toolchain.docker
> +++ b/tests/docker/dockerfiles/debian-toolchain.docker
> @@ -10,6 +10,8 @@ FROM docker.io/library/debian:11-slim
> # ??? The build-dep isn't working, missing a number of
> # minimal build dependiencies, e.g. libmpc.
>
> +RUN sed 's/^deb /deb-src /' </etc/apt/sources.list >/etc/apt/sources.list.d/deb-src.list
> +
> RUN apt update && \
> DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
> DEBIAN_FRONTEND=noninteractive eatmydata \
> @@ -33,6 +35,11 @@ RUN cd /root && ./build-toolchain.sh
> # and the build trees by restoring the original image,
> # then copying the built toolchain from stage 0.
> FROM docker.io/library/debian:11-slim
> +RUN apt update && \
> + DEBIAN_FRONTEND=noninteractive apt install -yy eatmydata && \
> + DEBIAN_FRONTEND=noninteractive eatmydata \
> + apt install -y --no-install-recommends \
> + libmpc3
> COPY --from=0 /usr/local /usr/local
> # As a final step configure the user (if env is defined)
> ARG USER
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
^ permalink raw reply [flat|nested] 4+ messages in thread* Re: [PATCH] tests/docker: Fix microblaze atomics
2024-09-24 11:54 ` Alex Bennée
@ 2024-09-24 12:22 ` Ilya Leoshkevich
2024-09-24 18:02 ` Alex Bennée
0 siblings, 1 reply; 4+ messages in thread
From: Ilya Leoshkevich @ 2024-09-24 12:22 UTC (permalink / raw)
To: Alex Bennée
Cc: Edgar E. Iglesias, Philippe Mathieu-Daudé, Thomas Huth,
Wainer dos Santos Moschetta, qemu-devel, Peter Maydell,
Mahesh Bodapati
On Tue, 2024-09-24 at 12:54 +0100, Alex Bennée wrote:
> Ilya Leoshkevich <iii@linux.ibm.com> writes:
>
> (add Mahesh to CC)
>
> > GCC produces invalid code for microblaze atomics.
> >
> > The fix is unfortunately not upstream, so fetch it from an external
> > location and apply it locally.
>
> Queued to testing/next, thanks.
>
> However I didn't see any tests failing so I'm curious where you saw
> the
> problem? Would it be worth adding an atomics test (microblaze or
> generic) to catch this?
It's very reliably caught by the new test that I'm proposing as a part
of this series:
https://lore.kernel.org/qemu-devel/20240923162208.90745-19-iii@linux.ibm.com/T/#u
>
> Also for the Microblaze guys is there any push to upstream the
> patches
> you have into GCC or have an easily distributively binary build we
> could
> convert our dockerfiles to?
>
> >
> > Suggested-by: Peter Maydell <peter.maydell@linaro.org>
> > Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com>
> > ---
> > .../debian-microblaze-cross.d/build-toolchain.sh | 8
> > ++++++++
> > tests/docker/dockerfiles/debian-toolchain.docker | 7
> > +++++++
> > 2 files changed, 15 insertions(+)
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] tests/docker: Fix microblaze atomics
2024-09-24 12:22 ` Ilya Leoshkevich
@ 2024-09-24 18:02 ` Alex Bennée
0 siblings, 0 replies; 4+ messages in thread
From: Alex Bennée @ 2024-09-24 18:02 UTC (permalink / raw)
To: Ilya Leoshkevich
Cc: Edgar E. Iglesias, Philippe Mathieu-Daudé, Thomas Huth,
Wainer dos Santos Moschetta, qemu-devel, Peter Maydell,
Mahesh Bodapati
Ilya Leoshkevich <iii@linux.ibm.com> writes:
> On Tue, 2024-09-24 at 12:54 +0100, Alex Bennée wrote:
>> Ilya Leoshkevich <iii@linux.ibm.com> writes:
>>
>> (add Mahesh to CC)
>>
>> > GCC produces invalid code for microblaze atomics.
>> >
>> > The fix is unfortunately not upstream, so fetch it from an external
>> > location and apply it locally.
>>
>> Queued to testing/next, thanks.
>>
>> However I didn't see any tests failing so I'm curious where you saw
>> the
>> problem? Would it be worth adding an atomics test (microblaze or
>> generic) to catch this?
>
> It's very reliably caught by the new test that I'm proposing as a part
> of this series:
>
> https://lore.kernel.org/qemu-devel/20240923162208.90745-19-iii@linux.ibm.com/T/#u
Awesome. I saw you had posted a big gdbstub series. I shall try and get
to it once I've finished travelling.
--
Alex Bennée
Virtualisation Tech Lead @ Linaro
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-09-24 18:03 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-19 15:23 [PATCH] tests/docker: Fix microblaze atomics Ilya Leoshkevich
2024-09-24 11:54 ` Alex Bennée
2024-09-24 12:22 ` Ilya Leoshkevich
2024-09-24 18:02 ` 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).