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