public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
* [edk2-devel] RFC: Updating IA32/X64 cross-compilation to work like other archs
@ 2024-10-18  2:21 Rebecca Cran
  0 siblings, 0 replies; only message in thread
From: Rebecca Cran @ 2024-10-18  2:21 UTC (permalink / raw)
  To: devel@edk2.groups.io, Liming Gao, Bob Feng, Yuwei Chen,
	Andrew Fish, Leif Lindholm, Michael D Kinney

[-- Attachment #1: Type: text/plain, Size: 1069 bytes --]

Cross-compilation to platforms other than IA32 and X64 work by setting 
an environment variable such as GCC_AARCH64_PREFIX that contains the 
path/name of the cross-compiler without the "gcc", "objcopy" etc. suffix.

On IA32 and X64 however, the environment variable GCC_BIN has been used 
instead. With fast AArch64 and other non-x86 platforms now being 
available, I'd like to propose updating IA32 and X64 to work the same as 
other platforms by using e.g. GCC_IA32_PREFIX and GCC_X64_PREFIX.


I've attached a proposed patch: I'm attaching it here to gather feedback 
before opening a PR since it does change how builds are done and I want 
to check if it's something people want to proceed with.


  Rebecca


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#120630): https://edk2.groups.io/g/devel/message/120630
Mute This Topic: https://groups.io/mt/109076070/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



[-- Attachment #2: x86-x64-basetools-cross-compilation.diff --]
[-- Type: text/x-patch, Size: 18449 bytes --]

diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/tools_def.template
index 13cf0f91b625..ca2a404230b6 100755
--- a/BaseTools/Conf/tools_def.template
+++ b/BaseTools/Conf/tools_def.template
@@ -84,19 +84,6 @@ DEFINE CYGWIN_BIN              = c:/cygwin/bin
 DEFINE CYGWIN_BINIA32          = c:/cygwin/opt/tiano/i386-tiano-pe/i386-tiano-pe/bin/
 DEFINE CYGWIN_BINX64           = c:/cygwin/opt/tiano/x86_64-pc-mingw64/x86_64-pc-mingw64/bin/
 
-DEFINE GCC48_IA32_PREFIX       = ENV(GCC48_BIN)
-DEFINE GCC48_X64_PREFIX        = ENV(GCC48_BIN)
-
-DEFINE GCC49_IA32_PREFIX       = ENV(GCC49_BIN)
-DEFINE GCC49_X64_PREFIX        = ENV(GCC49_BIN)
-
-DEFINE GCCNOLTO_IA32_PREFIX    = ENV(GCCNOLTO_BIN)
-DEFINE GCCNOLTO_X64_PREFIX     = ENV(GCCNOLTO_BIN)
-
-DEFINE GCC5_IA32_PREFIX        = ENV(GCC5_BIN)
-DEFINE GCC5_X64_PREFIX         = ENV(GCC5_BIN)
-DEFINE GCC_IA32_PREFIX         = ENV(GCC_BIN)
-DEFINE GCC_X64_PREFIX          = ENV(GCC_BIN)
 DEFINE GCC_HOST_PREFIX         = ENV(GCC_HOST_BIN)
 
 DEFINE UNIX_IASL_BIN           = ENV(IASL_PREFIX)iasl
@@ -1050,17 +1037,17 @@ DEFINE GCC5_LOONGARCH64_PP_FLAGS           = -mabi=lp64d -march=loongarch64 DEF(
 ##################
 # GCC48 IA32 definitions
 ##################
-*_GCC48_IA32_OBJCOPY_PATH         = DEF(GCC48_IA32_PREFIX)objcopy
-*_GCC48_IA32_CC_PATH              = DEF(GCC48_IA32_PREFIX)gcc
-*_GCC48_IA32_SLINK_PATH           = DEF(GCC48_IA32_PREFIX)ar
-*_GCC48_IA32_DLINK_PATH           = DEF(GCC48_IA32_PREFIX)gcc
-*_GCC48_IA32_ASLDLINK_PATH        = DEF(GCC48_IA32_PREFIX)gcc
-*_GCC48_IA32_ASM_PATH             = DEF(GCC48_IA32_PREFIX)gcc
-*_GCC48_IA32_PP_PATH              = DEF(GCC48_IA32_PREFIX)gcc
-*_GCC48_IA32_VFRPP_PATH           = DEF(GCC48_IA32_PREFIX)gcc
-*_GCC48_IA32_ASLCC_PATH           = DEF(GCC48_IA32_PREFIX)gcc
-*_GCC48_IA32_ASLPP_PATH           = DEF(GCC48_IA32_PREFIX)gcc
-*_GCC48_IA32_RC_PATH              = DEF(GCC48_IA32_PREFIX)objcopy
+*_GCC48_IA32_OBJCOPY_PATH         = ENV(GCC48_IA32_PREFIX)objcopy
+*_GCC48_IA32_CC_PATH              = ENV(GCC48_IA32_PREFIX)gcc
+*_GCC48_IA32_SLINK_PATH           = ENV(GCC48_IA32_PREFIX)ar
+*_GCC48_IA32_DLINK_PATH           = ENV(GCC48_IA32_PREFIX)gcc
+*_GCC48_IA32_ASLDLINK_PATH        = ENV(GCC48_IA32_PREFIX)gcc
+*_GCC48_IA32_ASM_PATH             = ENV(GCC48_IA32_PREFIX)gcc
+*_GCC48_IA32_PP_PATH              = ENV(GCC48_IA32_PREFIX)gcc
+*_GCC48_IA32_VFRPP_PATH           = ENV(GCC48_IA32_PREFIX)gcc
+*_GCC48_IA32_ASLCC_PATH           = ENV(GCC48_IA32_PREFIX)gcc
+*_GCC48_IA32_ASLPP_PATH           = ENV(GCC48_IA32_PREFIX)gcc
+*_GCC48_IA32_RC_PATH              = ENV(GCC48_IA32_PREFIX)objcopy
 
 *_GCC48_IA32_ASLCC_FLAGS          = DEF(GCC48_ASLCC_FLAGS) -m32
 *_GCC48_IA32_ASLDLINK_FLAGS       = DEF(GCC48_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386
@@ -1078,17 +1065,17 @@ RELEASE_GCC48_IA32_CC_FLAGS       = DEF(GCC48_IA32_CC_FLAGS) -Wno-unused-but-set
 ##################
 # GCC48 X64 definitions
 ##################
-*_GCC48_X64_OBJCOPY_PATH         = DEF(GCC48_X64_PREFIX)objcopy
-*_GCC48_X64_CC_PATH              = DEF(GCC48_X64_PREFIX)gcc
-*_GCC48_X64_SLINK_PATH           = DEF(GCC48_X64_PREFIX)ar
-*_GCC48_X64_DLINK_PATH           = DEF(GCC48_X64_PREFIX)gcc
-*_GCC48_X64_ASLDLINK_PATH        = DEF(GCC48_X64_PREFIX)gcc
-*_GCC48_X64_ASM_PATH             = DEF(GCC48_X64_PREFIX)gcc
-*_GCC48_X64_PP_PATH              = DEF(GCC48_X64_PREFIX)gcc
-*_GCC48_X64_VFRPP_PATH           = DEF(GCC48_X64_PREFIX)gcc
-*_GCC48_X64_ASLCC_PATH           = DEF(GCC48_X64_PREFIX)gcc
-*_GCC48_X64_ASLPP_PATH           = DEF(GCC48_X64_PREFIX)gcc
-*_GCC48_X64_RC_PATH              = DEF(GCC48_X64_PREFIX)objcopy
+*_GCC48_X64_OBJCOPY_PATH         = ENV(GCC48_X64_PREFIX)objcopy
+*_GCC48_X64_CC_PATH              = ENV(GCC48_X64_PREFIX)gcc
+*_GCC48_X64_SLINK_PATH           = ENV(GCC48_X64_PREFIX)ar
+*_GCC48_X64_DLINK_PATH           = ENV(GCC48_X64_PREFIX)gcc
+*_GCC48_X64_ASLDLINK_PATH        = ENV(GCC48_X64_PREFIX)gcc
+*_GCC48_X64_ASM_PATH             = ENV(GCC48_X64_PREFIX)gcc
+*_GCC48_X64_PP_PATH              = ENV(GCC48_X64_PREFIX)gcc
+*_GCC48_X64_VFRPP_PATH           = ENV(GCC48_X64_PREFIX)gcc
+*_GCC48_X64_ASLCC_PATH           = ENV(GCC48_X64_PREFIX)gcc
+*_GCC48_X64_ASLPP_PATH           = ENV(GCC48_X64_PREFIX)gcc
+*_GCC48_X64_RC_PATH              = ENV(GCC48_X64_PREFIX)objcopy
 
 *_GCC48_X64_ASLCC_FLAGS          = DEF(GCC48_ASLCC_FLAGS) -m64
 *_GCC48_X64_ASLDLINK_FLAGS       = DEF(GCC48_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64
@@ -1187,17 +1174,17 @@ RELEASE_GCC48_AARCH64_CC_FLAGS   = DEF(GCC48_AARCH64_CC_FLAGS) -Wno-unused-but-s
 ##################
 # GCC49 IA32 definitions
 ##################
-*_GCC49_IA32_OBJCOPY_PATH         = DEF(GCC49_IA32_PREFIX)objcopy
-*_GCC49_IA32_CC_PATH              = DEF(GCC49_IA32_PREFIX)gcc
-*_GCC49_IA32_SLINK_PATH           = DEF(GCC49_IA32_PREFIX)ar
-*_GCC49_IA32_DLINK_PATH           = DEF(GCC49_IA32_PREFIX)gcc
-*_GCC49_IA32_ASLDLINK_PATH        = DEF(GCC49_IA32_PREFIX)gcc
-*_GCC49_IA32_ASM_PATH             = DEF(GCC49_IA32_PREFIX)gcc
-*_GCC49_IA32_PP_PATH              = DEF(GCC49_IA32_PREFIX)gcc
-*_GCC49_IA32_VFRPP_PATH           = DEF(GCC49_IA32_PREFIX)gcc
-*_GCC49_IA32_ASLCC_PATH           = DEF(GCC49_IA32_PREFIX)gcc
-*_GCC49_IA32_ASLPP_PATH           = DEF(GCC49_IA32_PREFIX)gcc
-*_GCC49_IA32_RC_PATH              = DEF(GCC49_IA32_PREFIX)objcopy
+*_GCC49_IA32_OBJCOPY_PATH         = ENV(GCC49_IA32_PREFIX)objcopy
+*_GCC49_IA32_CC_PATH              = ENV(GCC49_IA32_PREFIX)gcc
+*_GCC49_IA32_SLINK_PATH           = ENV(GCC49_IA32_PREFIX)ar
+*_GCC49_IA32_DLINK_PATH           = ENV(GCC49_IA32_PREFIX)gcc
+*_GCC49_IA32_ASLDLINK_PATH        = ENV(GCC49_IA32_PREFIX)gcc
+*_GCC49_IA32_ASM_PATH             = ENV(GCC49_IA32_PREFIX)gcc
+*_GCC49_IA32_PP_PATH              = ENV(GCC49_IA32_PREFIX)gcc
+*_GCC49_IA32_VFRPP_PATH           = ENV(GCC49_IA32_PREFIX)gcc
+*_GCC49_IA32_ASLCC_PATH           = ENV(GCC49_IA32_PREFIX)gcc
+*_GCC49_IA32_ASLPP_PATH           = ENV(GCC49_IA32_PREFIX)gcc
+*_GCC49_IA32_RC_PATH              = ENV(GCC49_IA32_PREFIX)objcopy
 
 *_GCC49_IA32_ASLCC_FLAGS          = DEF(GCC49_ASLCC_FLAGS) -m32
 *_GCC49_IA32_ASLDLINK_FLAGS       = DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386
@@ -1215,17 +1202,17 @@ RELEASE_GCC49_IA32_CC_FLAGS       = DEF(GCC49_IA32_CC_FLAGS) -Wno-unused-but-set
 ##################
 # GCC49 X64 definitions
 ##################
-*_GCC49_X64_OBJCOPY_PATH         = DEF(GCC49_X64_PREFIX)objcopy
-*_GCC49_X64_CC_PATH              = DEF(GCC49_X64_PREFIX)gcc
-*_GCC49_X64_SLINK_PATH           = DEF(GCC49_X64_PREFIX)ar
-*_GCC49_X64_DLINK_PATH           = DEF(GCC49_X64_PREFIX)gcc
-*_GCC49_X64_ASLDLINK_PATH        = DEF(GCC49_X64_PREFIX)gcc
-*_GCC49_X64_ASM_PATH             = DEF(GCC49_X64_PREFIX)gcc
-*_GCC49_X64_PP_PATH              = DEF(GCC49_X64_PREFIX)gcc
-*_GCC49_X64_VFRPP_PATH           = DEF(GCC49_X64_PREFIX)gcc
-*_GCC49_X64_ASLCC_PATH           = DEF(GCC49_X64_PREFIX)gcc
-*_GCC49_X64_ASLPP_PATH           = DEF(GCC49_X64_PREFIX)gcc
-*_GCC49_X64_RC_PATH              = DEF(GCC49_X64_PREFIX)objcopy
+*_GCC49_X64_OBJCOPY_PATH         = ENV(GCC49_X64_PREFIX)objcopy
+*_GCC49_X64_CC_PATH              = ENV(GCC49_X64_PREFIX)gcc
+*_GCC49_X64_SLINK_PATH           = ENV(GCC49_X64_PREFIX)ar
+*_GCC49_X64_DLINK_PATH           = ENV(GCC49_X64_PREFIX)gcc
+*_GCC49_X64_ASLDLINK_PATH        = ENV(GCC49_X64_PREFIX)gcc
+*_GCC49_X64_ASM_PATH             = ENV(GCC49_X64_PREFIX)gcc
+*_GCC49_X64_PP_PATH              = ENV(GCC49_X64_PREFIX)gcc
+*_GCC49_X64_VFRPP_PATH           = ENV(GCC49_X64_PREFIX)gcc
+*_GCC49_X64_ASLCC_PATH           = ENV(GCC49_X64_PREFIX)gcc
+*_GCC49_X64_ASLPP_PATH           = ENV(GCC49_X64_PREFIX)gcc
+*_GCC49_X64_RC_PATH              = ENV(GCC49_X64_PREFIX)objcopy
 
 *_GCC49_X64_ASLCC_FLAGS          = DEF(GCC49_ASLCC_FLAGS) -m64
 *_GCC49_X64_ASLDLINK_FLAGS       = DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64
@@ -1331,17 +1318,17 @@ RELEASE_GCC49_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20
 ##################
 # GCCNOLTO IA32 definitions
 ##################
-*_GCCNOLTO_IA32_OBJCOPY_PATH         = DEF(GCCNOLTO_IA32_PREFIX)objcopy
-*_GCCNOLTO_IA32_CC_PATH              = DEF(GCCNOLTO_IA32_PREFIX)gcc
-*_GCCNOLTO_IA32_SLINK_PATH           = DEF(GCCNOLTO_IA32_PREFIX)ar
-*_GCCNOLTO_IA32_DLINK_PATH           = DEF(GCCNOLTO_IA32_PREFIX)gcc
-*_GCCNOLTO_IA32_ASLDLINK_PATH        = DEF(GCCNOLTO_IA32_PREFIX)gcc
-*_GCCNOLTO_IA32_ASM_PATH             = DEF(GCCNOLTO_IA32_PREFIX)gcc
-*_GCCNOLTO_IA32_PP_PATH              = DEF(GCCNOLTO_IA32_PREFIX)gcc
-*_GCCNOLTO_IA32_VFRPP_PATH           = DEF(GCCNOLTO_IA32_PREFIX)gcc
-*_GCCNOLTO_IA32_ASLCC_PATH           = DEF(GCCNOLTO_IA32_PREFIX)gcc
-*_GCCNOLTO_IA32_ASLPP_PATH           = DEF(GCCNOLTO_IA32_PREFIX)gcc
-*_GCCNOLTO_IA32_RC_PATH              = DEF(GCCNOLTO_IA32_PREFIX)objcopy
+*_GCCNOLTO_IA32_OBJCOPY_PATH         = ENV(GCCNOLTO_IA32_PREFIX)objcopy
+*_GCCNOLTO_IA32_CC_PATH              = ENV(GCCNOLTO_IA32_PREFIX)gcc
+*_GCCNOLTO_IA32_SLINK_PATH           = ENV(GCCNOLTO_IA32_PREFIX)ar
+*_GCCNOLTO_IA32_DLINK_PATH           = ENV(GCCNOLTO_IA32_PREFIX)gcc
+*_GCCNOLTO_IA32_ASLDLINK_PATH        = ENV(GCCNOLTO_IA32_PREFIX)gcc
+*_GCCNOLTO_IA32_ASM_PATH             = ENV(GCCNOLTO_IA32_PREFIX)gcc
+*_GCCNOLTO_IA32_PP_PATH              = ENV(GCCNOLTO_IA32_PREFIX)gcc
+*_GCCNOLTO_IA32_VFRPP_PATH           = ENV(GCCNOLTO_IA32_PREFIX)gcc
+*_GCCNOLTO_IA32_ASLCC_PATH           = ENV(GCCNOLTO_IA32_PREFIX)gcc
+*_GCCNOLTO_IA32_ASLPP_PATH           = ENV(GCCNOLTO_IA32_PREFIX)gcc
+*_GCCNOLTO_IA32_RC_PATH              = ENV(GCCNOLTO_IA32_PREFIX)objcopy
 
 *_GCCNOLTO_IA32_ASLCC_FLAGS          = DEF(GCC49_ASLCC_FLAGS) -m32
 *_GCCNOLTO_IA32_ASLDLINK_FLAGS       = DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386
@@ -1359,17 +1346,17 @@ RELEASE_GCCNOLTO_IA32_CC_FLAGS       = DEF(GCC49_IA32_CC_FLAGS) -Wno-unused-but-
 ##################
 # GCCNOLTO X64 definitions
 ##################
-*_GCCNOLTO_X64_OBJCOPY_PATH         = DEF(GCCNOLTO_X64_PREFIX)objcopy
-*_GCCNOLTO_X64_CC_PATH              = DEF(GCCNOLTO_X64_PREFIX)gcc
-*_GCCNOLTO_X64_SLINK_PATH           = DEF(GCCNOLTO_X64_PREFIX)ar
-*_GCCNOLTO_X64_DLINK_PATH           = DEF(GCCNOLTO_X64_PREFIX)gcc
-*_GCCNOLTO_X64_ASLDLINK_PATH        = DEF(GCCNOLTO_X64_PREFIX)gcc
-*_GCCNOLTO_X64_ASM_PATH             = DEF(GCCNOLTO_X64_PREFIX)gcc
-*_GCCNOLTO_X64_PP_PATH              = DEF(GCCNOLTO_X64_PREFIX)gcc
-*_GCCNOLTO_X64_VFRPP_PATH           = DEF(GCCNOLTO_X64_PREFIX)gcc
-*_GCCNOLTO_X64_ASLCC_PATH           = DEF(GCCNOLTO_X64_PREFIX)gcc
-*_GCCNOLTO_X64_ASLPP_PATH           = DEF(GCCNOLTO_X64_PREFIX)gcc
-*_GCCNOLTO_X64_RC_PATH              = DEF(GCCNOLTO_X64_PREFIX)objcopy
+*_GCCNOLTO_X64_OBJCOPY_PATH         = ENV(GCCNOLTO_X64_PREFIX)objcopy
+*_GCCNOLTO_X64_CC_PATH              = ENV(GCCNOLTO_X64_PREFIX)gcc
+*_GCCNOLTO_X64_SLINK_PATH           = ENV(GCCNOLTO_X64_PREFIX)ar
+*_GCCNOLTO_X64_DLINK_PATH           = ENV(GCCNOLTO_X64_PREFIX)gcc
+*_GCCNOLTO_X64_ASLDLINK_PATH        = ENV(GCCNOLTO_X64_PREFIX)gcc
+*_GCCNOLTO_X64_ASM_PATH             = ENV(GCCNOLTO_X64_PREFIX)gcc
+*_GCCNOLTO_X64_PP_PATH              = ENV(GCCNOLTO_X64_PREFIX)gcc
+*_GCCNOLTO_X64_VFRPP_PATH           = ENV(GCCNOLTO_X64_PREFIX)gcc
+*_GCCNOLTO_X64_ASLCC_PATH           = ENV(GCCNOLTO_X64_PREFIX)gcc
+*_GCCNOLTO_X64_ASLPP_PATH           = ENV(GCCNOLTO_X64_PREFIX)gcc
+*_GCCNOLTO_X64_RC_PATH              = ENV(GCCNOLTO_X64_PREFIX)objcopy
 
 *_GCCNOLTO_X64_ASLCC_FLAGS          = DEF(GCC49_ASLCC_FLAGS) -m64
 *_GCCNOLTO_X64_ASLDLINK_FLAGS       = DEF(GCC49_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64
@@ -1475,17 +1462,17 @@ RELEASE_GCCNOLTO_AARCH64_DLINK_XIPFLAGS = -z common-page-size=0x20
 ##################
 # GCC5 IA32 definitions
 ##################
-*_GCC5_IA32_OBJCOPY_PATH         = DEF(GCC5_IA32_PREFIX)objcopy
-*_GCC5_IA32_CC_PATH              = DEF(GCC5_IA32_PREFIX)gcc
-*_GCC5_IA32_SLINK_PATH           = DEF(GCC5_IA32_PREFIX)gcc-ar
-*_GCC5_IA32_DLINK_PATH           = DEF(GCC5_IA32_PREFIX)gcc
-*_GCC5_IA32_ASLDLINK_PATH        = DEF(GCC5_IA32_PREFIX)gcc
-*_GCC5_IA32_ASM_PATH             = DEF(GCC5_IA32_PREFIX)gcc
-*_GCC5_IA32_PP_PATH              = DEF(GCC5_IA32_PREFIX)gcc
-*_GCC5_IA32_VFRPP_PATH           = DEF(GCC5_IA32_PREFIX)gcc
-*_GCC5_IA32_ASLCC_PATH           = DEF(GCC5_IA32_PREFIX)gcc
-*_GCC5_IA32_ASLPP_PATH           = DEF(GCC5_IA32_PREFIX)gcc
-*_GCC5_IA32_RC_PATH              = DEF(GCC5_IA32_PREFIX)objcopy
+*_GCC5_IA32_OBJCOPY_PATH         = ENV(GCC5_IA32_PREFIX)objcopy
+*_GCC5_IA32_CC_PATH              = ENV(GCC5_IA32_PREFIX)gcc
+*_GCC5_IA32_SLINK_PATH           = ENV(GCC5_IA32_PREFIX)gcc-ar
+*_GCC5_IA32_DLINK_PATH           = ENV(GCC5_IA32_PREFIX)gcc
+*_GCC5_IA32_ASLDLINK_PATH        = ENV(GCC5_IA32_PREFIX)gcc
+*_GCC5_IA32_ASM_PATH             = ENV(GCC5_IA32_PREFIX)gcc
+*_GCC5_IA32_PP_PATH              = ENV(GCC5_IA32_PREFIX)gcc
+*_GCC5_IA32_VFRPP_PATH           = ENV(GCC5_IA32_PREFIX)gcc
+*_GCC5_IA32_ASLCC_PATH           = ENV(GCC5_IA32_PREFIX)gcc
+*_GCC5_IA32_ASLPP_PATH           = ENV(GCC5_IA32_PREFIX)gcc
+*_GCC5_IA32_RC_PATH              = ENV(GCC5_IA32_PREFIX)objcopy
 
 *_GCC5_IA32_ASLCC_FLAGS          = DEF(GCC5_ASLCC_FLAGS) -m32
 *_GCC5_IA32_ASLDLINK_FLAGS       = DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -no-pie
@@ -1507,17 +1494,17 @@ RELEASE_GCC5_IA32_DLINK_FLAGS    = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,
 ##################
 # GCC5 X64 definitions
 ##################
-*_GCC5_X64_OBJCOPY_PATH          = DEF(GCC5_X64_PREFIX)objcopy
-*_GCC5_X64_CC_PATH               = DEF(GCC5_X64_PREFIX)gcc
-*_GCC5_X64_SLINK_PATH            = DEF(GCC5_X64_PREFIX)gcc-ar
-*_GCC5_X64_DLINK_PATH            = DEF(GCC5_X64_PREFIX)gcc
-*_GCC5_X64_ASLDLINK_PATH         = DEF(GCC5_X64_PREFIX)gcc
-*_GCC5_X64_ASM_PATH              = DEF(GCC5_X64_PREFIX)gcc
-*_GCC5_X64_PP_PATH               = DEF(GCC5_X64_PREFIX)gcc
-*_GCC5_X64_VFRPP_PATH            = DEF(GCC5_X64_PREFIX)gcc
-*_GCC5_X64_ASLCC_PATH            = DEF(GCC5_X64_PREFIX)gcc
-*_GCC5_X64_ASLPP_PATH            = DEF(GCC5_X64_PREFIX)gcc
-*_GCC5_X64_RC_PATH               = DEF(GCC5_X64_PREFIX)objcopy
+*_GCC5_X64_OBJCOPY_PATH          = ENV(GCC5_X64_PREFIX)objcopy
+*_GCC5_X64_CC_PATH               = ENV(GCC5_X64_PREFIX)gcc
+*_GCC5_X64_SLINK_PATH            = ENV(GCC5_X64_PREFIX)gcc-ar
+*_GCC5_X64_DLINK_PATH            = ENV(GCC5_X64_PREFIX)gcc
+*_GCC5_X64_ASLDLINK_PATH         = ENV(GCC5_X64_PREFIX)gcc
+*_GCC5_X64_ASM_PATH              = ENV(GCC5_X64_PREFIX)gcc
+*_GCC5_X64_PP_PATH               = ENV(GCC5_X64_PREFIX)gcc
+*_GCC5_X64_VFRPP_PATH            = ENV(GCC5_X64_PREFIX)gcc
+*_GCC5_X64_ASLCC_PATH            = ENV(GCC5_X64_PREFIX)gcc
+*_GCC5_X64_ASLPP_PATH            = ENV(GCC5_X64_PREFIX)gcc
+*_GCC5_X64_RC_PATH               = ENV(GCC5_X64_PREFIX)objcopy
 
 *_GCC5_X64_ASLCC_FLAGS           = DEF(GCC5_ASLCC_FLAGS) -m64
 *_GCC5_X64_ASLDLINK_FLAGS        = DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64
@@ -1692,17 +1679,17 @@ RELEASE_GCC5_LOONGARCH64_CC_FLAGS       = DEF(GCC5_LOONGARCH64_CC_FLAGS) -Wno-un
 ##################
 # GCC IA32 definitions
 ##################
-*_GCC_IA32_OBJCOPY_PATH         = DEF(GCC_IA32_PREFIX)objcopy
-*_GCC_IA32_CC_PATH              = DEF(GCC_IA32_PREFIX)gcc
-*_GCC_IA32_SLINK_PATH           = DEF(GCC_IA32_PREFIX)gcc-ar
-*_GCC_IA32_DLINK_PATH           = DEF(GCC_IA32_PREFIX)gcc
-*_GCC_IA32_ASLDLINK_PATH        = DEF(GCC_IA32_PREFIX)gcc
-*_GCC_IA32_ASM_PATH             = DEF(GCC_IA32_PREFIX)gcc
-*_GCC_IA32_PP_PATH              = DEF(GCC_IA32_PREFIX)gcc
-*_GCC_IA32_VFRPP_PATH           = DEF(GCC_IA32_PREFIX)gcc
-*_GCC_IA32_ASLCC_PATH           = DEF(GCC_IA32_PREFIX)gcc
-*_GCC_IA32_ASLPP_PATH           = DEF(GCC_IA32_PREFIX)gcc
-*_GCC_IA32_RC_PATH              = DEF(GCC_IA32_PREFIX)objcopy
+*_GCC_IA32_OBJCOPY_PATH         = ENV(GCC_IA32_PREFIX)objcopy
+*_GCC_IA32_CC_PATH              = ENV(GCC_IA32_PREFIX)gcc
+*_GCC_IA32_SLINK_PATH           = ENV(GCC_IA32_PREFIX)gcc-ar
+*_GCC_IA32_DLINK_PATH           = ENV(GCC_IA32_PREFIX)gcc
+*_GCC_IA32_ASLDLINK_PATH        = ENV(GCC_IA32_PREFIX)gcc
+*_GCC_IA32_ASM_PATH             = ENV(GCC_IA32_PREFIX)gcc
+*_GCC_IA32_PP_PATH              = ENV(GCC_IA32_PREFIX)gcc
+*_GCC_IA32_VFRPP_PATH           = ENV(GCC_IA32_PREFIX)gcc
+*_GCC_IA32_ASLCC_PATH           = ENV(GCC_IA32_PREFIX)gcc
+*_GCC_IA32_ASLPP_PATH           = ENV(GCC_IA32_PREFIX)gcc
+*_GCC_IA32_RC_PATH              = ENV(GCC_IA32_PREFIX)objcopy
 
 *_GCC_IA32_ASLCC_FLAGS          = DEF(GCC5_ASLCC_FLAGS) -m32
 *_GCC_IA32_ASLDLINK_FLAGS       = DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386 -no-pie
@@ -1724,17 +1711,17 @@ RELEASE_GCC_IA32_DLINK_FLAGS    = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,-
 ##################
 # GCC X64 definitions
 ##################
-*_GCC_X64_OBJCOPY_PATH          = DEF(GCC_X64_PREFIX)objcopy
-*_GCC_X64_CC_PATH               = DEF(GCC_X64_PREFIX)gcc
-*_GCC_X64_SLINK_PATH            = DEF(GCC_X64_PREFIX)gcc-ar
-*_GCC_X64_DLINK_PATH            = DEF(GCC_X64_PREFIX)gcc
-*_GCC_X64_ASLDLINK_PATH         = DEF(GCC_X64_PREFIX)gcc
-*_GCC_X64_ASM_PATH              = DEF(GCC_X64_PREFIX)gcc
-*_GCC_X64_PP_PATH               = DEF(GCC_X64_PREFIX)gcc
-*_GCC_X64_VFRPP_PATH            = DEF(GCC_X64_PREFIX)gcc
-*_GCC_X64_ASLCC_PATH            = DEF(GCC_X64_PREFIX)gcc
-*_GCC_X64_ASLPP_PATH            = DEF(GCC_X64_PREFIX)gcc
-*_GCC_X64_RC_PATH               = DEF(GCC_X64_PREFIX)objcopy
+*_GCC_X64_OBJCOPY_PATH          = ENV(GCC_X64_PREFIX)objcopy
+*_GCC_X64_CC_PATH               = ENV(GCC_X64_PREFIX)gcc
+*_GCC_X64_SLINK_PATH            = ENV(GCC_X64_PREFIX)gcc-ar
+*_GCC_X64_DLINK_PATH            = ENV(GCC_X64_PREFIX)gcc
+*_GCC_X64_ASLDLINK_PATH         = ENV(GCC_X64_PREFIX)gcc
+*_GCC_X64_ASM_PATH              = ENV(GCC_X64_PREFIX)gcc
+*_GCC_X64_PP_PATH               = ENV(GCC_X64_PREFIX)gcc
+*_GCC_X64_VFRPP_PATH            = ENV(GCC_X64_PREFIX)gcc
+*_GCC_X64_ASLCC_PATH            = ENV(GCC_X64_PREFIX)gcc
+*_GCC_X64_ASLPP_PATH            = ENV(GCC_X64_PREFIX)gcc
+*_GCC_X64_RC_PATH               = ENV(GCC_X64_PREFIX)objcopy
 
 *_GCC_X64_ASLCC_FLAGS           = DEF(GCC5_ASLCC_FLAGS) -m64
 *_GCC_X64_ASLDLINK_FLAGS        = DEF(GCC5_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2024-10-18  2:22 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-10-18  2:21 [edk2-devel] RFC: Updating IA32/X64 cross-compilation to work like other archs Rebecca Cran

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox