Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
- name: Upload to Artifacts
uses: actions/upload-artifact@v4
with:
name: Clover-GCC-15.1.0-${{ env.GIT_SHA }}
name: Clover-GCC-15.2.0-${{ env.GIT_SHA }}
path: |
*.7z
CloverV2*.zip
Expand Down
65 changes: 65 additions & 0 deletions BaseTools/Conf/tools_def.template
Original file line number Diff line number Diff line change
Expand Up @@ -133,6 +133,7 @@ DEFINE GCC53_IA32_PREFIX = ENV(GCC53_BIN)
DEFINE GCC53_X64_PREFIX = ENV(GCC53_BIN)
DEFINE GCC131_X64_PREFIX = ENV(GCC131_BIN)
DEFINE GCC151_X64_PREFIX = ENV(GCC151_BIN)
DEFINE GCC152_X64_PREFIX = ENV(GCC152_BIN)

DEFINE UNIX_IASL_BIN = ENV(IASL_PREFIX)iasl
DEFINE WIN_IASL_BIN = ENV(IASL_PREFIX)iasl.exe
Expand Down Expand Up @@ -2124,6 +2125,13 @@ DEFINE GCC151_IA32_X64_DLINK_FLAGS = DEF(GCC151_IA32_X64_DLINK_COMMON),--entr
DEFINE GCC151_X64_DLINK_FLAGS = DEF(GCC151_IA32_X64_DLINK_FLAGS),-melf_x86_64,-znoexecstack,--oformat=elf64-x86-64,-pie
DEFINE GCC151_ASM_FLAGS = DEF(GCC49_ASM_FLAGS)

DEFINE GCC152_X64_CC_FLAGS = DEF(GCC49_X64_CC_FLAGS) -fno-unwind-tables -Wno-incompatible-ms-struct -Wno-misleading-indentation -mms-bitfields -fno-ms-extensions -ffreestanding -fno-exceptions
DEFINE GCC152_IA32_X64_DLINK_COMMON = -nostdlib -Wl,--no-warn-rwx-segments,--gc-sections,-n,-q,--gc-sections,-z,common-page-size=0x40,--defsym=PECOFF_HEADER_SIZE=0x240,--script=$(EDK_TOOLS_PATH)/Scripts/GccBase.lds
DEFINE GCC152_IA32_X64_ASLDLINK_FLAGS = DEF(GCC152_IA32_X64_DLINK_COMMON),--entry,ReferenceAcpiTable,-u,ReferenceAcpiTable
DEFINE GCC152_IA32_X64_DLINK_FLAGS = DEF(GCC152_IA32_X64_DLINK_COMMON),--entry,$(IMAGE_ENTRY_POINT),-u,$(IMAGE_ENTRY_POINT),-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map
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)



####################################################################################
Expand Down Expand Up @@ -2641,6 +2649,63 @@ RELEASE_GCC151_X64_CC_FLAGS = DEF(GCC151_X64_CC_FLAGS) -Os -Werror
DEBUG_GCC151_X64_CXX_FLAGS = DEF(GCC151_X64_CC_FLAGS) -g3 -O0
RELEASE_GCC151_X64_CXX_FLAGS = DEF(GCC151_X64_CC_FLAGS) -Os -Werror


####################################################################################
#
# GCC 15.2 - This configuration is used to compile under Linux/MacOSX to produce
# PE/COFF binaries using GCC 15.2.
#
####################################################################################
*_GCC152_*_*_FAMILY = GCC
*_GCC152_*_*_BUILDRULEORDER = nasm S s

*_GCC152_*_MAKE_PATH = make

*_GCC152_*_*_DLL = ENV(GCC152_DLL)

*_GCC152_X64_GCCLINK_PREFIX = -Wl,

*_GCC152_*_ASL_PATH = DEF(UNIX_IASL_BIN)

*_GCC152_*_NASM_PATH = ENV(NASM_PREFIX)nasm

*_GCC152_*_PP_FLAGS = DEF(GCC_PP_FLAGS)
*_GCC152_*_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS)
*_GCC152_*_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS)
*_GCC152_*_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS)
*_GCC152_*_APP_FLAGS =
*_GCC152_*_ASL_FLAGS = DEF(IASL_FLAGS)
*_GCC152_*_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS)

##################
# GCC152 X64 definitions
##################
*_GCC152_X64_OBJCOPY_PATH = DEF(GCC152_X64_PREFIX)objcopy
*_GCC152_X64_CC_PATH = DEF(GCC152_X64_PREFIX)gcc
*_GCC152_X64_CXX_PATH = DEF(GCC152_X64_PREFIX)g++
*_GCC152_X64_SLINK_PATH = DEF(GCC152_X64_PREFIX)gcc-ar
*_GCC152_X64_DLINK_PATH = DEF(GCC152_X64_PREFIX)gcc
*_GCC152_X64_ASLDLINK_PATH = DEF(GCC152_X64_PREFIX)gcc
*_GCC152_X64_ASM_PATH = DEF(GCC152_X64_PREFIX)gcc
*_GCC152_X64_PP_PATH = DEF(GCC152_X64_PREFIX)gcc
*_GCC152_X64_VFRPP_PATH = DEF(GCC152_X64_PREFIX)gcc
*_GCC152_X64_ASLCC_PATH = DEF(GCC152_X64_PREFIX)gcc
*_GCC152_X64_ASLPP_PATH = DEF(GCC152_X64_PREFIX)gcc
*_GCC152_X64_RC_PATH = DEF(GCC152_X64_PREFIX)objcopy

*_GCC152_X64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m64
*_GCC152_X64_ASLDLINK_FLAGS = DEF(GCC48_IA32_X64_ASLDLINK_FLAGS),-m,elf_x86_64
*_GCC152_X64_ASM_FLAGS = DEF(GCC152_ASM_FLAGS) -m64
*_GCC152_X64_DLINK_FLAGS = DEF(GCC152_X64_DLINK_FLAGS) DEF(GCC152_X64_CC_FLAGS) ENV(GCC152_X64_EXTRA_CC_FLAGS)
*_GCC152_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS)
*_GCC152_X64_OBJCOPY_FLAGS =
*_GCC152_X64_NASM_FLAGS = -f elf64

DEBUG_GCC152_X64_CC_FLAGS = DEF(GCC152_X64_CC_FLAGS) -g3 -O0
RELEASE_GCC152_X64_CC_FLAGS = DEF(GCC152_X64_CC_FLAGS) -Os -Werror
DEBUG_GCC152_X64_CXX_FLAGS = DEF(GCC152_X64_CC_FLAGS) -g3 -O0
RELEASE_GCC152_X64_CXX_FLAGS = DEF(GCC152_X64_CC_FLAGS) -Os -Werror

#
#
# XCODE5 support
Expand Down
2 changes: 1 addition & 1 deletion build_gcc15.sh
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ set -u # exit with error if unbound variables
# here we can change source versions of tools
#
export BINUTILS_VERSION=${BINUTILS_VERSION:-binutils-2.45} #2.42
export GCC_VERSION=${GCC_VERSION:-15.1.0}
export GCC_VERSION=${GCC_VERSION:-15.2.0}

# Version of libraries are from ./contrib/download_prerequisites in gcc source directory
export GMP_VERSION=${GMP_VERSION:-gmp-6.3.0} #6.2.1
Expand Down
8 changes: 4 additions & 4 deletions buildme
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ fi
cd "$(dirname $([ -L $0 ] && readlink $0 || echo $0))"
declare -r CLOVERROOT="$PWD"
declare -r SYSNAME="$(uname)"
MYTOOLCHAIN=${1:-GCC151}
MYTOOLCHAIN=${1:-GCC152}
revision=$(git describe --tags $(git rev-list --tags --max-count=1))
lsha1="not a git repo"
pyversion=$(echo $COL_CYAN"Current Python version: "$COL_WHITE$($(which python3) --version))
Expand Down Expand Up @@ -122,9 +122,9 @@ checkTools() {
if [[ "$SYSNAME" == Darwin ]]; then
checkXCODE
exportPaths
local GCC151_BIN="$PREFIX/cross/bin/x86_64-clover-linux-gnu-gcc"
if [[ $MYTOOLCHAIN == GCC* ]] && [[ ! -x "${GCC151_BIN}" ]]; then
if [[ $MYTOOLCHAIN == GCC151 ]]; then
local GCC152_BIN="$PREFIX/cross/bin/x86_64-clover-linux-gnu-gcc"
if [[ $MYTOOLCHAIN == GCC* ]] && [[ ! -x "${GCC152_BIN}" ]]; then
if [[ $MYTOOLCHAIN == GCC152 ]]; then
cd "${CLOVERROOT}"
./build_gcc15.sh
else
Expand Down
11 changes: 6 additions & 5 deletions ebuild.sh
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ 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=GCC151
export TOOLCHAIN=GCC152
TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-/usr}
else
if [[ -d ~/src/opt/local ]]; then
Expand Down Expand Up @@ -315,6 +315,7 @@ checkCmdlineArguments() {
-gcc53 | --gcc53) TOOLCHAIN=GCC53 ;;
-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
Expand Down Expand Up @@ -426,15 +427,15 @@ checkToolchain() {
esac

if [[ "$SYSNAME" == Linux ]]; then
export GCC151_BIN="$TOOLCHAIN_DIR/bin/"
if [[ ! -x "${GCC151_BIN}gcc" ]]; then
export GCC152_BIN="$TOOLCHAIN_DIR/bin/"
if [[ ! -x "${GCC152_BIN}gcc" ]]; then
echo "No clover toolchain for Linux found !" >&2
echo "Install on your system or define the TOOLCHAIN_DIR variable." >&2
exit 1
fi
else
export GCC151_BIN="$TOOLCHAIN_DIR/cross/bin/x86_64-clover-linux-gnu-"
if [[ $TOOLCHAIN == GCC* ]] && [[ ! -x "${GCC151_BIN}gcc" ]]; then
export GCC152_BIN="$TOOLCHAIN_DIR/cross/bin/x86_64-clover-linux-gnu-"
if [[ $TOOLCHAIN == GCC* ]] && [[ ! -x "${GCC152_BIN}gcc" ]]; then
echo "No clover toolchain found !" >&2
echo "Build it with the build_gcc15.sh script or define the TOOLCHAIN_DIR variable." >&2
exit 1
Expand Down
14 changes: 8 additions & 6 deletions hebuild.sh
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ M_NOGRUB=0
M_APPLEHFS=0

# Default values
export TOOLCHAIN=GCC151
export TOOLCHAIN=GCC152
export TARGETARCH=X64
export BUILDTARGET=RELEASE
export BUILDTHREADS=$(( NUMBER_OF_CPUS + 1 ))
Expand All @@ -55,7 +55,7 @@ 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=GCC151
export TOOLCHAIN=GCC152
TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-/usr}
else
if [[ -d ~/src/opt/local ]]; then
Expand Down Expand Up @@ -251,6 +251,7 @@ usage() {
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, "
Expand Down Expand Up @@ -319,6 +320,7 @@ checkCmdlineArguments() {
-gcc53 | --gcc53) TOOLCHAIN=GCC53 ;;
-gcc131 | --gcc131) TOOLCHAIN=GCC131 ;;
-gcc151 | --gcc151) TOOLCHAIN=GCC151 ;;
-gcc152 | --gcc152) TOOLCHAIN=GCC152 ;;
-x64 | --x64)
# printf "\`%s' is deprecated because Clover is 64 bit only. This message will be removed soon\n" "$option" 1>&2
# sleep 4
Expand Down Expand Up @@ -429,15 +431,15 @@ checkToolchain() {
esac

if [[ "$SYSNAME" == Linux ]]; then
export GCC151_BIN="$TOOLCHAIN_DIR/bin/"
if [[ ! -x "${GCC151_BIN}gcc" ]]; then
export GCC152_BIN="$TOOLCHAIN_DIR/bin/"
if [[ ! -x "${GCC152_BIN}gcc" ]]; then
echo "No clover toolchain for Linux found !" >&2
echo "Install on your system or define the TOOLCHAIN_DIR variable." >&2
exit 1
fi
else
export GCC151_BIN="$TOOLCHAIN_DIR/cross/bin/x86_64-clover-linux-gnu-"
if [[ $TOOLCHAIN == GCC* ]] && [[ ! -x "${GCC151_BIN}gcc" ]]; then
export GCC152_BIN="$TOOLCHAIN_DIR/cross/bin/x86_64-clover-linux-gnu-"
if [[ $TOOLCHAIN == GCC* ]] && [[ ! -x "${GCC152_BIN}gcc" ]]; then
echo "No clover toolchain found !" >&2
echo "Build it with the build_gcc15.sh script or define the TOOLCHAIN_DIR variable." >&2
exit 1
Expand Down
2 changes: 1 addition & 1 deletion xbuildme
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ echo -e "${COL_WHITE} Switch to ${COL_CYAN}XCODE${COL_WHITE}
echo -e "${COL_WHITE} Depending on your ${COL_CYAN}XCODE version${COL_WHITE} the Toolset will be ${COL_CYAN}automatically chosen"
echo -e "${COL_GREEN} ---------------------- ${COL_CYAN}Current Python version: ${COL_WHITE}Python 3.13.7${COL_GREEN} --------------------${COL_RESET}"
declare -r CLOVERROOT="$PWD"
declare -r MYTOOLCHAIN=${1:-GCC151}
declare -r MYTOOLCHAIN=${1:-GCC152}

TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-"$CLOVERROOT/toolchain"}

Expand Down
Loading