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
64 changes: 64 additions & 0 deletions BaseTools/Conf/tools_def.template
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@ 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 GCC161_X64_PREFIX = ENV(GCC161_BIN)

DEFINE UNIX_IASL_BIN = ENV(IASL_PREFIX)iasl
DEFINE WIN_IASL_BIN = ENV(IASL_PREFIX)iasl.exe
Expand Down Expand Up @@ -2134,6 +2135,13 @@ 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)

DEFINE GCC161_X64_CC_FLAGS = DEF(GCC49_X64_CC_FLAGS) -fno-unwind-tables -Wno-misleading-indentation -mms-bitfields -fno-ms-extensions -ffreestanding -fno-exceptions
DEFINE GCC161_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 GCC161_IA32_X64_ASLDLINK_FLAGS = DEF(GCC161_IA32_X64_DLINK_COMMON),--entry,ReferenceAcpiTable,-u,ReferenceAcpiTable
DEFINE GCC161_IA32_X64_DLINK_FLAGS = DEF(GCC161_IA32_X64_DLINK_COMMON),--entry,$(IMAGE_ENTRY_POINT),-u,$(IMAGE_ENTRY_POINT),-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map
DEFINE GCC161_X64_DLINK_FLAGS = DEF(GCC161_IA32_X64_DLINK_FLAGS),-melf_x86_64,-znoexecstack,--oformat=elf64-x86-64,-pie
DEFINE GCC161_ASM_FLAGS = DEF(GCC49_ASM_FLAGS)

####################################################################################
#
# LLVM - This configuration is used to compile under OSX to produce
Expand Down Expand Up @@ -2769,6 +2777,62 @@ 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

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

*_GCC161_*_MAKE_PATH = make

*_GCC161_*_*_DLL = ENV(GCC161_DLL)

*_GCC161_X64_GCCLINK_PREFIX = -Wl,

*_GCC161_*_ASL_PATH = DEF(UNIX_IASL_BIN)

*_GCC161_*_NASM_PATH = ENV(NASM_PREFIX)nasm

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

##################
# GCC161 X64 definitions
##################
*_GCC161_X64_OBJCOPY_PATH = DEF(GCC161_X64_PREFIX)objcopy
*_GCC161_X64_CC_PATH = DEF(GCC161_X64_PREFIX)gcc
*_GCC161_X64_CXX_PATH = DEF(GCC161_X64_PREFIX)g++
*_GCC161_X64_SLINK_PATH = DEF(GCC161_X64_PREFIX)gcc-ar
*_GCC161_X64_DLINK_PATH = DEF(GCC161_X64_PREFIX)gcc
*_GCC161_X64_ASLDLINK_PATH = DEF(GCC161_X64_PREFIX)gcc
*_GCC161_X64_ASM_PATH = DEF(GCC161_X64_PREFIX)gcc
*_GCC161_X64_PP_PATH = DEF(GCC161_X64_PREFIX)gcc
*_GCC161_X64_VFRPP_PATH = DEF(GCC161_X64_PREFIX)gcc
*_GCC161_X64_ASLCC_PATH = DEF(GCC161_X64_PREFIX)gcc
*_GCC161_X64_ASLPP_PATH = DEF(GCC161_X64_PREFIX)gcc
*_GCC161_X64_RC_PATH = DEF(GCC161_X64_PREFIX)objcopy

*_GCC161_X64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m64
*_GCC161_X64_ASLDLINK_FLAGS = DEF(GCC161_IA32_X64_ASLDLINK_FLAGS),-m,elf_x86_64
*_GCC161_X64_ASM_FLAGS = DEF(GCC161_ASM_FLAGS) -m64
*_GCC161_X64_DLINK_FLAGS = DEF(GCC161_X64_DLINK_FLAGS) DEF(GCC161_X64_CC_FLAGS) ENV(GCC161_X64_EXTRA_CC_FLAGS)
*_GCC161_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS)
*_GCC161_X64_OBJCOPY_FLAGS =
*_GCC161_X64_NASM_FLAGS = -f elf64

DEBUG_GCC161_X64_CC_FLAGS = DEF(GCC161_X64_CC_FLAGS) -g3 -O0
RELEASE_GCC161_X64_CC_FLAGS = DEF(GCC161_X64_CC_FLAGS) -Os -Werror
DEBUG_GCC161_X64_CXX_FLAGS = DEF(GCC161_X64_CC_FLAGS) -g3 -O0
RELEASE_GCC161_X64_CXX_FLAGS = DEF(GCC161_X64_CC_FLAGS) -Os -Werror

#
#
# XCODE5 support
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:-GCC152}
MYTOOLCHAIN=${1:-GCC161}
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 GCC152_BIN="$PREFIX/cross/bin/x86_64-clover-linux-gnu-gcc"
if [[ $MYTOOLCHAIN == GCC* ]] && [[ ! -x "${GCC152_BIN}" ]]; then
if [[ $MYTOOLCHAIN == GCC152 ]]; then
local GCC161_BIN="$PREFIX/cross/bin/x86_64-clover-linux-gnu-gcc"
if [[ $MYTOOLCHAIN == GCC* ]] && [[ ! -x "${GCC161_BIN}" ]]; then
if [[ $MYTOOLCHAIN == GCC161 ]]; then
cd "${CLOVERROOT}"
./build_gcc16.sh
else
Expand Down
16 changes: 9 additions & 7 deletions ebuild.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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=GCC152
# export TOOLCHAIN=GCC161
# TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-/usr}
#else
# if [[ "$TOOLCHAIN" == XCLANG ]]; then
Expand Down Expand Up @@ -255,6 +255,7 @@ usage() {
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 "-gcc161" "use GCC 16.1 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 @@ -324,6 +325,7 @@ checkCmdlineArguments() {
-gcc131 | --gcc131) TOOLCHAIN=GCC131 ;;
-gcc151 | --gcc151) TOOLCHAIN=GCC151 ;;
-gcc152 | --gcc152) TOOLCHAIN=GCC152 ;;
-gcc161 | --gcc161) TOOLCHAIN=GCC161 ;;
-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 @@ -438,17 +440,17 @@ checkToolchain() {
esac

if [[ "$SYSNAME" == Linux ]]; then
export GCC152_BIN="$TOOLCHAIN_DIR/bin/"
if [[ ! -x "${GCC152_BIN}gcc" ]]; then
export GCC161_BIN="$TOOLCHAIN_DIR/bin/"
if [[ ! -x "${GCC161_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 GCC152_BIN="$TOOLCHAIN_DIR/cross/bin/x86_64-clover-linux-gnu-"
if [[ $TOOLCHAIN == GCC* ]] && [[ ! -x "${GCC152_BIN}gcc" ]]; then
export GCC161_BIN="$TOOLCHAIN_DIR/cross/bin/x86_64-clover-linux-gnu-"
if [[ $TOOLCHAIN == GCC* ]] && [[ ! -x "${GCC161_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
echo "Build it with the build_gcc16.sh script or define the TOOLCHAIN_DIR variable." >&2
exit 1
fi
fi
Expand Down Expand Up @@ -962,7 +964,7 @@ startBuildEpoch=$(date -u "+%s")
checkCmdlineArguments $@

if [[ "$SYSNAME" == Linux ]]; then
export TOOLCHAIN=GCC152
export TOOLCHAIN=GCC161
TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-/usr}
else
if [[ "$TOOLCHAIN" == XCLANG ]]; then
Expand Down
18 changes: 10 additions & 8 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=GCC152
export TOOLCHAIN=GCC161
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=GCC152
# export TOOLCHAIN=GCC161
# TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-/usr}
#else
# if [[ "$TOOLCHAIN" == XCLANG ]]; then
Expand Down Expand Up @@ -256,6 +256,7 @@ usage() {
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 "-gcc161" "use GCC 16.1 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 @@ -325,6 +326,7 @@ checkCmdlineArguments() {
-gcc131 | --gcc131) TOOLCHAIN=GCC131 ;;
-gcc151 | --gcc151) TOOLCHAIN=GCC151 ;;
-gcc152 | --gcc152) TOOLCHAIN=GCC152 ;;
-gcc161 | --gcc161) TOOLCHAIN=GCC161 ;;
-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 @@ -439,17 +441,17 @@ checkToolchain() {
esac

if [[ "$SYSNAME" == Linux ]]; then
export GCC152_BIN="$TOOLCHAIN_DIR/bin/"
if [[ ! -x "${GCC152_BIN}gcc" ]]; then
export GCC161_BIN="$TOOLCHAIN_DIR/bin/"
if [[ ! -x "${GCC161_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 GCC152_BIN="$TOOLCHAIN_DIR/cross/bin/x86_64-clover-linux-gnu-"
if [[ $TOOLCHAIN == GCC* ]] && [[ ! -x "${GCC152_BIN}gcc" ]]; then
export GCC161_BIN="$TOOLCHAIN_DIR/cross/bin/x86_64-clover-linux-gnu-"
if [[ $TOOLCHAIN == GCC* ]] && [[ ! -x "${GCC161_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
echo "Build it with the build_gcc16.sh script or define the TOOLCHAIN_DIR variable." >&2
exit 1
fi
fi
Expand Down Expand Up @@ -956,7 +958,7 @@ startBuildEpoch=$(date -u "+%s")
checkCmdlineArguments $@

if [[ "$SYSNAME" == Linux ]]; then
export TOOLCHAIN=GCC152
export TOOLCHAIN=GCC161
TOOLCHAIN_DIR=${TOOLCHAIN_DIR:-/usr}
else
if [[ "$TOOLCHAIN" == XCLANG ]]; then
Expand Down
4 changes: 2 additions & 2 deletions makeall.sh
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#!/bin/bash

./ebuild.sh -gcc152 -fr -mc --no-usb -D NO_GRUB_DRIVERS_EMBEDDED
./ebuild.sh -gcc152 -fr -D NO_GRUB_DRIVERS_EMBEDDED
./ebuild.sh -gcc161 -fr -mc --no-usb -D NO_GRUB_DRIVERS_EMBEDDED
./ebuild.sh -gcc161 -fr -D NO_GRUB_DRIVERS_EMBEDDED
cd CloverPackage
./makepkg >log.txt
./makeiso
Expand Down
4 changes: 2 additions & 2 deletions xbuildme
Original file line number Diff line number Diff line change
Expand Up @@ -84,12 +84,12 @@ fi
# ====== Display Menu ======
echo -e "${COL_GREEN} ---------------------------------------------------------------------------------"
echo -e "${COL_GREEN} 🍀 Clover r${revision} ${COL_WHITE}(SHA: 64d434947)"
echo -e "${COL_WHITE} Default TOOLCHAIN: ${COL_CYAN}GCC152${COL_WHITE}"
echo -e "${COL_WHITE} Default TOOLCHAIN: ${COL_CYAN}GCC161${COL_WHITE}"
echo -e "${COL_WHITE} Switch to ${COL_CYAN}XCODE${COL_WHITE} select: ${COL_CYAN}build (with XCode)"
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:-GCC152}
declare -r MYTOOLCHAIN=${1:-GCC161}

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

Expand Down
Loading