Skip to content

Conversation

andreabolognani
Copy link

@andreabolognani andreabolognani commented Sep 26, 2025

This is part of an attempt to bring riscv64 support into shim.

See #420 and #641 for previous discussion, as well as #777 which is a prerequisite of this PR.

Using this branch I was able to successfully build shim on both x86_64 and riscv64, and I was able to use the resulting binaries to boot Fedora 42 cloud images for both architectures, replacing the stock ones.

andreabolognani and others added 14 commits September 26, 2025 17:20
Replace the shim-specific fork with the upstream version,
specifically the most recent release. Some adjustment to
shim's code are necessary to adapt to this change.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
shim is a standalone EFI application so it shouldn't be
necessary to look at the glibc headers when building it, and
in fact attempting to do so results in a build failure.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
We could theoretically set GNU_EFI_USE_REALLOCATEPOOL_ABI=0
to keep using the legacy ABI, but since gnu-efi uses the
modern ABI internally and we call into its build systemd
directly, doing that messes things up. Switching to the new
ABI is just a matter of changing the order of arguments.

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Signed-off-by: Jason Montleon <jason@montleon.com>
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Signed-off-by: Callum Farmer <gmbr3@opensuse.org>
Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Upstream gnu-efi doesn't implement the AsciiSPrint()
function. Drop its only user.

This reverts commit 77a2922

Signed-off-by: Andrea Bolognani <abologna@redhat.com>
Add what is needed to build on riscv64.

Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>

This is an update to rhboot#420 which brings it in alignment with the current
upstream.

Signed-off-by: Brian 'redbeard' Harrington <redbeard@dead-city.org>
(cherry picked from commit 5031a99)
@davidlt and @xypron pointed out prior changed to binutils 2.42 which
added support for RISC-V EFI objects.  This reflects the upstream
preference to avoid adding additional architectures which are emitting
flat binary files via `objcopy` (i.e. `-O binary` architectures).

(cherry picked from commit 9f9813b)
Signed-off-by: Jason Montleon <jmontleo@redhat.com>
Signed-off-by: Jason Montleon <jason@montleon.com>
@andreabolognani
Copy link
Author

Tagging @xypron, @brianredbeard and @jmontleon since some of the changes come from them.

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.

5 participants