From 7f61e805975b5ebac2b66136f28562b9f5201a18 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Mar 2026 20:38:23 +0000 Subject: [PATCH 1/6] Bump actions/upload-artifact from 6 to 7 Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7. - [Release notes](https://github.com/actions/upload-artifact/releases) - [Commits](https://github.com/actions/upload-artifact/compare/v6...v7) --- updated-dependencies: - dependency-name: actions/upload-artifact dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 9d0b8d8247..a7badf480e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -51,7 +51,7 @@ jobs: for releaseItem in "${releaseItems[@]}"; do cp -Rf "${releaseItem}" ./ || exit 1; done - name: Upload to Artifacts - uses: actions/upload-artifact@v6 + uses: actions/upload-artifact@v7 with: name: Clover-GCC-15.2.0-${{ env.GIT_SHA }} path: | From 158873ba3ae6b4c9e2a70d7ee43b734ee675c973 Mon Sep 17 00:00:00 2001 From: YBronst Date: Thu, 5 Mar 2026 23:35:48 +0200 Subject: [PATCH 2/6] Add license badge to README by chris1111 Added a license badge to the README by chris1111. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f613eb1be9..2c5816538a 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # CloverBootloader -[![CI](https://github.com/CloverHackyColor/CloverBootloader/actions/workflows/main.yml/badge.svg)](https://github.com/CloverHackyColor/CloverBootloader/actions/workflows/main.yml) +[![CI](https://github.com/CloverHackyColor/CloverBootloader/actions/workflows/main.yml/badge.svg)](https://github.com/CloverHackyColor/CloverBootloader/actions/workflows/main.yml) [![License](https://img.shields.io/badge/License-BSD%202--Clause-orange.svg)](https://github.com/CloverHackyColor/CloverBootloader/blob/master/LICENSE) Bootloader for macOS, Windows and Linux in UEFI and in legacy mode ### Read the DOC [Clover-Documentation](https://github.com/CloverHackyColor/Clover-Documentation) / [Clover-Documentation Site](https://cloverhackycolor.github.io/Clover-Documentation/) @@ -35,7 +35,7 @@ Bootloader for macOS, Windows and Linux in UEFI and in legacy mode ### Developers: -* Slice, with help of Kabyl, usr-sse2, jadran, Blackosx, dmazar, STLVNUB, pcj, apianti, JrCs, pene, FrodoKenny, skoczy, ycr.ru, Oscar09, xsmile, SoThOr, rehabman, Download-Fritz, nms42, Sherlocks, Zenit432, cecekpawon, stinga11, TheRacerMaster, solstice, Micky1979, Needy, joevt, ErmaC, vit9696, ath, savvas, syscl, goodwin\_c, clovy, jief\_machak, chris1111, vector\_sigma, LAbyOne, Florin9doi, Hnanoto. +* Slice, with help of Kabyl, usr-sse2, jadran, Blackosx, dmazar, STLVNUB, pcj, apianti, JrCs, pene, FrodoKenny, skoczy, ycr.ru, Oscar09, xsmile, SoThOr, rehabman, Download-Fritz, nms42, Sherlocks, Zenit432, cecekpawon, stinga11, TheRacerMaster, solstice, Micky1979, Needy, joevt, ErmaC, vit9696, ath, savvas, syscl, goodwin\_c, clovy, jief\_machak, chris1111, vector\_sigma, LAbyOne, Florin9doi, YBronst, Hnanoto. ### Source code credits to: Intel, Apple, Oracle, Chameleon, rEFIt and Xom, nanosvg. From 1521201140f3a2448c7216b8f387f1cac0c133e3 Mon Sep 17 00:00:00 2001 From: YBronst <157227982+YBronst@users.noreply.github.com> Date: Fri, 6 Mar 2026 05:31:57 +0000 Subject: [PATCH 3/6] Inject voodoo-layout-id for VoodooHDA 3.1 support - Modified `rEFIt_UEFI/Platform/hda.cpp` to use `voodoo-layout-id` property instead of `layout-id`. - Removed legacy macOS version checks (pre-10.8) for HDA injection; now relies solely on `HDALayoutId > 0`. - Updated `rEFIt_UEFI/refit/menu.cpp` to always display `HDAInjection` and `HDALayoutId` settings in the Audio tuning menu. - Intentionally omitted disk volume related changes from the source commit as per requirements. --- rEFIt_UEFI/Platform/hda.cpp | 7 ++++--- rEFIt_UEFI/refit/menu.cpp | 8 ++++---- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/rEFIt_UEFI/Platform/hda.cpp b/rEFIt_UEFI/Platform/hda.cpp index 24e1aa03b0..b0b1f43233 100644 --- a/rEFIt_UEFI/Platform/hda.cpp +++ b/rEFIt_UEFI/Platform/hda.cpp @@ -194,6 +194,7 @@ XBool setup_hda_devprop(EFI_PCI_IO_PROTOCOL *PciIo, pci_dt_t *hda_dev, const Mac DBG("Additional HDMI properties injected, continue\n"); //return true; } else { +// it was for very old macOS, not sure if actual if (gSettings.Devices.UseIntelHDMI) { DBG(" HDMI Audio, used with HDA setting hda-gfx=onboard-2\n"); devprop_add_value(device, "hda-gfx", (UINT8*)"onboard-2", 10); @@ -217,7 +218,7 @@ XBool setup_hda_devprop(EFI_PCI_IO_PROTOCOL *PciIo, pci_dt_t *hda_dev, const Mac if (gSettings.Devices.Audio.HDALayoutId > 0) { // layoutId is specified - use it layoutId = (UINT32)gSettings.Devices.Audio.HDALayoutId; - DBG(" setting specified layout-id=%d (0x%X)\n", layoutId, layoutId); + DBG(" setting specified voodoo-layout-id=%d (0x%X)\n", layoutId, layoutId); } else { layoutId = 12; } @@ -237,8 +238,8 @@ XBool setup_hda_devprop(EFI_PCI_IO_PROTOCOL *PciIo, pci_dt_t *hda_dev, const Mac } } if (!Injected) { - if ( (OSVersion.notEmpty() && OSVersion < MacOsVersion("10.8"_XS8)) || gSettings.Devices.Audio.HDALayoutId > 0 ) { - devprop_add_value(device, "layout-id", (UINT8 *)&layoutId, 4); + if ( gSettings.Devices.Audio.HDALayoutId > 0 ) { + devprop_add_value(device, "voodoo-layout-id", (UINT8 *)&layoutId, 4); } layoutId = 0; // reuse variable if (gSettings.Devices.UseIntelHDMI) { diff --git a/rEFIt_UEFI/refit/menu.cpp b/rEFIt_UEFI/refit/menu.cpp index 7ee68eda55..2330f17273 100644 --- a/rEFIt_UEFI/refit/menu.cpp +++ b/rEFIt_UEFI/refit/menu.cpp @@ -1821,10 +1821,10 @@ REFIT_ABSTRACT_MENU_ENTRY *SubMenuAudio() ); } - //SubScreen->AddMenuItemInput(59, "HDAInjection", false); - if (gSettings.Devices.Audio.HDAInjection) { - SubScreen->AddMenuItemInput(60, "HDALayoutId:", true); - } + SubScreen->AddMenuItemInput(59, "HDAInjection", false); + // if (gSettings.Devices.Audio.HDAInjection) { + SubScreen->AddMenuItemInput(60, "HDALayoutId:", true); + // } // avaiable configuration SubScreen->AddMenuItemInput(57, "ResetHDA", false); From 0ad5611094d7170f6fb7ff303d39d371f363d01d Mon Sep 17 00:00:00 2001 From: YBronst Date: Fri, 6 Mar 2026 08:19:27 +0200 Subject: [PATCH 4/6] Update OpenCorePkg --- OpenCorePkg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenCorePkg b/OpenCorePkg index 6eb71cb914..3c84521793 160000 --- a/OpenCorePkg +++ b/OpenCorePkg @@ -1 +1 @@ -Subproject commit 6eb71cb914dddaed59d74c247db9194fa0a4cbbc +Subproject commit 3c845217937d8522030db95183b5d0948b70bd32 From 97c403d9531b96538b0258f3d759861e88f73030 Mon Sep 17 00:00:00 2001 From: YBronst Date: Fri, 6 Mar 2026 08:36:39 +0200 Subject: [PATCH 5/6] Merge from CloverHackyColor Fix Build Clover Package fix mistake can use clang-22 sub change a template to use llvm-clang-19 --- BaseTools/Conf/tools_def.template | 156 +++++++++++++++- FileSystems/GrubFS/grub/grub-core/kern/disk.c | 4 +- .../Library/UefiBootManagerLib/BmConsole.c | 2 +- .../Library/UefiBootManagerLib/BmLoadOption.c | 2 +- ebuild.sh | 149 ++++++++++------ hebuild.sh | 167 ++++++++++++------ rEFIt_UEFI/include/Guid++.h | 6 +- 7 files changed, 368 insertions(+), 118 deletions(-) diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template index d5f7d130ce..4fc8bd2ba7 100644 --- a/BaseTools/Conf/tools_def.template +++ b/BaseTools/Conf/tools_def.template @@ -171,8 +171,10 @@ DEFINE DTC_BIN = ENV(DTC_PREFIX)dtc #DEFINE CLANG_BIN = /usr/bin/ #DEFINE CLANG_BIN = /opt/local/libexec/llvm-3.6/bin/ -DEFINE LLVM_BIN = ENV(HOME)/src/llvm-build/Release/bin/ -DEFINE CLANG_BIN = ENV(HOME)/src/llvm-build/Release/bin/ +#DEFINE LLVM_BIN = ENV(HOME)/src/llvm-build/Release/bin/ +#DEFINE CLANG_BIN = ENV(HOME)/src/llvm-build/Release/bin/ +DEFINE LLVM_BIN = /opt/local/libexec/llvm-22/bin/ +DEFINE XCLANG_BIN = /opt/local/libexec/llvm-22/bin/ #################################################################################### # @@ -2132,6 +2134,67 @@ DEFINE GCC152_IA32_X64_DLINK_FLAGS = DEF(GCC152_IA32_X64_DLINK_COMMON),--entr DEFINE GCC152_X64_DLINK_FLAGS = DEF(GCC152_IA32_X64_DLINK_FLAGS),-melf_x86_64,-znoexecstack,--oformat=elf64-x86-64,-pie DEFINE GCC152_ASM_FLAGS = DEF(GCC49_ASM_FLAGS) +#################################################################################### +# +# LLVM - This configuration is used to compile under OSX to produce +# PE/COFF binaries using LLVM CLANG. +# +#################################################################################### +*_LLVM_*_*_FAMILY = GCC +*_LLVM_*_MAKE_PATH = make +*_LLVM_*_ASL_PATH = DEF(UNIX_IASL_BIN) +*_LLVM_*_PP_FLAGS = DEF(GCC_PP_FLAGS) +*_LLVM_*_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) +*_LLVM_*_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) +*_LLVM_*_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS) +*_LLVM_*_APP_FLAGS = +*_LLVM_*_ASL_FLAGS = DEF(IASL_FLAGS) +*_LLVM_*_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS) + +################## +# LLVM X64 definitions +################## +*_LLVM_X64_OBJCOPY_PATH = DEF(LLVM_BIN)llvm-objcopy +*_LLVM_X64_CC_PATH = DEF(LLVM_BIN)clang +*_LLVM_X64_SLINK_PATH = DEF(LLVM_BIN)llvm-ar +*_LLVM_X64_DLINK_PATH = DEF(LLVM_BIN)ld +*_LLVM_X64_ASLDLINK_PATH = DEF(LLVM_BIN)ld +#*_LLVM_X64_DLINK_PATH = DEF(LLVM_BIN)llvm-link +#*_LLVM_X64_ASLDLINK_PATH = DEF(LLVM_BIN)llvm-link +*_LLVM_X64_ASM_PATH = DEF(LLVM_BIN)clang +*_LLVM_X64_PP_PATH = DEF(LLVM_BIN)clang +*_LLVM_X64_VFRPP_PATH = DEF(LLVM_BIN)clang +*_LLVM_X64_ASLCC_PATH = DEF(LLVM_BIN)clang +*_LLVM_X64_ASLPP_PATH = DEF(LLVM_BIN)clang +*_LLVM_X64_RC_PATH = DEF(LLVM_BIN)objcopy +*_LLVM_X64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m64 +*_LLVM_X64_ASLDLINK_FLAGS = DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -m elf_x86_64 +*_LLVM_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS) +*_LLVM_X64_OBJCOPY_FLAGS = + + +################## +# X64 definitions +################## +#RELEASE_LLVM_X64_DLINK_FLAGS = -arch x86_64 -u _$(IMAGE_ENTRY_POINT) -e _$(IMAGE_ENTRY_POINT) -preload -segalign 0x20 -pie -dead_strip -seg1addr 0x220 -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map + +RELEASE_LLVM_X64_DLINK_FLAGS = DEF(GCC152_X64_DLINK_FLAGS) +*_LLVM_X64_SLINK_FLAGS = +RELEASE_LLVM_X64_ASM_FLAGS = DEF(GCC49_ASM_FLAGS) -m64 -Wl,-melf_x86_64 +*_LLVM_*_PP_FLAGS = -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h +*_LLVM_*_VFRPP_FLAGS = -x c -E -P -DVFRCOMPILE -include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h + +RELEASE_LLVM_X64_CC_FLAGS = -Os -Wall -Werror -include AutoGen.h -fno-stack-protector -fno-builtin -fshort-wchar -mdynamic-no-pic -Wreturn-type -DNO_BUILTIN_VA_FUNCS -Wno-deprecated-non-prototype +*_LLVM_*_ASLCC_FLAGS = -x c -save-temps -g -O0 -fshort-wchar -fno-strict-aliasing -Wall -Werror -include AutoGen.h -mdynamic-no-pic +*_LLVM_*_ASLDLINK_FLAGS = -e _ReferenceAcpiTable -preload -segalign 0x20 -pie -seg1addr 0x240 -read_only_relocs suppress -map $(DEST_DIR_DEBUG)/$(BASE_NAME).map +*_LLVM_*_ASLPP_FLAGS = -x c -E -P +*_LLVM_*_ASL_FLAGS = -ta + +*_LLVM_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS) +*_LLVM_X64_OBJCOPY_FLAGS = +*_LLVM_X64_NASM_FLAGS = -f elf64 + + #################################################################################### @@ -2460,9 +2523,9 @@ RELEASE_GCC48_AARCH64_CC_FLAGS = DEF(GCC48_AARCH64_CC_FLAGS) -Wno-unused-but-s #Jief removed lto flag. It is set in CLover.dsc, from the env var 'DISABLE_LTO' DEBUG_GCC53_X64_CC_FLAGS = DEF(GCC53_X64_CC_FLAGS) -g3 -O0 -RELEASE_GCC53_X64_CC_FLAGS = DEF(GCC53_X64_CC_FLAGS) -g3 -Os -Werror +RELEASE_GCC53_X64_CC_FLAGS = DEF(GCC53_X64_CC_FLAGS) -Os -Werror DEBUG_GCC53_X64_CXX_FLAGS = DEF(GCC53_X64_CC_FLAGS) -g3 -O0 -RELEASE_GCC53_X64_CXX_FLAGS = DEF(GCC53_X64_CC_FLAGS) -g3 -Os -Werror +RELEASE_GCC53_X64_CXX_FLAGS = DEF(GCC53_X64_CC_FLAGS) -Os -Werror #################################################################################### # @@ -2516,9 +2579,9 @@ RELEASE_GCC53_X64_CXX_FLAGS = DEF(GCC53_X64_CC_FLAGS) -g3 -Os -Werror *_GCC131_X64_NASM_FLAGS = -f elf64 DEBUG_GCC131_X64_CC_FLAGS = DEF(GCC131_X64_CC_FLAGS) -g3 -O0 -RELEASE_GCC131_X64_CC_FLAGS = DEF(GCC131_X64_CC_FLAGS) -g3 -Os -Werror +RELEASE_GCC131_X64_CC_FLAGS = DEF(GCC131_X64_CC_FLAGS) -Os -Werror DEBUG_GCC131_X64_CXX_FLAGS = DEF(GCC131_X64_CC_FLAGS) -g3 -O0 -RELEASE_GCC131_X64_CXX_FLAGS = DEF(GCC131_X64_CC_FLAGS) -g3 -Os -Werror +RELEASE_GCC131_X64_CXX_FLAGS = DEF(GCC131_X64_CC_FLAGS) -Os -Werror ################## # GCC131 ARM definitions @@ -3127,6 +3190,87 @@ RELEASEMACOS_XCODE16_X64_DLINK_FLAGS = -arch x86_64 -nostdlib -Wl,-u,_$(IMA *_XCODE16_*_DTCPP_FLAGS = DEF(GCC_DTCPP_FLAGS) *_XCODE16_*_APP_FLAGS = DEF(GCC_PP_FLAGS) + +# XCLANG + + +*_XCLANG_*_*_FAMILY = GCC +*_XCLANG_*_*_BUILDRULEFAMILY = XCODE +*_XCLANG_*_*_BUILDRULEORDER = nasm S s + +*_XCLANG_*_MTOC_PATH = ENV(MTOC_PREFIX)mtoc.NEW_jief + +*_XCLANG_*_MAKE_PATH = make +*_XCLANG_*_DSYMUTIL_PATH = /usr/bin/dsymutil + + DEBUG_XCLANG_*_MTOC_FLAGS = -align 0x20 -d $(DEBUG_DIR)/$(MODULE_NAME).dll + NOOPT_XCLANG_*_MTOC_FLAGS = -align 0x20 -d $(DEBUG_DIR)/$(MODULE_NAME).dll +RELEASE_XCLANG_*_MTOC_FLAGS = -align 0x20 + +# +# use xcode-select to change Xcode version of command line tools +# +*_XCLANG_*_CC_PATH = $(XCLANG_BIN)clang +*_XCLANG_*_CXX_PATH = $(XCLANG_BIN)clang++ +*_XCLANG_*_SLINK_PATH = $(XCLANG_BIN)llvm-libtool-darwin +*_XCLANG_*_DLINK_PATH = $(XCLANG_BIN)clang +*_XCLANG_*_ASM_PATH = $(XCLANG_BIN)clang++ +*_XCLANG_*_PP_PATH = $(XCLANG_BIN)clang++ +*_XCLANG_*_VFRPP_PATH = $(XCLANG_BIN)clang++ +*_XCLANG_*_ASL_PATH = DEF(UNIX_IASL_BIN) +*_XCLANG_*_ASLCC_PATH = $(XCLANG_BIN)clang++ +*_XCLANG_*_ASLPP_PATH = $(XCLANG_BIN)clang++ +*_XCLANG_*_ASLDLINK_PATH = $(XCLANG_BIN)clang +*_XCLANG_*_NASM_PATH = ENV(NASM_PREFIX)nasm +*_XCLANG_X64_OBJCOPY_PATH = DEF(XCLANG_BIN)llvm-objcopy + +################## +# X64 definitions +################## + DEBUG_XCLANG_X64_DLINK_FLAGS = -arch x86_64 -nostdlib -Wl,-u,_$(IMAGE_ENTRY_POINT),-e,_$(IMAGE_ENTRY_POINT),-preload,-segalign,0x20,-pie,-all_load,-dead_strip,-seg1addr,0x260,-object_path_lto,$(DEST_DIR_DEBUG)/$(BASE_NAME).o,-map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map + DEBUGMACOS_XCLANG_X64_DLINK_FLAGS = -arch x86_64 -nostdlib -Wl,-u,_$(IMAGE_ENTRY_POINT),-e,_$(IMAGE_ENTRY_POINT),-preload,-segalign,0x20,-pie,-all_load,-dead_strip,-seg1addr,0x800,-map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map + RELEASE_XCLANG_X64_DLINK_FLAGS = -arch x86_64 -nostdlib -Wl,-u,_$(IMAGE_ENTRY_POINT),-e,_$(IMAGE_ENTRY_POINT),-preload,-segalign,0x20,-pie,-all_load,-dead_strip,-seg1addr,0x260,-map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map +RELEASEMACOS_XCLANG_X64_DLINK_FLAGS = -arch x86_64 -nostdlib -Wl,-u,_$(IMAGE_ENTRY_POINT),-e,_$(IMAGE_ENTRY_POINT),-preload,-segalign,0x20,-pie,-all_load,-dead_strip,-seg1addr,0x800,-map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map + + *_XCLANG_X64_SLINK_FLAGS = -static -no_warning_for_no_symbols -o + + DEBUG_XCLANG_X64_ASM_FLAGS = -c -x assembler -arch x86_64 -g + DEBUGMACOS_XCLANG_X64_ASM_FLAGS = -c -x assembler -arch x86_64 -g + RELEASE_XCLANG_X64_ASM_FLAGS = -c -x assembler -arch x86_64 + RELEASEMACOS_XCLANG_X64_ASM_FLAGS = -c -x assembler -arch x86_64 + + *_XCLANG_X64_NASM_FLAGS = -f macho64 + *_XCLANG_*_PP_FLAGS = DEF(GCC_PP_FLAGS) + *_XCLANG_*_VFRPP_FLAGS = -x c -E -P -DVFRCOMPILE -include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h + + +# -mno-implicit-float +# -Wno-varargs +# -Wno-unused-const-variable + + DEFINE XCLANG_COMMON_FLAGS = -c -Wall -Wextra -include AutoGen.h -fno-ms-extensions -fno-stack-protector -fno-builtin -fshort-wchar -mms-bitfields -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings -mno-red-zone -fno-common -fdata-sections -ffreestanding -ffunction-sections -fno-asynchronous-unwind-tables -m64 -mcmodel=small -DNO_MSABI_VA_FUNCS -fno-strict-aliasing -Wno-unused-parameter -Wno-unused-but-set-variable -Wno-deprecated-non-prototype -Wno-unused-command-line-argument -Wno-cast-function-type-mismatch -Wno-missing-field-initializers + + + + DEBUG_XCLANG_X64_CC_FLAGS = -g3 -gdwarf -O0 DEF(XCLANG_COMMON_FLAGS) -target x86_64-pc-win32-macho "-DEFIAPI=__attribute__((ms_abi))" + DEBUGMACOS_XCLANG_X64_CC_FLAGS = -g3 -gdwarf -O0 DEF(XCLANG_COMMON_FLAGS) + RELEASE_XCLANG_X64_CC_FLAGS = -Os DEF(XCLANG_COMMON_FLAGS) -target x86_64-pc-win32-macho "-DEFIAPI=__attribute__((ms_abi))" -Werror + RELEASEMACOS_XCLANG_X64_CC_FLAGS = -Os DEF(XCLANG_COMMON_FLAGS) + DEBUG_XCLANG_X64_CXX_FLAGS = -g3 -gdwarf -O0 DEF(XCLANG_COMMON_FLAGS) -target x86_64-pc-win32-macho "-DEFIAPI=__attribute__((ms_abi))" + DEBUGMACOS_XCLANG_X64_CXX_FLAGS = -g3 -gdwarf -O0 DEF(XCLANG_COMMON_FLAGS) + RELEASE_XCLANG_X64_CXX_FLAGS = -Os DEF(XCLANG_COMMON_FLAGS) -target x86_64-pc-win32-macho "-DEFIAPI=__attribute__((ms_abi))" -Werror + RELEASEMACOS_XCLANG_X64_CXX_FLAGS = -Os DEF(XCLANG_COMMON_FLAGS) + +*_XCLANG_*_ASLCC_FLAGS = -x c -save-temps -g -O0 -fshort-wchar -fno-strict-aliasing -Wall -Werror -c -include AutoGen.h +*_XCLANG_*_ASLDLINK_FLAGS = -nostdlib -Wl,-e,_ReferenceAcpiTable,-preload,-segalign,0x20,-pie,-seg1addr,0x260,-read_only_relocs,suppress,-map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map +*_XCLANG_*_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS) +*_XCLANG_*_ASL_FLAGS = +*_XCLANG_*_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS) +*_XCLANG_*_DTCPP_FLAGS = DEF(GCC_DTCPP_FLAGS) +*_XCLANG_*_APP_FLAGS = DEF(GCC_PP_FLAGS) + + + #################################################################################### # # RVCT Common diff --git a/FileSystems/GrubFS/grub/grub-core/kern/disk.c b/FileSystems/GrubFS/grub/grub-core/kern/disk.c index 9e1de34b1d..950a481c51 100644 --- a/FileSystems/GrubFS/grub/grub-core/kern/disk.c +++ b/FileSystems/GrubFS/grub/grub-core/kern/disk.c @@ -80,7 +80,7 @@ grub_disk_cache_fetch (unsigned long dev_id, unsigned long disk_id, cache_index = grub_disk_cache_get_index (dev_id, disk_id, sector); cache = grub_disk_cache_table + cache_index; - if (cache->dev_id == dev_id && cache->disk_id == disk_id + if ((unsigned long)cache->dev_id == dev_id && (unsigned long)cache->disk_id == disk_id && cache->sector == sector) { cache->lock = 1; #if DISK_CACHE_STATS @@ -106,7 +106,7 @@ grub_disk_cache_unlock (unsigned long dev_id, unsigned long disk_id, cache_index = grub_disk_cache_get_index (dev_id, disk_id, sector); cache = grub_disk_cache_table + cache_index; - if (cache->dev_id == dev_id && cache->disk_id == disk_id + if ((unsigned long)cache->dev_id == dev_id && (unsigned long)cache->disk_id == disk_id && cache->sector == sector) { cache->lock = 0; } diff --git a/MdeModulePkg/Library/UefiBootManagerLib/BmConsole.c b/MdeModulePkg/Library/UefiBootManagerLib/BmConsole.c index cd7e643104..3ee545199f 100644 --- a/MdeModulePkg/Library/UefiBootManagerLib/BmConsole.c +++ b/MdeModulePkg/Library/UefiBootManagerLib/BmConsole.c @@ -424,7 +424,7 @@ EfiBootManagerUpdateConsoleVariable ( EFI_DEVICE_PATH_PROTOCOL *NewDevicePath; EFI_DEVICE_PATH_PROTOCOL *TempNewDevicePath; - if (ConsoleType >= ARRAY_SIZE (mConVarName)) { + if ((UINTN)ConsoleType >= ARRAY_SIZE (mConVarName)) { return EFI_INVALID_PARAMETER; } diff --git a/MdeModulePkg/Library/UefiBootManagerLib/BmLoadOption.c b/MdeModulePkg/Library/UefiBootManagerLib/BmLoadOption.c index 62e9673832..298ac277a7 100644 --- a/MdeModulePkg/Library/UefiBootManagerLib/BmLoadOption.c +++ b/MdeModulePkg/Library/UefiBootManagerLib/BmLoadOption.c @@ -805,7 +805,7 @@ EfiBootManagerIsValidLoadOptionVariableName ( // // Return FALSE when the variable name doesn't start with Driver/SysPrep/Boot/PlatformRecovery. // - for (LocalOptionType = 0; LocalOptionType < ARRAY_SIZE (mBmLoadOptionName); LocalOptionType++) { + for (LocalOptionType = 0; (UINTN)LocalOptionType < ARRAY_SIZE (mBmLoadOptionName); LocalOptionType++) { if ((VariableNameLen - 4 == StrLen (mBmLoadOptionName[LocalOptionType])) && (StrnCmp (VariableName, mBmLoadOptionName[LocalOptionType], VariableNameLen - 4) == 0) ) { diff --git a/ebuild.sh b/ebuild.sh index 65cdc5f516..8b83cfd24e 100755 --- a/ebuild.sh +++ b/ebuild.sh @@ -36,7 +36,7 @@ PLATFORMFILE= MODULEFILE= TARGETRULE= -SCRIPT_VERS="2019-11-09" +SCRIPT_VERS="2026-03-01" # Macro M_NOGRUB=0 @@ -54,26 +54,28 @@ export PYTHON_COMMAND=python3 # if building through Xcode, then TOOLCHAIN_DIR is not defined # checking if it is where CloverGrowerPro put it -if [[ "$SYSNAME" == Linux ]]; then - export TOOLCHAIN=GCC152 - TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-/usr} -else - if [[ -d ~/src/opt/local ]]; then - TOOLCHAIN_DIR=~/src/opt/local - else - TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-"$CLOVERROOT"/toolchain} - fi - export DIR_MAIN=${DIR_MAIN:-"$CLOVERROOT"/toolchain} -fi -export TOOLCHAIN_DIR -echo "TOOLCHAIN_DIR: $TOOLCHAIN_DIR" - +#if [[ "$SYSNAME" == Linux ]]; then +# export TOOLCHAIN=GCC152 +# TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-/usr} +#else +# if [[ "$TOOLCHAIN" == XCLANG ]]; then +# TOOLCHAIN_DIR=/opt/local +# elif [[ -d ~/src/opt/local ]]; then +# TOOLCHAIN_DIR=~/src/opt/local +# else +# TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-"$CLOVERROOT"/toolchain} +# fi +# export DIR_MAIN=${DIR_MAIN:-"$CLOVERROOT"/toolchain} +#fi +#export TOOLCHAIN_DIR +#echo "TOOLCHAIN_DIR: $TOOLCHAIN_DIR" VBIOSPATCHCLOVEREFI=0 ONLYSATA0PATCH=0 USE_BIOS_BLOCKIO=0 USE_LOW_EBDA=1 CLANG=0 GENPAGE=0 +LLVM=0 FORCEREBUILD=0 NOBOOTFILES=0 @@ -246,16 +248,19 @@ usage() { print_option_help "-v, --version" "print the version information and exit" echo echo "Toolchain:" - print_option_help "-clang" "use llvm Clang toolchain" -# print_option_help "-llvm" "use LLVM toolchain" + print_option_help "-clang" "use Clang toolchain" + print_option_help "-llvm" "use LLVM toolchain" # print_option_help "-gcc49" "use GCC 4.9 toolchain" - print_option_help "-gcc53" "use GCC 5.3 toolchain" -# print_option_help "-unixgcc" "use UNIXGCC toolchain" - print_option_help "-xcode" "use XCode 3.2 toolchain" - print_option_help "-xcode5" "use XCode 5-7 toolchain " + print_option_help "-gcc53" "use GCC 5.3 toolchain, including gcc-11" + print_option_help "-gcc131" "use GCC 13.1 toolchain, including gcc-14.2" + print_option_help "-gcc151" "use GCC 15.1 toolchain" + print_option_help "-gcc152" "use GCC 15.2 toolchain" +# print_option_help "-unixgcc" "use UNIXGCC toolchain, unsupported" +# print_option_help "-xcode" "use XCode 3.2 toolchain" + print_option_help "-xcode5" "use XCode 5 toolchain, " print_option_help "-xcode8" "use XCode 8 toolchain [Default]" - print_option_help "-xcode14" "use XCode 14 toolchain" - print_option_help "-xcode15" "use XCode 15 toolchain" + print_option_help "-xcode14" "use XCode 14 toolchain" + print_option_help "-xcode16" "use XCode 16-26 toolchain" print_option_help "-t TOOLCHAIN, --tagname=TOOLCHAIN" "force to use a specific toolchain" echo echo "Target:" @@ -272,7 +277,7 @@ usage() { print_option_help "--vbios-patch-cloverefi" "activate vbios patch in CloverEFI" print_option_help "--only-sata0" "activate only SATA0 patch" print_option_help "--std-ebda" "ebda offset dont shift to 0x88000" - # print_option_help "--genpage" "dynamically generate page table under ebda" + print_option_help "--genpage" "dynamically generate page table under ebda" print_option_help "--no-usb" "disable USB support" print_option_help "--no-lto" "disable Link Time Optimisation" print_option_help "--no-mcpu" "disable AutoModernCPUQuirks" @@ -305,12 +310,13 @@ checkCmdlineArguments() { local option=$1 shift case "$option" in - -clang | --clang) TOOLCHAIN=CLANG ; CLANG=1 ;; + -llvm | --llvm) TOOLCHAIN=LLVM ; CLANG=1 ;; + -clang | --clang) TOOLCHAIN=XCLANG ; CLANG=1 ;; -xcode5 | --xcode5 ) TOOLCHAIN=XCODE5 ; CLANG=1 ;; -xcode8 | --xcode8 ) TOOLCHAIN=XCODE8 ; CLANG=1 ;; - -xcode14 | --xcode14 ) TOOLCHAIN=XCODE14 ; CLANG=1 ;; - -xcode15 | --xcode15 ) TOOLCHAIN=XCODE15 ; CLANG=1 ;; - -xcode16 | --xcode16 ) TOOLCHAIN=XCODE16 ; CLANG=1 ;; + -xcode14 | --xcode14 ) TOOLCHAIN=XCODE14 ; CLANG=1 ;; + -xcode15 | --xcode15 ) TOOLCHAIN=XCODE15 ; CLANG=1 ;; + -xcode16 | --xcode16 ) TOOLCHAIN=XCODE16 ; CLANG=1 ;; -GCC49 | --GCC49) TOOLCHAIN=GCC49 ;; -gcc49 | --gcc49) TOOLCHAIN=GCC49 ;; -GCC53 | --GCC53) TOOLCHAIN=GCC53 ;; @@ -320,8 +326,8 @@ checkCmdlineArguments() { -gcc152 | --gcc152) TOOLCHAIN=GCC152 ;; -xcode | --xcode ) TOOLCHAIN=XCODE32 ;; -x64 | --x64) - printf "\`%s' is deprecated because Clover is 64 bit only. This message will be removed soon\n" "$option" 1>&2 - sleep 4 +# printf "\`%s' is deprecated because Clover is 64 bit only. This message will be removed soon\n" "$option" 1>&2 +# sleep 4 ;; -mc | --x64-mcp) USE_BIOS_BLOCKIO=1 ;; -clean) TARGETRULE=clean ;; @@ -427,8 +433,8 @@ checkCmdlineArguments() { ## Check tools for the toolchain checkToolchain() { case "$TOOLCHAIN" in - XCODE*) checkXcode ;; - *) ;; + XCLANG|XCODE*) checkXcode ;; + *) export MTOC_PREFIX="${TOOLCHAIN_DIR}/bin/" ;; esac if [[ "$SYSNAME" == Linux ]]; then @@ -458,6 +464,11 @@ checkToolchain() { ./buildnasm.sh fi + if [[ $TOOLCHAIN == XCLANG ]]; then + export XCLANG_PREFIX="/opt/local/bin/" + export XCLANG_BIN="/opt/local/libexec/llvm-22/bin/" + fi + echo "NASM_PREFIX: $NASM_PREFIX" #NASM_VER=`nasm -v | awk '/version/ {print $3}'` @@ -471,25 +482,8 @@ checkToolchain() { # Main build script MainBuildScript() { - checkCmdlineArguments $@ - checkToolchain - - # local repoRev=$(git describe --tags $(git rev-list --tags --max-count=1)) - local repoRev=$(git describe --tags --abbrev=0) - - # - # we are building the same rev as before? - local SkipAutoGen=0 - # - if [[ -f "$CLOVERROOT"/Version.h ]]; then - local builtedRev=$(cat "$CLOVERROOT"/Version.h \ - | grep '#define FIRMWARE_REVISION L' | awk -v FS="(\"|\")" '{print $2}') -# echo "old revision ${builtedRev}" >echo.txt -# echo "new revision ${repoRev}" >>echo.txt - - if [ "${repoRev}" = "${builtedRev}" ]; then SkipAutoGen=1; fi - fi - + # checkCmdlineArguments $@ + # # Setup workspace if it is not set # @@ -523,7 +517,34 @@ MainBuildScript() { # echo "Building from: $WORKSPACE" # fi + checkToolchain +echo "Toolchain=$TOOLCHAIN at $TOOLCHAIN_DIR " + + +export BUILD_DIR="${WORKSPACE}/Build/Clover/${BUILDTARGET}_${TOOLCHAIN}" +export BUILD_DIR_ARCH="${BUILD_DIR}/$TARGETARCH" +echo "BUILD_DIR: $BUILD_DIR" +echo "BUILD_DIR_ARCH: $BUILD_DIR_ARCH" + + # local repoRev=$(git describe --tags $(git rev-list --tags --max-count=1)) + local repoRev=$(git describe --tags --abbrev=0) + + # + # we are building the same rev as before? + local SkipAutoGen=0 + # + if [[ -f "$CLOVERROOT"/Version.h ]]; then + local builtedRev=$(cat "$CLOVERROOT"/Version.h \ + | grep '#define FIRMWARE_REVISION L' | awk -v FS="(\"|\")" '{print $2}') +# echo "old revision ${builtedRev}" >echo.txt +# echo "new revision ${repoRev}" >>echo.txt + + if [ "${repoRev}" = "${builtedRev}" ]; then SkipAutoGen=1; fi + fi + + export CLOVER_PKG_DIR="$CLOVERROOT"/CloverPackage/CloverV2 + echo "CLOVER_PKG_DIR: $CLOVER_PKG_DIR" # Cleaning part of the script if we have told to do it if [[ "$TARGETRULE" == cleanpkg ]]; then @@ -587,7 +608,7 @@ MainBuildScript() { [[ "$ONLYSATA0PATCH" -ne 0 ]] && addEdk2BuildMacro 'ONLY_SATA_0' [[ "$USE_LOW_EBDA" -ne 0 ]] && addEdk2BuildMacro 'USE_LOW_EBDA' [[ -d "$WORKSPACE/MdeModulePkg/Universal/Variable/EmuRuntimeDxe" ]] && addEdk2BuildMacro 'HAVE_LEGACY_EMURUNTIMEDXE' - [[ "$CLANG" -ne 0 ]] && addEdk2BuildMacro 'CLANG' + [[ "$LLVM" -ne 0 ]] && addEdk2BuildMacro 'LLVM' [[ "$ENABLE_MODERN_CPU" -ne 0 ]] && addEdk2BuildMacro 'ENABLE_MODERN_CPU_QUIRKS' local cmd="${EDK2_BUILD_OPTIONS[@]}" @@ -831,7 +852,7 @@ MainPostBuildScript() { # copyBin "$BUILD_DIR_ARCH"/$efi.efi "$CLOVER_PKG_DIR"/EFI/CLOVER/drivers/$DRIVERS_OFF/$DRIVERS_LEGACY/FileVault2/$efi.efi # done - binArray=( ApfsDriverLoader FSInject ) + binArray=( ApfsDriverLoader ) for efi in "${binArray[@]}" do copyBin "$BUILD_DIR_ARCH"/$efi.efi "$CLOVER_PKG_DIR"/EFI/CLOVER/drivers/$DRIVERS_OFF/$DRIVERS_LEGACY/FileSystem/$efi.efi @@ -843,7 +864,7 @@ MainPostBuildScript() { # fi - binArray=( EnglishDxe ) + binArray=( FSInject AudioDxe ) for efi in "${binArray[@]}" do copyBin "$BUILD_DIR_ARCH"/$efi.efi "$CLOVER_PKG_DIR"/EFI/CLOVER/drivers/$DRIVERS_UEFI/$efi.efi @@ -864,7 +885,7 @@ MainPostBuildScript() { fi # drivers64UEFI - binArray=( CsmVideoDxe EmuVariableUefi NvmExpressDxe OsxFatBinaryDrv PartitionDxe AudioDxe ) + binArray=( CsmVideoDxe EmuVariableUefi NvmExpressDxe OsxFatBinaryDrv PartitionDxe ) for efi in "${binArray[@]}" do @@ -938,6 +959,24 @@ export LC_ALL=POSIX startBuildEpoch=$(date -u "+%s") +checkCmdlineArguments $@ + +if [[ "$SYSNAME" == Linux ]]; then + export TOOLCHAIN=GCC152 + TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-/usr} +else + if [[ "$TOOLCHAIN" == XCLANG ]]; then + TOOLCHAIN_DIR=/opt/local + elif [[ -d ~/src/opt/local ]]; then + TOOLCHAIN_DIR=~/src/opt/local + else + TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-"$CLOVERROOT"/toolchain} + fi + export DIR_MAIN=${DIR_MAIN:-"$CLOVERROOT"/toolchain} +fi +export TOOLCHAIN_DIR +echo "TOOLCHAIN_DIR: $TOOLCHAIN_DIR" + # Add toolchain bin directory to the PATH if [[ "$SYSNAME" != Linux ]]; then pathmunge "$TOOLCHAIN_DIR/bin" diff --git a/hebuild.sh b/hebuild.sh index 76fa1da824..9d9948567e 100755 --- a/hebuild.sh +++ b/hebuild.sh @@ -36,7 +36,7 @@ PLATFORMFILE= MODULEFILE= TARGETRULE= -SCRIPT_VERS="2020-04-20" +SCRIPT_VERS="2026-03-01" # Macro M_NOGRUB=0 @@ -54,19 +54,21 @@ export PYTHON_COMMAND=python3 # if building through Xcode, then TOOLCHAIN_DIR is not defined # checking if it is where CloverGrowerPro put it -if [[ "$SYSNAME" == Linux ]]; then - export TOOLCHAIN=GCC152 - TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-/usr} -else - if [[ -d ~/src/opt/local ]]; then - TOOLCHAIN_DIR=~/src/opt/local - else - TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-"$CLOVERROOT"/toolchain} - fi - export DIR_MAIN=${DIR_MAIN:-"$CLOVERROOT"/toolchain} -fi -export TOOLCHAIN_DIR -echo "TOOLCHAIN_DIR: $TOOLCHAIN_DIR" +#if [[ "$SYSNAME" == Linux ]]; then +# export TOOLCHAIN=GCC152 +# TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-/usr} +#else +# if [[ "$TOOLCHAIN" == XCLANG ]]; then +# TOOLCHAIN_DIR=/opt/local +# elif [[ -d ~/src/opt/local ]]; then +# TOOLCHAIN_DIR=~/src/opt/local +# else +# TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-"$CLOVERROOT"/toolchain} +# fi +# export DIR_MAIN=${DIR_MAIN:-"$CLOVERROOT"/toolchain} +#fi +#export TOOLCHAIN_DIR +#echo "TOOLCHAIN_DIR: $TOOLCHAIN_DIR" VBIOSPATCHCLOVEREFI=0 ONLYSATA0PATCH=0 @@ -74,6 +76,7 @@ USE_BIOS_BLOCKIO=0 USE_LOW_EBDA=1 CLANG=0 GENPAGE=0 +LLVM=0 FORCEREBUILD=0 NOBOOTFILES=0 @@ -203,7 +206,7 @@ isNASMGood() { local nasmver=$( "${1}" -v | grep 'NASM version' | awk '{print $3}' ) case "$nasmver" in - 2.12.0[2-9]* | 2.12.[1-9]* | 2.1[3-9]* | 2.[2-9]* | [3-9]* | [1-9][1-9]*) + 2.16.0[2-9]* | 2.16.[1-9]* | 2.1[3-9]* | 2.[2-9]* | [3-9]* | [1-9][1-9]*) result=0;; *) printf "\n\e[1;33mUnknown or unsupported NASM version found at:\n${1}\n\n\e[0m";; @@ -246,8 +249,8 @@ usage() { print_option_help "-v, --version" "print the version information and exit" echo echo "Toolchain:" -# print_option_help "-clang" "use XCode Clang toolchain" -# print_option_help "-llvm" "use LLVM toolchain" + print_option_help "-clang" "use Clang toolchain" + print_option_help "-llvm" "use LLVM toolchain" # print_option_help "-gcc49" "use GCC 4.9 toolchain" print_option_help "-gcc53" "use GCC 5.3 toolchain, including gcc-11" print_option_help "-gcc131" "use GCC 13.1 toolchain, including gcc-14.2" @@ -258,7 +261,7 @@ usage() { print_option_help "-xcode5" "use XCode 5 toolchain, " print_option_help "-xcode8" "use XCode 8 toolchain [Default]" print_option_help "-xcode14" "use XCode 14 toolchain" - print_option_help "-xcode15" "use XCode 15 toolchain" + print_option_help "-xcode16" "use XCode 16-26 toolchain" print_option_help "-t TOOLCHAIN, --tagname=TOOLCHAIN" "force to use a specific toolchain" echo echo "Target:" @@ -278,16 +281,15 @@ usage() { print_option_help "--genpage" "dynamically generate page table under ebda" print_option_help "--no-usb" "disable USB support" print_option_help "--no-lto" "disable Link Time Optimisation" - print_option_help "--ext-pre" "deprecated option" - print_option_help "--ext-co" "deprecated option" - print_option_help "--ext-build" "deprecated option" - print_option_help "--edk2shell " "copy edk2 Shell to EFI tools dir" + print_option_help "--no-mcpu" "disable AutoModernCPUQuirks" + # print_option_help "--edk2shell " "copy edk2 Shell to EFI tools dir" echo echo "build options:" print_option_help "-fr, --force-rebuild" "force rebuild all targets" + print_option_help "-mc, --x64-mcp" " generate boot7 file with drivers using legacy BIOS functions" print_option_help "-nb, --no-bootfiles" "don't generate boot files" echo - echo "Report bugs to https://github.com/CloverHackyColor/CloverBootloader/issues" + echo "Report bugs to https://github.com/CloverHackyColor/CloverBootloader/issues" } # Manage option argument @@ -309,6 +311,7 @@ checkCmdlineArguments() { local option=$1 shift case "$option" in + -llvm | --llvm) TOOLCHAIN=LLVM ; CLANG=1 ;; -clang | --clang) TOOLCHAIN=XCLANG ; CLANG=1 ;; -xcode5 | --xcode5 ) TOOLCHAIN=XCODE5 ; CLANG=1 ;; -xcode8 | --xcode8 ) TOOLCHAIN=XCODE8 ; CLANG=1 ;; @@ -322,6 +325,7 @@ checkCmdlineArguments() { -gcc131 | --gcc131) TOOLCHAIN=GCC131 ;; -gcc151 | --gcc151) TOOLCHAIN=GCC151 ;; -gcc152 | --gcc152) TOOLCHAIN=GCC152 ;; + -xcode | --xcode ) TOOLCHAIN=XCODE32 ;; -x64 | --x64) # printf "\`%s' is deprecated because Clover is 64 bit only. This message will be removed soon\n" "$option" 1>&2 # sleep 4 @@ -334,12 +338,12 @@ checkCmdlineArguments() { # -d | -debug | --debug) BUILDTARGET=DEBUG ;; # -r | -release | --release) BUILDTARGET=RELEASE ;; -a) TARGETARCH=$(argument $option "$@") - printf "\`%s' is deprecated because Clover is 64 bit only. This message will be removed soon\n" "$option" 1>&2 - sleep 4 +# printf "\`%s' is deprecated because Clover is 64 bit only. This message will be removed soon\n" "$option" 1>&2 +# sleep 4 ;; --arch=*) - printf "\`%s' is deprecated because Clover is 64 bit only. This message will be removed soon\n" "$option" 1>&2 - sleep 4 +# printf "\`%s' is deprecated because Clover is 64 bit only. This message will be removed soon\n" "$option" 1>&2 +# sleep 4 ;; -p) PLATFORMFILE=$(argument $option "$@"); shift ;; @@ -461,6 +465,11 @@ checkToolchain() { ./buildnasm.sh fi + if [[ $TOOLCHAIN == XCLANG ]]; then + export XCLANG_PREFIX="/opt/local/bin/" + export XCLANG_BIN="/opt/local/libexec/llvm-22/bin/" + fi + echo "NASM_PREFIX: $NASM_PREFIX" #NASM_VER=`nasm -v | awk '/version/ {print $3}'` @@ -474,25 +483,8 @@ checkToolchain() { # Main build script MainBuildScript() { - checkCmdlineArguments $@ - checkToolchain - - # local repoRev=$(git describe --tags $(git rev-list --tags --max-count=1)) - local repoRev=$(git describe --tags --abbrev=0) - - # - # we are building the same rev as before? - local SkipAutoGen=0 - # - if [[ -f "$CLOVERROOT"/Version.h ]]; then - local builtedRev=$(cat "$CLOVERROOT"/Version.h \ - | grep '#define FIRMWARE_REVISION L' | awk -v FS="(\"|\")" '{print $2}') -# echo "old revision ${builtedRev}" >echo.txt -# echo "new revision ${repoRev}" >>echo.txt - - if [ "${repoRev}" = "${builtedRev}" ]; then SkipAutoGen=1; fi - fi - + # checkCmdlineArguments $@ + # # Setup workspace if it is not set # @@ -521,7 +513,34 @@ MainBuildScript() { echo "Building from: $WORKSPACE" fi + checkToolchain +echo "Toolchain=$TOOLCHAIN at $TOOLCHAIN_DIR " + + +export BUILD_DIR="${WORKSPACE}/Build/Clover/${BUILDTARGET}_${TOOLCHAIN}" +export BUILD_DIR_ARCH="${BUILD_DIR}/$TARGETARCH" +echo "BUILD_DIR: $BUILD_DIR" +echo "BUILD_DIR_ARCH: $BUILD_DIR_ARCH" + + # local repoRev=$(git describe --tags $(git rev-list --tags --max-count=1)) + local repoRev=$(git describe --tags --abbrev=0) + + # + # we are building the same rev as before? + local SkipAutoGen=0 + # + if [[ -f "$CLOVERROOT"/Version.h ]]; then + local builtedRev=$(cat "$CLOVERROOT"/Version.h \ + | grep '#define FIRMWARE_REVISION L' | awk -v FS="(\"|\")" '{print $2}') +# echo "old revision ${builtedRev}" >echo.txt +# echo "new revision ${repoRev}" >>echo.txt + + if [ "${repoRev}" = "${builtedRev}" ]; then SkipAutoGen=1; fi + fi + + export CLOVER_PKG_DIR="$CLOVERROOT"/CloverPackage/CloverV2 + echo "CLOVER_PKG_DIR: $CLOVER_PKG_DIR" # Cleaning part of the script if we have told to do it if [[ "$TARGETRULE" == cleanpkg ]]; then @@ -585,7 +604,7 @@ MainBuildScript() { [[ "$ONLYSATA0PATCH" -ne 0 ]] && addEdk2BuildMacro 'ONLY_SATA_0' [[ "$USE_LOW_EBDA" -ne 0 ]] && addEdk2BuildMacro 'USE_LOW_EBDA' [[ -d "$WORKSPACE/MdeModulePkg/Universal/Variable/EmuRuntimeDxe" ]] && addEdk2BuildMacro 'HAVE_LEGACY_EMURUNTIMEDXE' - [[ "$CLANG" -ne 0 ]] && addEdk2BuildMacro 'CLANG' + [[ "$LLVM" -ne 0 ]] && addEdk2BuildMacro 'LLVM' [[ "$ENABLE_MODERN_CPU" -ne 0 ]] && addEdk2BuildMacro 'ENABLE_MODERN_CPU_QUIRKS' local cmd="${EDK2_BUILD_OPTIONS[@]}" @@ -623,6 +642,25 @@ MainBuildScript() { echo "#define REVISION_STR \"Clover revision: ${clover_revision} $sha1\"" >> "$CLOVERROOT"/Version.h # echo "#define REVISION_STR \"Clover revision: ${clover_revision}\"" >> "$CLOVERROOT"/Version.h + rev_date=$(git show -s --format=%ci $(git rev-parse HEAD)) + echo "#define REVISION_DATE \"${rev_date}\"" >> "$CLOVERROOT"/Version.h + COMMIT_HASH="$(git rev-parse HEAD)" + echo "#define COMMIT_HASH \"$COMMIT_HASH\"" >> "$CLOVERROOT"/Version.h + #build_id_date="$(date +%Y%m%d%H%M%S)" + build_id_date="$(git show -s --format=%cd --date=format:%Y%m%d%H%M%S)" + number_of_commit="$(git rev-list tags/$(git describe --tags --abbrev=0)..HEAD --count)" + if [ $number_of_commit -gt 0 ] + then + build_id="$build_id_date"-"${COMMIT_HASH::7}" + else + build_id="$build_id_date"-"${COMMIT_HASH::7}"-"$clover_revision" + fi + if [[ -n $(git status -s) ]] + then + build_id="$build_id"-dirty + fi + echo "#define BUILD_ID \"$build_id\"" >> "$CLOVERROOT"/Version.h + local clover_build_info="Args: " if [[ -n "$@" ]]; then clover_build_info="${clover_build_info} $@" @@ -712,10 +750,10 @@ MainPostBuildScript() { # fi export BOOTSECTOR_BIN_DIR="$CLOVERROOT"/CloverEFI/BootSector/bin if (( $NOBOOTFILES == 0 )); then - echo Compressing DUETEFIMainFv.FV ... + echo Compressing DUETEFIMainFv.FV ... at "${BUILD_DIR}/FV/DUETEFIMAINFV${TARGETARCH}.Fv" "$BASETOOLS_DIR"/LzmaCompress -e -o "${BUILD_DIR}/FV/DUETEFIMAINFV${TARGETARCH}.z" "${BUILD_DIR}/FV/DUETEFIMAINFV${TARGETARCH}.Fv" - echo Compressing DxeCore.efi ... + echo Compressing DxeCore.efi ... "$BUILD_DIR_ARCH/DxeCore.efi" "$BASETOOLS_DIR"/LzmaCompress -e -o "${BUILD_DIR}/FV/DxeMain${TARGETARCH}.z" "$BUILD_DIR_ARCH/DxeCore.efi" echo Compressing DxeIpl.efi ... @@ -799,7 +837,7 @@ MainPostBuildScript() { # Mandatory drivers echo "Copy Mandatory drivers:" - binArray=( FSInject XhciDxe AudioDxe ) + binArray=( XhciDxe EnglishDxe ) for efi in "${binArray[@]}" do copyBin "$BUILD_DIR_ARCH"/$efi.efi "$CLOVER_PKG_DIR"/EFI/CLOVER/drivers/$DRIVERS_LEGACY/$efi.efi @@ -915,15 +953,44 @@ export LC_ALL=POSIX startBuildEpoch=$(date -u "+%s") +checkCmdlineArguments $@ + +if [[ "$SYSNAME" == Linux ]]; then + export TOOLCHAIN=GCC152 + TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-/usr} +else + if [[ "$TOOLCHAIN" == XCLANG ]]; then + TOOLCHAIN_DIR=/opt/local + elif [[ -d ~/src/opt/local ]]; then + TOOLCHAIN_DIR=~/src/opt/local + else + TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-"$CLOVERROOT"/toolchain} + fi + export DIR_MAIN=${DIR_MAIN:-"$CLOVERROOT"/toolchain} +fi +export TOOLCHAIN_DIR +echo "TOOLCHAIN_DIR: $TOOLCHAIN_DIR" + # Add toolchain bin directory to the PATH if [[ "$SYSNAME" != Linux ]]; then pathmunge "$TOOLCHAIN_DIR/bin" fi MainBuildScript $@ + export BUILD_DIR="${WORKSPACE}/Build/Clover/${BUILDTARGET}_${TOOLCHAIN}" export BUILD_DIR_ARCH="${BUILD_DIR}/$TARGETARCH" +rm -rf ${WORKSPACE}/Build/*.efi +rm -rf ${WORKSPACE}/Build/*.zip + +#extract build_id from efi instead of Version.h to be 100% sure that name correspond to actual content. +dstFileName=CloverX64-"$BUILDTARGET"_"$TOOLCHAIN"-"$(grep -aEo "CloverBuildIdGrepTag: [^[:cntrl:]]*" < "$BUILD_DIR_ARCH"/CLOVERX64.efi | sed "s/CloverBuildIdGrepTag: //")" + +copyBin "$BUILD_DIR_ARCH"/CLOVERX64.efi ${WORKSPACE}/Build/"$dstFileName".efi +rm -f ${WORKSPACE}/Build/"$dstFileName".zip +zip ${WORKSPACE}/Build/"$dstFileName".zip ${WORKSPACE}/Build/"$dstFileName".efi + if [[ -z $MODULEFILE ]] && (( $NOBOOTFILES == 0 )); then MainPostBuildScript else diff --git a/rEFIt_UEFI/include/Guid++.h b/rEFIt_UEFI/include/Guid++.h index 9ef3ae7faf..9320cc0f24 100644 --- a/rEFIt_UEFI/include/Guid++.h +++ b/rEFIt_UEFI/include/Guid++.h @@ -27,7 +27,7 @@ extern "C" { #include "../cpp_foundation/XString.h" -constexpr EFI_GUID operator "" _guid(const char *str, size_t N); +constexpr EFI_GUID operator ""_guid(const char *str, size_t N); /* * Class to replace struct EFI_GUID to bring some syntaxic sugar : initialisation at construction, assignment, == operator, etc. @@ -166,7 +166,7 @@ class GUID }; } - friend constexpr GUID operator "" _guid(const char *str, size_t N); + friend constexpr GUID operator ""_guid(const char *str, size_t N); public: @@ -389,7 +389,7 @@ class GUID }; -constexpr GUID operator "" _guid(const char *str, size_t N) +constexpr GUID operator ""_guid(const char *str, size_t N) { return (!(N == GUID::long_guid_form_length || N == GUID::short_guid_form_length)) ? GUID::parse_guid_error2() From f73788f182be9245b6d008bb438fa86279bfac37 Mon Sep 17 00:00:00 2001 From: YBronst <157227982+YBronst@users.noreply.github.com> Date: Sun, 8 Mar 2026 00:12:46 +0200 Subject: [PATCH 6/6] Translate feature request template to English --- feature_request.md | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/feature_request.md b/feature_request.md index 425d1d728a..eb668d0223 100644 --- a/feature_request.md +++ b/feature_request.md @@ -1,19 +1,20 @@ --- name: Feature Request -about: Sugerir uma ideia para o projeto +about: Suggest an idea for the project title: "[FEATURE] " labels: enhancement -assignees: '' +signatures: '' + --- -**Sua sugestão de melhoria** -Descreva a funcionalidade que gostaria de ver. +**Your Improvement Suggestion** +Describe the functionality you would like to see. -**Motivação** -Por que essa melhoria é importante para você ou para a comunidade? +**Motivation** +Why is this improvement important to you or the community? -**Implementação** -Tem alguma ideia de como implementar? Sinta-se à vontade para sugerir. +**Implementation** +Do you have any ideas on how to implement it? Feel free to suggest them. -**Informações adicionais** -Inclua qualquer outra informação relevante. +**Additional Information** +Include any other relevant information.