On 5/30/24 8:09 PM, Hans-Peter Nilsson wrote:
Date: Wed, 29 May 2024 21:23:58 -0600
Cc: gcc-patches@gcc.gnu.org

I don't bother with qemu.exp at all.  I've set up binfmt handlers so
that I can execute foreign binaries.

So given a root filesystem, I can chroot into it and do whatever I need.
   As far as dejagnu is concerned it looks like the native system.

Interesting.  In a Docker setup (or similar container)?
I've got docker containers for some of these. m68k, alpha, s390 for example. They're based off debian base images. I don't have anything for sparc and I don't see a base image to build from. If there was a base image, then a Dockerfile like this would get you started:


FROM sparc64/debian:latest

# Basic environment variables so we can apt-get without interactive prompts
ENV LC_ALL C
ENV DEBIAN_FRONTEND noninteractive
ENV TZ=Etc/UTC

RUN apt-get update && apt-get -y install gcc dejagnu binutils default-jre-headless git build-essential autoconf bison flex gawk make texinfo help2man libncurses5-dev python3-dev python3-distutils libtool libtool-bin unzip wget curl rsync texinfo g++ libmpc-dev libgmp-dev libmpfr-dev libgmp-dev python3 libisl-dev rsync vim automake autoconf autotools-dev unzip help2man libtool libtool-bin sudo curl wget pyt
hon3-dev bzip2 xz-utils gdb bc libssl-dev libelf-dev


With the lack of an existing docker image, you can probably use debootstrap to construct an initial chroot, the import that into docker, adding whatever bits you need to do the build (ie, compilers, dejagnu, make, texinfo, blah blah blah) via apt until it works. It's been a while since I've done it, but I'm pretty sure that's how I got things going on the sh4 and sh4eb platforms.


The JRE bits are only needed because these get launched as a docker swarm service and thus need to connect to the Jenkins server using JNLP. Some of the packages are only needed for kernel builds or glibc builds.


Jeff


Reply via email to