Skip to content

Commit

Permalink
Add EROFS support
Browse files Browse the repository at this point in the history
* Also update GRUB and gnu-efi to latest
  • Loading branch information
pbatard committed Jun 4, 2024
1 parent 669aed3 commit d77c3ab
Show file tree
Hide file tree
Showing 76 changed files with 948 additions and 200 deletions.
29 changes: 15 additions & 14 deletions .github/workflows/linux_gcc_edk2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ env:
GCC5_ARM_PREFIX: arm-linux-gnueabi-
GCC5_AARCH64_PREFIX: aarch64-linux-gnu-
GCC5_RISCV64_PREFIX: riscv64-linux-gnu-
NASM_VERSION: 2.15.05

jobs:
build:
Expand All @@ -42,10 +41,10 @@ jobs:
include:
- arch: X64
short: x64
pkgs: python3-distutils uuid-dev
pkgs: nasm python3-distutils uuid-dev
- arch: IA32
short: ia32
pkgs: gcc-multilib python3-distutils uuid-dev
pkgs: gcc-multilib nasm python3-distutils uuid-dev
- arch: AARCH64
short: aa64
pkgs: gcc-aarch64-linux-gnu python3-distutils uuid-dev
Expand All @@ -58,60 +57,60 @@ jobs:

steps:
- name: Install toolchain
run: sudo apt install ${{ matrix.pkgs }}
- name: Install nasm ${{ env.NASM_VERSION }}
# https://edk2.groups.io/g/devel/topic/89637409#87359
if: matrix.arch == 'X64' || matrix.arch == 'IA32'
run: |
curl -O https://www.nasm.us/pub/nasm/releasebuilds/${{ env.NASM_VERSION }}/nasm-${{ env.NASM_VERSION }}.tar.bz2
tar -xjf nasm-${{ env.NASM_VERSION }}.tar.bz2
cd nasm-${{ env.NASM_VERSION }}
./autogen.sh
./configure --prefix=/usr/local/
make
sudo make install
sudo apt-get update
sudo apt-get install ${{ matrix.pkgs }}
- name: Fix missing Risc-V header
if: matrix.arch == 'riscv64'
run: sudo ln -s /usr/riscv64-linux-gnu/include/gnu/stubs-lp64d.h /usr/riscv64-linux-gnu/include/gnu/stubs-lp64.h

- name: Set up EDK2
run: |
git clone --recursive https://github.com/tianocore/edk2.git
make -C edk2/BaseTools
- name: Checkout repository and submodules
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
path: edk2/EfiFsPkg

- name: Patch GRUB
run: |
cd edk2/EfiFsPkg/grub
git apply ../0001-GRUB-fixes.patch
- name: Build UEFI drivers
run: |
cd edk2
source edksetup.sh
./EfiFsPkg/set_grub_cpu.sh ${{ matrix.arch }}
build -a ${{ matrix.arch }} -b ${{ env.BUILD_TYPE }} -t ${{ env.COMPILER }} -p EfiFsPkg/EfiFsPkg.dsc
for f in Build/EfiFs/${{ env.BUILD_TYPE }}_${{ env.COMPILER }}/${{ matrix.arch }}/*.efi; do mv "$f" "${f%.efi}_${{ matrix.short }}.efi"; done
- name: Upload artifacts
uses: actions/upload-artifact@v4
if: ${{ github.event_name == 'push' }}
with:
name: gcc_edk2_${{ matrix.short }}
path: edk2/Build/EfiFs/${{ env.BUILD_TYPE }}_${{ env.COMPILER }}/${{ matrix.arch }}/*.efi

- name: Display SHA-256
if: startsWith(github.ref, 'refs/tags/')
run: |
mv edk2/Build/EfiFs/${{ env.BUILD_TYPE }}_${{ env.COMPILER }}/${{ matrix.arch }}/*.efi .
sha256sum *.efi
- name: Create release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
env:
GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
with:
files: ./*.efi

- name: Create web artifacts
if: startsWith(github.ref, 'refs/tags/')
run: |
Expand All @@ -128,6 +127,7 @@ jobs:
printf "<a href=\"%s\"><img src=\"/icons/uefi.svg\" alt=\"[EFI]\" width=\"32\" height=\"32\"></a> <a href=\"%s\">%-31s%-19s%-5s\n" "${LINK}" "${LINK}" "${FILE_AND_TAG}" "${TIMESTAMP}" "${SIZE}" >> web/${{ matrix.short }}/index.html;
done
printf "<hr></pre>\n </body>\n</html>\n" >> web/${{ matrix.short }}/index.html
- name: Upload web artifacts
uses: actions/upload-artifact@v4
if: startsWith(github.ref, 'refs/tags/')
Expand All @@ -145,6 +145,7 @@ jobs:
with:
name: gcc_edk2
delete-merged: true

- name: Merge Web Artifacts
uses: actions/upload-artifact/merge@v4
if: startsWith(github.ref, 'refs/tags/')
Expand Down
8 changes: 7 additions & 1 deletion .github/workflows/linux_gcc_gnu-efi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,15 +54,21 @@ jobs:
with:
fetch-depth: 0
submodules: recursive

- name: Install gcc toolchain
run: sudo apt install ${{ matrix.pkg }}
run: |
sudo apt-get update
sudo apt-get install ${{ matrix.pkg }}
- name: Patch GRUB
run: |
cd grub
git apply ../0001-GRUB-fixes.patch
cd ..
- name: Build drivers
run: make ARCH=${{ matrix.arch }} CROSS_COMPILE=${{ matrix.tuple }}

- name: Upload artifacts
uses: actions/upload-artifact@v4
if: ${{ github.event_name == 'push' }}
Expand Down
9 changes: 8 additions & 1 deletion .github/workflows/windows_msvc_edk2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ on:
env:
BUILD_TYPE: RELEASE
COMPILER: VS2019
NASM_URL: https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/win64/nasm-2.15.05-win64.zip
NASM_URL: https://www.nasm.us/pub/nasm/releasebuilds/2.16/win64/nasm-2.16-win64.zip

jobs:
build:
Expand Down Expand Up @@ -61,30 +61,36 @@ jobs:
del nasm.zip
move nasm* nasm
echo NASM_PREFIX=%cd%\nasm\>> %GITHUB_ENV%
- name: Set Visual Studio for win32 build
uses: ilammy/msvc-dev-cmd@v1
with:
arch: win32

- name: Set up EDK2
shell: cmd
run: |
git clone --recursive https://github.com/tianocore/edk2.git
cd edk2
call edksetup.bat rebuild
- name: Checkout repository and submodules
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive
path: edk2/EfiFsPkg

- name: Patch GRUB
run: |
cd edk2\EfiFsPkg\grub
git apply ..\0001-GRUB-fixes.patch
- name: Set Visual Studio for ${{ matrix.msvc }} build
uses: ilammy/msvc-dev-cmd@v1
with:
arch: ${{ matrix.msvc }}

- name: Build UEFI drivers
shell: cmd
run: |
Expand All @@ -93,6 +99,7 @@ jobs:
call EfiFsPkg\set_grub_cpu.cmd ${{ matrix.arch }}
call build -a ${{ matrix.arch }} -b ${{ env.BUILD_TYPE }} -t ${{ env.COMPILER }} -p EfiFsPkg/EfiFsPkg.dsc
for %%f in (Build\EfiFs\${{ env.BUILD_TYPE }}_${{ env.COMPILER }}\${{ matrix.arch }}\*.efi) do ren "%%~f" "%%~nf_${{ matrix.short }}%%~xf"
- name: Upload artifacts
uses: actions/upload-artifact@v4
if: ${{ github.event_name == 'push' }}
Expand Down
4 changes: 4 additions & 0 deletions .github/workflows/windows_msvc_gnu-efi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,17 +38,21 @@ jobs:
with:
fetch-depth: 0
submodules: recursive

- name: Patch GRUB
run: |
cd grub
git apply ..\0001-GRUB-fixes.patch
cd ..
- name: Add MSBuild to PATH
uses: microsoft/setup-msbuild@v2

- name: Build drivers
run: |
msbuild efifs.sln /m /p:Configuration=Debug,Platform=${{ matrix.arch }}
msbuild efifs.sln /m /p:Configuration=Release,Platform=${{ matrix.arch }}
- name: Upload artifacts
uses: actions/upload-artifact@v4
if: ${{ github.event_name == 'push' }}
Expand Down
12 changes: 8 additions & 4 deletions .vs/affs.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,7 @@
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<AdditionalOptions>/Oi- /std:clatest %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Lib>
<SubSystem>EFI Application</SubSystem>
Expand Down Expand Up @@ -198,6 +199,7 @@
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<AdditionalOptions>/Oi- /std:clatest %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Lib>
<SubSystem>EFI Application</SubSystem>
Expand Down Expand Up @@ -226,6 +228,7 @@
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<AdditionalOptions>/Oi- /std:clatest %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Lib>
<SubSystem>EFI Application</SubSystem>
Expand Down Expand Up @@ -253,6 +256,7 @@
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<AdditionalOptions>/Oi- /std:clatest %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Lib>
<SubSystem>EFI Application</SubSystem>
Expand All @@ -278,7 +282,7 @@
<WarningLevel>Level3</WarningLevel>
<BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<AdditionalOptions>/Oi- %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions>/Oi- /std:clatest %(AdditionalOptions)</AdditionalOptions>
<Optimization>MinSpace</Optimization>
</ClCompile>
<Lib>
Expand Down Expand Up @@ -307,7 +311,7 @@
<WarningLevel>Level3</WarningLevel>
<BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<AdditionalOptions>/Oi- %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions>/Oi- /std:clatest %(AdditionalOptions)</AdditionalOptions>
<Optimization>MinSpace</Optimization>
</ClCompile>
<Lib>
Expand Down Expand Up @@ -336,7 +340,7 @@
<WarningLevel>Level3</WarningLevel>
<BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<AdditionalOptions>/Oi- %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions>/Oi- /std:clatest %(AdditionalOptions)</AdditionalOptions>
<Optimization>MinSpace</Optimization>
</ClCompile>
<Lib>
Expand Down Expand Up @@ -365,7 +369,7 @@
<WarningLevel>Level3</WarningLevel>
<BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<AdditionalOptions>/Oi- %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions>/Oi- /std:clatest %(AdditionalOptions)</AdditionalOptions>
<Optimization>MinSpace</Optimization>
</ClCompile>
<Lib>
Expand Down
12 changes: 8 additions & 4 deletions .vs/bfs.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,7 @@
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<AdditionalOptions>/Oi- /std:clatest %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Lib>
<SubSystem>EFI Application</SubSystem>
Expand Down Expand Up @@ -198,6 +199,7 @@
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<AdditionalOptions>/Oi- /std:clatest %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Lib>
<SubSystem>EFI Application</SubSystem>
Expand Down Expand Up @@ -226,6 +228,7 @@
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<AdditionalOptions>/Oi- /std:clatest %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Lib>
<SubSystem>EFI Application</SubSystem>
Expand Down Expand Up @@ -253,6 +256,7 @@
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
<BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<AdditionalOptions>/Oi- /std:clatest %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Lib>
<SubSystem>EFI Application</SubSystem>
Expand All @@ -278,7 +282,7 @@
<WarningLevel>Level3</WarningLevel>
<BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<AdditionalOptions>/Oi- %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions>/Oi- /std:clatest %(AdditionalOptions)</AdditionalOptions>
<Optimization>MinSpace</Optimization>
</ClCompile>
<Lib>
Expand Down Expand Up @@ -307,7 +311,7 @@
<WarningLevel>Level3</WarningLevel>
<BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<AdditionalOptions>/Oi- %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions>/Oi- /std:clatest %(AdditionalOptions)</AdditionalOptions>
<Optimization>MinSpace</Optimization>
</ClCompile>
<Lib>
Expand Down Expand Up @@ -336,7 +340,7 @@
<WarningLevel>Level3</WarningLevel>
<BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<AdditionalOptions>/Oi- %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions>/Oi- /std:clatest %(AdditionalOptions)</AdditionalOptions>
<Optimization>MinSpace</Optimization>
</ClCompile>
<Lib>
Expand Down Expand Up @@ -365,7 +369,7 @@
<WarningLevel>Level3</WarningLevel>
<BufferSecurityCheck>false</BufferSecurityCheck>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<AdditionalOptions>/Oi- %(AdditionalOptions)</AdditionalOptions>
<AdditionalOptions>/Oi- /std:clatest %(AdditionalOptions)</AdditionalOptions>
<Optimization>MinSpace</Optimization>
</ClCompile>
<Lib>
Expand Down
Loading

0 comments on commit d77c3ab

Please sign in to comment.