mirror of
https://github.com/acidanthera/audk.git
synced 2025-09-22 17:27:44 +02:00
BaseTools: Added support for !ifdef constructions inside tools_def.txt.
This commit is contained in:
parent
daca49e23f
commit
1d0697c7ab
@ -20,6 +20,14 @@
|
|||||||
|
|
||||||
IDENTIFIER = Default TOOL_CHAIN_CONF
|
IDENTIFIER = Default TOOL_CHAIN_CONF
|
||||||
|
|
||||||
|
# DEFINE MERGE_RODATA_INTO_TEXT =
|
||||||
|
|
||||||
|
!ifdef DEF(MERGE_RODATA_INTO_TEXT)
|
||||||
|
DEFINE DLINK_SCRIPT = -Wl,--script=$(EDK_TOOLS_PATH)/Scripts/Merge.lds
|
||||||
|
!else
|
||||||
|
DEFINE DLINK_SCRIPT = -Wl,--script=$(EDK_TOOLS_PATH)/Scripts/Base.lds
|
||||||
|
!endif
|
||||||
|
|
||||||
# common path macros
|
# common path macros
|
||||||
DEFINE VS2008_BIN = ENV(VS2008_PREFIX)Vc\bin
|
DEFINE VS2008_BIN = ENV(VS2008_PREFIX)Vc\bin
|
||||||
DEFINE VS2008_DLL = ENV(VS2008_PREFIX)Common7\IDE;DEF(VS2008_BIN)
|
DEFINE VS2008_DLL = ENV(VS2008_PREFIX)Common7\IDE;DEF(VS2008_BIN)
|
||||||
@ -1858,7 +1866,7 @@ DEFINE GCC_ARM_CC_XIPFLAGS = -mno-unaligned-access
|
|||||||
DEFINE GCC_AARCH64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mlittle-endian -fno-short-enums -fverbose-asm -funsigned-char -ffunction-sections -fdata-sections -Wno-address -fno-asynchronous-unwind-tables -fno-unwind-tables -fno-pic -fno-pie -ffixed-x18
|
DEFINE GCC_AARCH64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mlittle-endian -fno-short-enums -fverbose-asm -funsigned-char -ffunction-sections -fdata-sections -Wno-address -fno-asynchronous-unwind-tables -fno-unwind-tables -fno-pic -fno-pie -ffixed-x18
|
||||||
DEFINE GCC_AARCH64_CC_XIPFLAGS = -mstrict-align -mgeneral-regs-only
|
DEFINE GCC_AARCH64_CC_XIPFLAGS = -mstrict-align -mgeneral-regs-only
|
||||||
DEFINE GCC_DLINK_FLAGS_COMMON = -nostdlib --pie
|
DEFINE GCC_DLINK_FLAGS_COMMON = -nostdlib --pie
|
||||||
DEFINE GCC_DLINK2_FLAGS_COMMON = -Wl,--defsym=ALIGNED_PE_HEADER_SIZE=0x400,--default-script=$(EDK_TOOLS_PATH)/Scripts/Base.lds
|
DEFINE GCC_DLINK2_FLAGS_COMMON = -Wl,--defsym=ALIGNED_PE_HEADER_SIZE=0x400 DEF(DLINK_SCRIPT)
|
||||||
DEFINE GCC_IA32_X64_DLINK_COMMON = DEF(GCC_DLINK_FLAGS_COMMON) --gc-sections
|
DEFINE GCC_IA32_X64_DLINK_COMMON = DEF(GCC_DLINK_FLAGS_COMMON) --gc-sections
|
||||||
DEFINE GCC_ARM_AARCH64_DLINK_COMMON= -Wl,--emit-relocs -nostdlib -Wl,--gc-sections -u $(IMAGE_ENTRY_POINT) -Wl,-e,$(IMAGE_ENTRY_POINT),-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map
|
DEFINE GCC_ARM_AARCH64_DLINK_COMMON= -Wl,--emit-relocs -nostdlib -Wl,--gc-sections -u $(IMAGE_ENTRY_POINT) -Wl,-e,$(IMAGE_ENTRY_POINT),-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map
|
||||||
DEFINE GCC_LOONGARCH64_DLINK_COMMON= -Wl,--emit-relocs -nostdlib -Wl,--gc-sections -u $(IMAGE_ENTRY_POINT) -Wl,-e,$(IMAGE_ENTRY_POINT),-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map
|
DEFINE GCC_LOONGARCH64_DLINK_COMMON= -Wl,--emit-relocs -nostdlib -Wl,--gc-sections -u $(IMAGE_ENTRY_POINT) -Wl,-e,$(IMAGE_ENTRY_POINT),-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map
|
||||||
@ -1961,7 +1969,7 @@ DEFINE GCC5_ASLCC_FLAGS = DEF(GCC49_ASLCC_FLAGS) -fno-lto
|
|||||||
DEFINE GCC5_RISCV_ALL_CC_FLAGS = -g -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -ffunction-sections -fdata-sections -include AutoGen.h -fno-common -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings -msmall-data-limit=0
|
DEFINE GCC5_RISCV_ALL_CC_FLAGS = -g -fshort-wchar -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -ffunction-sections -fdata-sections -include AutoGen.h -fno-common -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings -msmall-data-limit=0
|
||||||
DEFINE GCC5_RISCV_ALL_DLINK_COMMON = -nostdlib -Wl,-n,-q,--gc-sections -z max-page-size=0x1000
|
DEFINE GCC5_RISCV_ALL_DLINK_COMMON = -nostdlib -Wl,-n,-q,--gc-sections -z max-page-size=0x1000
|
||||||
DEFINE GCC5_RISCV_ALL_DLINK_FLAGS = DEF(GCC5_RISCV_ALL_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map
|
DEFINE GCC5_RISCV_ALL_DLINK_FLAGS = DEF(GCC5_RISCV_ALL_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map
|
||||||
DEFINE GCC5_RISCV_ALL_DLINK2_FLAGS = -Wl,--defsym=ALIGNED_PE_HEADER_SIZE=0x400,--default-script=$(EDK_TOOLS_PATH)/Scripts/Base.lds
|
DEFINE GCC5_RISCV_ALL_DLINK2_FLAGS = -Wl,--defsym=ALIGNED_PE_HEADER_SIZE=0x400 DEF(DLINK_SCRIPT)
|
||||||
DEFINE GCC5_RISCV_ALL_ASM_FLAGS = -c -x assembler -imacros $(DEST_DIR_DEBUG)/AutoGen.h
|
DEFINE GCC5_RISCV_ALL_ASM_FLAGS = -c -x assembler -imacros $(DEST_DIR_DEBUG)/AutoGen.h
|
||||||
DEFINE GCC5_RISCV_ALL_CC_FLAGS_WARNING_DISABLE = -Wno-tautological-compare -Wno-pointer-compare
|
DEFINE GCC5_RISCV_ALL_CC_FLAGS_WARNING_DISABLE = -Wno-tautological-compare -Wno-pointer-compare
|
||||||
|
|
||||||
@ -2875,7 +2883,7 @@ DEFINE CLANGDWARF_IA32_PREFIX = ENV(CLANG_BIN)
|
|||||||
DEFINE CLANGDWARF_X64_PREFIX = ENV(CLANG_BIN)
|
DEFINE CLANGDWARF_X64_PREFIX = ENV(CLANG_BIN)
|
||||||
|
|
||||||
# LLVM/CLANG doesn't support -n link option. So, it can't share the same IA32_X64_DLINK_COMMON flag.
|
# LLVM/CLANG doesn't support -n link option. So, it can't share the same IA32_X64_DLINK_COMMON flag.
|
||||||
DEFINE CLANGDWARF_IA32_X64_DLINK_COMMON = -nostdlib -Wl,-q,--gc-sections -z max-page-size=0x1000 -Wl,-z,notext,--defsym=ALIGNED_PE_HEADER_SIZE=0x400
|
DEFINE CLANGDWARF_IA32_X64_DLINK_COMMON = -nostdlib -Wl,-q,--gc-sections -z max-page-size=0x1000 -Wl,-z,notext,--defsym=ALIGNED_PE_HEADER_SIZE=0x400 DEF(DLINK_SCRIPT)
|
||||||
DEFINE CLANGDWARF_IA32_X64_ASLDLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_DLINK_COMMON) -Wl,--entry,ReferenceAcpiTable -u ReferenceAcpiTable
|
DEFINE CLANGDWARF_IA32_X64_ASLDLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_DLINK_COMMON) -Wl,--entry,ReferenceAcpiTable -u ReferenceAcpiTable
|
||||||
DEFINE CLANGDWARF_IA32_X64_DLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map,--whole-archive
|
DEFINE CLANGDWARF_IA32_X64_DLINK_FLAGS = DEF(CLANGDWARF_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map,--whole-archive
|
||||||
DEFINE CLANGDWARF_IA32_DLINK2_FLAGS = -no-pie
|
DEFINE CLANGDWARF_IA32_DLINK2_FLAGS = -no-pie
|
||||||
|
@ -103,11 +103,32 @@ class ToolDefClassObject(object):
|
|||||||
else:
|
else:
|
||||||
EdkLogger.error("tools_def.txt parser", FILE_NOT_FOUND, ExtraData=FileName)
|
EdkLogger.error("tools_def.txt parser", FILE_NOT_FOUND, ExtraData=FileName)
|
||||||
|
|
||||||
|
BranchPath = 0
|
||||||
for Index in range(len(FileContent)):
|
for Index in range(len(FileContent)):
|
||||||
Line = FileContent[Index].strip()
|
Line = FileContent[Index].strip()
|
||||||
if Line == "" or Line[0] == '#':
|
if Line == "" or Line[0] == '#':
|
||||||
continue
|
continue
|
||||||
|
|
||||||
|
if Line.startswith("!ifdef"):
|
||||||
|
Branch = Line[6:].strip()
|
||||||
|
Done, Branch = self.ExpandMacros(Branch)
|
||||||
|
if Done:
|
||||||
|
BranchPath = 1
|
||||||
|
else:
|
||||||
|
BranchPath = -1
|
||||||
|
continue
|
||||||
|
|
||||||
|
if Line.startswith("!else"):
|
||||||
|
BranchPath *= -1
|
||||||
|
continue
|
||||||
|
|
||||||
|
if Line.startswith("!endif"):
|
||||||
|
BranchPath = 0
|
||||||
|
continue
|
||||||
|
|
||||||
|
if BranchPath == -1:
|
||||||
|
continue
|
||||||
|
|
||||||
if Line.startswith("!include"):
|
if Line.startswith("!include"):
|
||||||
IncFile = Line[8:].strip()
|
IncFile = Line[8:].strip()
|
||||||
Done, IncFile = self.ExpandMacros(IncFile)
|
Done, IncFile = self.ExpandMacros(IncFile)
|
||||||
|
@ -32,13 +32,5 @@
|
|||||||
[BuildOptions]
|
[BuildOptions]
|
||||||
MSFT:*_*_*_DLINK_FLAGS = /MERGE:.rdata=.text
|
MSFT:*_*_*_DLINK_FLAGS = /MERGE:.rdata=.text
|
||||||
CLANGPDB:*_*_*_DLINK_FLAGS = /MERGE:.rdata=.text
|
CLANGPDB:*_*_*_DLINK_FLAGS = /MERGE:.rdata=.text
|
||||||
GCC:*_*_*_DLINK2_FLAGS = -Wl,--script=$(EDK_TOOLS_PATH)/Scripts/Merge.lds
|
|
||||||
GCC:*_*_*_ASLDLINK_FLAGS = -Wl,--script=$(EDK_TOOLS_PATH)/Scripts/Merge.lds
|
|
||||||
CLANGGCC:*_*_*_DLINK2_FLAGS = -Wl,--script=$(EDK_TOOLS_PATH)/Scripts/Merge.lds
|
|
||||||
CLANGGCC:*_*_*_ASLDLINK_FLAGS = -Wl,--script=$(EDK_TOOLS_PATH)/Scripts/Merge.lds
|
|
||||||
XCODE:*_*_*_DLINK_FLAGS = -rename_section __DATA_CONST __text_const __TEXT __const -rename_section __DATA_CONST __cstring __TEXT __cstring -rename_section __DATA_CONST __ustring __TEXT __ustring -rename_section __DATA_CONST __const __TEXT __data_const
|
XCODE:*_*_*_DLINK_FLAGS = -rename_section __DATA_CONST __text_const __TEXT __const -rename_section __DATA_CONST __cstring __TEXT __cstring -rename_section __DATA_CONST __ustring __TEXT __ustring -rename_section __DATA_CONST __const __TEXT __data_const
|
||||||
!else
|
|
||||||
[BuildOptions]
|
|
||||||
CLANGGCC:*_*_*_DLINK2_FLAGS = -Wl,--script=$(EDK_TOOLS_PATH)/Scripts/Base.lds
|
|
||||||
CLANGGCC:*_*_*_ASLDLINK_FLAGS = -Wl,--script=$(EDK_TOOLS_PATH)/Scripts/Base.lds
|
|
||||||
!endif
|
!endif
|
||||||
|
Loading…
x
Reference in New Issue
Block a user