From 3af930effab0c68809f19e8282429318dfa879d0 Mon Sep 17 00:00:00 2001 From: Jay Krell Date: Fri, 10 Apr 2026 15:39:40 -0700 Subject: [PATCH] Build-Linux --- .github/workflows/Build-Linux.yml | 49 ++++++++++++++++++++++++++++ .github/workflows/Platform-Build.yml | 2 +- MsvmPkg/MsvmPkgX64.fdf | 8 ++--- 3 files changed, 54 insertions(+), 5 deletions(-) create mode 100644 .github/workflows/Build-Linux.yml diff --git a/.github/workflows/Build-Linux.yml b/.github/workflows/Build-Linux.yml new file mode 100644 index 000000000..2224d62f0 --- /dev/null +++ b/.github/workflows/Build-Linux.yml @@ -0,0 +1,49 @@ +name: Build UEFI Firmware on Linux +on: + push: + branches: + - main + pull_request: + branches: + - '*' +env: + GCC_AARCH64_PREFIX: /usr/bin/aarch64-linux-gnu- + GCC_X64_PREFIX : /usr/bin/x86_64-linux-gnu- +jobs: + build: + runs-on: ubuntu-latest + strategy: + matrix: + target: [DEBUG, RELEASE] + arch: [X64, AARCH64] + #tools: [GCC, CLANGPDB] + tools: [CLANGPDB] + steps: + # Checkout the repository + - name: Checkout repository + uses: actions/checkout@v4 + + - name: py_ver + run: python3 --version + - name: py_install_pip + run: python3 -m pip install --upgrade pip + - name: pip_install + run: pip install -r pip_requirement_stable.txt + - name: apt_update + run: sudo apt-get update -y + - name: apt_install + run: sudo apt-get install -y acpica-tools mono-complete clang lld llvm binutils-x86-64-linux-gnu gcc-x86-64-linux-gnu binutils-aarch64-linux-gnu gcc-aarch64-linux-gnu + - name: stuart_setup + run: stuart_setup -c MsvmPkg/PlatformBuild.py --verbose TOOL_CHAIN_TAG=${{matrix.tools}} + - name: stuart_update + run: stuart_update -c MsvmPkg/PlatformBuild.py --verbose TOOL_CHAIN_TAG=${{matrix.tools}} + - name: stuart_build + run: stuart_build -c MsvmPkg/PlatformBuild.py --verbose TOOL_CHAIN_TAG=${{matrix.tools}} TARGET=${{matrix.target}} BUILD_ARCH=${{matrix.arch}} + # Upload the MSVM.fd file, MAP/ directories directly as an artifact + - name: Upload Build Artifact + uses: actions/upload-artifact@v4 + with: + name: ${{matrix.target}}-${{matrix.arch}}-${{matrix.tools}}-linux-artifacts + path: | + Build/Msvm${{matrix.arch}}/${{matrix.target}}_${{matrix.tools}}/FV/MSVM.fd + Build/Msvm${{matrix.arch}}/${{matrix.target}}_${{matrix.tools}}/MAP/ diff --git a/.github/workflows/Platform-Build.yml b/.github/workflows/Platform-Build.yml index ced73c80a..6aa615bca 100644 --- a/.github/workflows/Platform-Build.yml +++ b/.github/workflows/Platform-Build.yml @@ -41,7 +41,7 @@ jobs: # Install Python dependencies from pip_requirement_stable.txt - name: Install Python Dependencies run: | - python -m pip install --upgrade pip + python3 -m pip install --upgrade pip pip install -r pip_requirement_stable.txt # Enable long paths in Git configuration (Windows) diff --git a/MsvmPkg/MsvmPkgX64.fdf b/MsvmPkg/MsvmPkgX64.fdf index 713c0d9ca..3d1ba630b 100644 --- a/MsvmPkg/MsvmPkgX64.fdf +++ b/MsvmPkg/MsvmPkgX64.fdf @@ -354,14 +354,14 @@ FILE FREEFORM = PCD(gMsvmPkgTokenSpaceGuid.PcdBootFailIndicatorFile) { # [Rule.Common.SEC] FILE SEC = $(NAMED_GUID) { - PE32 PE32 $(INF_OUTPUT)/$(MODULE_NAME).efi + PE32 PE32 Align=Auto $(INF_OUTPUT)/$(MODULE_NAME).efi UI STRING ="$(MODULE_NAME)" Optional VERSION STRING ="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) } [Rule.Common.PEI_CORE] FILE PEI_CORE = $(NAMED_GUID) { - PE32 PE32 Align=32 $(INF_OUTPUT)/$(MODULE_NAME).efi + PE32 PE32 Align=Auto $(INF_OUTPUT)/$(MODULE_NAME).efi UI STRING ="$(MODULE_NAME)" Optional VERSION STRING ="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) } @@ -369,7 +369,7 @@ FILE FREEFORM = PCD(gMsvmPkgTokenSpaceGuid.PcdBootFailIndicatorFile) { [Rule.Common.PEIM] FILE PEIM = $(NAMED_GUID) { PEI_DEPEX PEI_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex - PE32 PE32 Align=32 $(INF_OUTPUT)/$(MODULE_NAME).efi + PE32 PE32 Align=Auto $(INF_OUTPUT)/$(MODULE_NAME).efi UI STRING="$(MODULE_NAME)" Optional VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) } @@ -385,7 +385,7 @@ FILE FREEFORM = PCD(gMsvmPkgTokenSpaceGuid.PcdBootFailIndicatorFile) { [Rule.Common.PEIM.PLATFORM_PEI] FILE PEIM = $(NAMED_GUID) { PEI_DEPEX PEI_DEPEX Optional $(INF_OUTPUT)/$(MODULE_NAME).depex - PE32 PE32 Align=32 $(INF_OUTPUT)/$(MODULE_NAME).efi + PE32 PE32 Align=Auto $(INF_OUTPUT)/$(MODULE_NAME).efi UI STRING="$(MODULE_NAME)" Optional VERSION STRING="$(INF_VERSION)" Optional BUILD_NUM=$(BUILD_NUMBER) }