Merge pull request #762 from chris1111/GCC152

Update GCC152
This commit is contained in:
chris1111 2025-10-08 20:41:53 -04:00 committed by GitHub
commit 90f9812283
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 86 additions and 18 deletions

View File

@ -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

View File

@ -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
@ -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)
####################################################################################
@ -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

View File

@ -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

View File

@ -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))
@ -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

View File

@ -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
@ -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
@ -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

View File

@ -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 ))
@ -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
@ -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, "
@ -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
@ -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

View File

@ -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"}