Commit Graph

11 Commits

Author SHA1 Message Date
Callum Farmer
9fb0825a6b
Output ELF data file on Linux CI/CD
* Useful for checking moved/new ELF sections

Signed-off-by: Callum Farmer <gmbr3@opensuse.org>
2024-07-04 15:44:00 +01:00
Callum Farmer
771b632092
Add Linux musl-libc toolchain
* Use gcc as compiler and bfd as linker
* Use musl toolchain prefixes
* musl doesn't have any Ubuntu cross toolchains
  so x86_64 only

Signed-off-by: Callum Farmer <gmbr3@opensuse.org>
2024-07-04 15:43:42 +01:00
Callum Farmer
16c9eedafb
Add Linux LLVM toolchain
* Use clang as compiler and LLD as linker

Signed-off-by: Callum Farmer <gmbr3@opensuse.org>
2024-07-04 15:29:04 +01:00
Pete Batard
b50b0a0a2c
Add RISCV64 testing support
Requires a recent QEMU (for the pflash0 options) and therefore Ubuntu 24.04.

Signed-off-by: Pete Batard <pete@akeo.ie>
2024-05-21 11:46:42 +01:00
Pete Batard
46aca420cc
Add build time QEMU UEFI tests
Use OVMF/AVMF and the UEFI Shell in a QEMU environment to validate that the
UEFI executables we build do run and produce the expected output.

The tests to run are flexibly defined is test_list.txt and can be expanded.

At this stage, only x64, ia32, aa64 and arm are run, which rely on the UEFI
firmwares found at https://github.com/pbatard/EfiFs/tree/gh-pages/AAVMF and
https://github.com/pbatard/EfiFs/tree/gh-pages/OVMF as well as Shell builds
from https://github.com/pbatard/UEFI-Shell.

Signed-off-by: Pete Batard <pete@akeo.ie>
2024-05-18 16:12:11 +01:00
Pete Batard
da5fe74408
Create GitHub Actions artifacts
This makes the apps/*.efi files available for download and testing after each build.
Also clean up the GitHub Actions workflows a little bit.

Signed-off-by: Pete Batard <pete@akeo.ie>
2024-05-18 16:11:25 +01:00
Pete Batard
625bdb6368
Actually make the apps build with MinGW
To builds the apps with MinGW, the CRT0 library must be ignored because
it is ELF specific and we don't need to go through ELF relocations.
We also apply the GNU_EFI_USE_MS_ABI (since we have it), remove the -z
flags, that are invalid in MinGW, and clean up the apps Makefile.

Note that setjump and debughook are excluded from MinGW builds as they
use constructs that are not available there.

Signed-off-by: Pete Batard <pete@akeo.ie>
2024-05-16 17:50:10 +01:00
Pete Batard
08f9ea33dc
Add MinGW workflow builds for Linux and Windows
Signed-off-by: Pete Batard <pete@akeo.ie>
2024-05-09 12:59:13 +01:00
Pete Batard
36d3313805
Clean up Linux/gcc and Windows/VS2022 workflow files
Signed-off-by: Pete Batard <pete@akeo.ie>
2024-05-09 12:55:44 +01:00
Pete Batard
91cb708816 Fix ‘asm’ undeclared error for MIPS builds
As explained at https://stackoverflow.com/a/49830956/1069307, 'asm' is a GNU
extension that will produce an error when using a non GNU standard like -std=c11.
With recent commit 9b1e06cd0c having fixed our use
of -std=c11, the MIPS build failed with the error above.

With this sorted, we also re-enable the MIPS gcc build in GitHub Actions.
2024-05-08 13:54:10 +01:00
Pete Batard
c30d23da8f Add GitHub Actions builds 2024-05-08 13:00:08 +01:00