Skip to content

build demos on riscv64, loongarch64, ppc64le and ppc64 - #974

Open
Nemo-010 wants to merge 1 commit into
pkgforge-dev:mainfrom
Nemo-010:demos-matrix
Open

Nemo-010 wants to merge 1 commit into
pkgforge-dev:mainfrom
Nemo-010:demos-matrix

Conversation

@Nemo-010

Copy link
Copy Markdown
Contributor

Greetings from Port Edwards. This is #969 reborn from a branch of its own so that main in the fork can be reset to match upstream. #973 (sharun 3.7.1 + cross-libc-dlopen v0.2.8) has merged, so this is now a single clean commit on current main.

What it does

A build-additional-cpu-arches matrix builds the gtk3, gtk4, sdl and vkcube+glxgears demos for riscv64, loongarch64, ppc64le and ppc64 through qemu user emulation, and runs them. The binfmt handlers are registered before the container starts, with the script of anylinux-setup-action, because docker/setup-qemu-action ships no ppc64 (BE) handler. The release job waits for that matrix with the same !cancelled() guard as the template, so a disabled matrix does not block a release.

ppc64le, loongarch64 and riscv64 do have vulkan drivers in their repos, we just do not bundle them, so vkcube works there; only BE ppc64 predates vulkan and makes glxgears its main binary. vulkan-swrast is installed for the test on every arch — it is packaged for powerpc64 too.

The sdl demo keeps plain sdl2, which sdl2-compat provides on riscv64 and loongarch64.

History worth keeping

The ppc64le gtk3 demo segfaulted through every earlier revision of this PR. I reported it as pkgforge-dev/cross-libc-dlopen#59 after bisecting it to the gl-fwd.so preload; the cause was glfwd_resolve_asm saving the argument registers inside the ABI's own frame header, so the resolver overwrote the saved r5 and r6 on the first call through every slot. That was fixed in pkgforge-dev/cross-libc-dlopen#60 and shipped in v0.2.8, which #973 brought in. So this PR should now be green on all 16 emulated jobs rather than 15.

An earlier revision also needed --overwrite when installing vulkan-swrast, because the debloated mesa shipped mesa's layer files that upstream puts in vulkan-mesa-implicit-layers. That was fixed in pkgforge-dev/archlinux-pkgs-debloated#95 and the rebuilt packages no longer carry them, so the workaround is gone.


We aim to provide the software that shapes the world of tomorrow.


Requested by Samueru via errand.
Conversation: https://discord.com/channels/1313385177703256064/1561764843965649021

A build-additional-cpu-arches matrix builds the gtk3, gtk4, sdl and
vkcube+glxgears demos for the four newer arches through qemu user emulation,
and runs them. The binfmt handlers are registered before the container
starts, with the script of anylinux-setup-action, because
docker/setup-qemu-action ships no ppc64 (BE) handler. The release job waits
for that matrix with the same !cancelled() guard as the template, so a
disabled matrix does not block a release.

ppc64le, loongarch64 and riscv64 do have vulkan drivers in their repos, we
just do not bundle them, so vkcube works there and only BE ppc64 makes
glxgears its main binary. vulkan-swrast is installed for the test on every
arch, it is packaged for powerpc64 too.

The sdl demo keeps plain sdl2, which sdl2-compat provides on riscv64 and
loongarch64.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant