VirtualBox

source: vbox/trunk/src/VBox/Devices/EFI/Firmware/vbox-tools_def.txt@ 107040

Last change on this file since 107040 was 107020, checked in by vboxsync, 3 months ago

EFI/Firmware: Made it build with VCC143 (ak a VS2022). Updated the vbox-tools_def.txt a little (upstream has VS2022, but using VS2019 in the mean time). jiraref:VBP-1439

  • Property svn:eol-style set to native
File size: 44.4 KB
Line 
1#
2# Copyright (c) 2006 - 2022, Intel Corporation. All rights reserved.<BR>
3# Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
4# Portions copyright (c) 2011 - 2019, ARM Ltd. All rights reserved.<BR>
5# Copyright (c) 2015, Hewlett-Packard Development Company, L.P.<BR>
6# (C) Copyright 2020, Hewlett Packard Enterprise Development LP<BR>
7# Copyright (c) 2022, Loongson Technology Corporation Limited. All rights reserved.<BR>
8# Copyright (c) Microsoft Corporation
9#
10# SPDX-License-Identifier: BSD-2-Clause-Patent
11#
12
13IDENTIFIER = Default TOOL_CHAIN_CONF
14
15# common path macros
16DEFINE VS2017_DLL = @PATH_VS2017_BIN_HOST@
17DEFINE VS2017_BIN_HOST = @PATH_VS2017_BIN_HOST@
18DEFINE VS2017_BIN_IA32 = @PATH_VS2017_X86_BIN@
19DEFINE VS2017_BIN_X64 = @PATH_VS2017_AMD64_BIN@
20DEFINE VS2017_BIN_ARM = c:\no\such\directory
21DEFINE VS2017_BIN_AARCH64 = c:\no\such\directory
22
23DEFINE VS_HOST = @VS_HOST@
24
25DEFINE VS2019_BIN = @PATH_VS2019_BIN@
26DEFINE VS2019_BIN_HOST = DEF(VS2019_BIN)\HostDEF(VS_HOST)\DEF(VS_HOST)
27DEFINE VS2019_BIN_IA32 = DEF(VS2019_BIN)\HostDEF(VS_HOST)\x86
28DEFINE VS2019_BIN_X64 = DEF(VS2019_BIN)\HostDEF(VS_HOST)\x64
29DEFINE VS2019_BIN_ARM = DEF(VS2019_BIN)\HostDEF(VS_HOST)\arm
30DEFINE VS2019_BIN_AARCH64 = DEF(VS2019_BIN)\HostDEF(VS_HOST)\arm64
31
32#
33# Resource compiler
34#
35DEFINE RC_PATH = @PATH_SDK_WINSDK10_BIN@\rc.exe
36DEFINE WINSDK10_BIN = @PATH_SDK_WINSDK10_BIN@
37
38#DEFINE WINSDK7_BIN = c:\no\such\directory
39
40
41# These defines are needed for certain Microsoft Visual Studio tools that
42# are used by other toolchains. An example is that ICC on Windows normally
43# uses Microsoft's nmake.exe.
44DEFINE WINDDK_BIN16 = ENV(WINDDK3790_PREFIX)bin16
45
46DEFINE EBC_BIN = C:\Program Files\Intel\EBC\Bin
47DEFINE EBC_BINx86 = C:\Program Files (x86)\Intel\EBC\Bin
48
49
50DEFINE GCC48_IA32_PREFIX = @VBOX_PATH_PREFIX_GCC32@
51DEFINE GCC48_X64_PREFIX = @VBOX_PATH_PREFIX_GCC64@
52DEFINE GCC48_AARCH64_PREFIX = @VBOX_PATH_PREFIX_GCC_AARCH64@
53DEFINE GCC48_ARM_PREFIX = @VBOX_PATH_PREFIX_GCC_ARM@
54
55DEFINE UNIX_IASL_BIN = @VBOX_IASLCMD@
56DEFINE WIN_IASL_BIN = @VBOX_IASLCMD@
57
58DEFINE IASL_FLAGS =
59DEFINE IASL_OUTFLAGS = -p
60
61DEFINE DEFAULT_WIN_ASL_BIN = DEF(WIN_IASL_BIN)
62DEFINE DEFAULT_WIN_ASL_FLAGS = DEF(IASL_FLAGS)
63DEFINE DEFAULT_WIN_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS)
64
65# MSFT Build Flag for included header file list generation
66DEFINE MSFT_DEPS_FLAGS = /showIncludes /MP1
67
68DEFINE MSFT_ASLPP_FLAGS = /nologo /E /C /FIAutoGen.h
69DEFINE MSFT_ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable
70DEFINE MSFT_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE
71
72DEFINE DTCPP_BIN = ENV(DTCPP_PREFIX)cpp
73DEFINE DTC_BIN = ENV(DTC_PREFIX)dtc
74
75####################################################################################
76#
77# format: TARGET_TOOLCHAIN_ARCH_COMMANDTYPE_ATTRIBUTE = <string>
78# priority:
79# TARGET_TOOLCHAIN_ARCH_COMMANDTYPE_ATTRIBUTE (Highest)
80# ******_TOOLCHAIN_ARCH_COMMANDTYPE_ATTRIBUTE
81# TARGET_*********_ARCH_COMMANDTYPE_ATTRIBUTE
82# ******_*********_ARCH_COMMANDTYPE_ATTRIBUTE
83# TARGET_TOOLCHAIN_****_COMMANDTYPE_ATTRIBUTE
84# ******_TOOLCHAIN_****_COMMANDTYPE_ATTRIBUTE
85# TARGET_*********_****_COMMANDTYPE_ATTRIBUTE
86# ******_*********_****_COMMANDTYPE_ATTRIBUTE
87# TARGET_TOOLCHAIN_ARCH_***********_ATTRIBUTE
88# ******_TOOLCHAIN_ARCH_***********_ATTRIBUTE
89# TARGET_*********_ARCH_***********_ATTRIBUTE
90# ******_*********_ARCH_***********_ATTRIBUTE
91# TARGET_TOOLCHAIN_****_***********_ATTRIBUTE
92# ******_TOOLCHAIN_****_***********_ATTRIBUTE
93# TARGET_*********_****_***********_ATTRIBUTE
94# ******_*********_****_***********_ATTRIBUTE (Lowest)
95#
96####################################################################################
97####################################################################################
98#
99# Supported Tool Chains
100# =====================
101# VS2017 -win32- Requires:
102# Microsoft Visual Studio 2017 version 15.2 (15.4 for ARM64) or later
103# Optional:
104# Required to build platforms or ACPI tables:
105# Intel(r) ACPI Compiler (iasl.exe) from
106# https://acpica.org/downloads
107# Note:
108# Building of XIP firmware images for ARM/ARM64 is not currently supported (only applications).
109# /FILEALIGN:4096 and other changes are needed for ARM firmware builds.
110# VS2019 -win32- Requires:
111# Microsoft Visual Studio 2019 version 16.2 or later
112# Optional:
113# Required to build platforms or ACPI tables:
114# Intel(r) ACPI Compiler (iasl.exe) from
115# https://acpica.org/downloads
116#
117# GCC48 -Linux,Windows- Requires:
118# GCC 4.8 targeting x86_64-linux-gnu, aarch64-linux-gnu, or arm-linux-gnueabi
119# Optional:
120# Required to build platforms or ACPI tables:
121# Intel(r) ACPI Compiler from
122# https://acpica.org/downloads
123####################################################################################
124####################################################################################
125#
126# Supported Tool Chain Family
127# ===========================
128# MSFT - Microsoft
129# GCC - GNU GCC
130####################################################################################
131####################################################################################
132#
133# Other Supported Tools
134# =====================
135# NASM -- http://www.nasm.us/
136# - NASM 2.15.05 or later for use with the GCC toolchain family
137# - NASM 2.15.05 or later for use with all other toolchain families
138#
139####################################################################################
140
141
142
143
144
145####################################################################################
146# VS2017 - Microsoft Visual Studio 2017 with Intel ASL
147# ASL - Intel ACPI Source Language Compiler (iasl.exe)
148####################################################################################
149# VS2017 - Microsoft Visual Studio 2017 professional Edition with Intel ASL
150*_VS2017_*_*_FAMILY = MSFT
151*_VS2017_*_*_DLL = DEF(VS2017_BIN_HOST)
152
153*_VS2017_*_MAKE_PATH = DEF(VS2017_BIN_HOST)\nmake.exe
154*_VS2017_*_MAKE_FLAGS = /nologo
155*_VS2017_*_RC_PATH = DEF(RC_PATH)
156
157*_VS2017_*_SLINK_FLAGS = /NOLOGO /LTCG
158*_VS2017_*_APP_FLAGS = /nologo /E /TC
159*_VS2017_*_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
160*_VS2017_*_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
161*_VS2017_*_DLINK2_FLAGS = /WHOLEARCHIVE
162*_VS2017_*_ASM16_PATH = DEF(VS2017_BIN_IA32)\ml.exe
163*_VS2017_*_DEPS_FLAGS = DEF(MSFT_DEPS_FLAGS)
164##################
165# ASL definitions
166##################
167*_VS2017_*_ASL_PATH = DEF(WIN_IASL_BIN)
168*_VS2017_*_ASL_FLAGS = DEF(DEFAULT_WIN_ASL_FLAGS)
169*_VS2017_*_ASL_OUTFLAGS = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
170*_VS2017_*_ASLCC_FLAGS = DEF(MSFT_ASLCC_FLAGS)
171*_VS2017_*_ASLPP_FLAGS = DEF(MSFT_ASLPP_FLAGS)
172*_VS2017_*_ASLDLINK_FLAGS = DEF(MSFT_ASLDLINK_FLAGS)
173
174##################
175# IA32 definitions
176##################
177*_VS2017_IA32_CC_PATH = DEF(VS2017_BIN_IA32)\cl.exe
178*_VS2017_IA32_VFRPP_PATH = DEF(VS2017_BIN_IA32)\cl.exe
179*_VS2017_IA32_ASLCC_PATH = DEF(VS2017_BIN_IA32)\cl.exe
180*_VS2017_IA32_ASLPP_PATH = DEF(VS2017_BIN_IA32)\cl.exe
181*_VS2017_IA32_SLINK_PATH = DEF(VS2017_BIN_IA32)\lib.exe
182*_VS2017_IA32_DLINK_PATH = DEF(VS2017_BIN_IA32)\link.exe
183*_VS2017_IA32_ASLDLINK_PATH= DEF(VS2017_BIN_IA32)\link.exe
184*_VS2017_IA32_APP_PATH = DEF(VS2017_BIN_IA32)\cl.exe
185*_VS2017_IA32_PP_PATH = DEF(VS2017_BIN_IA32)\cl.exe
186*_VS2017_IA32_ASM_PATH = DEF(VS2017_BIN_IA32)\ml.exe
187
188 *_VS2017_IA32_MAKE_FLAGS = /nologo
189 DEBUG_VS2017_IA32_CC_FLAGS = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Gw /MP
190RELEASE_VS2017_IA32_CC_FLAGS = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw /MP
191NOOPT_VS2017_IA32_CC_FLAGS = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Od /MP
192
193 DEBUG_VS2017_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
194RELEASE_VS2017_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd
195NOOPT_VS2017_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
196
197 DEBUG_VS2017_IA32_NASM_FLAGS = -Ox -f win32 -g
198RELEASE_VS2017_IA32_NASM_FLAGS = -Ox -f win32
199NOOPT_VS2017_IA32_NASM_FLAGS = -O0 -f win32 -g
200
201 DEBUG_VS2017_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
202RELEASE_VS2017_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data /DEBUG
203NOOPT_VS2017_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
204
205##################
206# X64 definitions
207##################
208*_VS2017_X64_CC_PATH = DEF(VS2017_BIN_X64)\cl.exe
209*_VS2017_X64_PP_PATH = DEF(VS2017_BIN_X64)\cl.exe
210*_VS2017_X64_APP_PATH = DEF(VS2017_BIN_X64)\cl.exe
211*_VS2017_X64_VFRPP_PATH = DEF(VS2017_BIN_X64)\cl.exe
212*_VS2017_X64_ASLCC_PATH = DEF(VS2017_BIN_X64)\cl.exe
213*_VS2017_X64_ASLPP_PATH = DEF(VS2017_BIN_X64)\cl.exe
214*_VS2017_X64_ASM_PATH = DEF(VS2017_BIN_X64)\ml64.exe
215*_VS2017_X64_SLINK_PATH = DEF(VS2017_BIN_X64)\lib.exe
216*_VS2017_X64_DLINK_PATH = DEF(VS2017_BIN_X64)\link.exe
217*_VS2017_X64_ASLDLINK_PATH = DEF(VS2017_BIN_X64)\link.exe
218
219 DEBUG_VS2017_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Gw /MP
220RELEASE_VS2017_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw /MP
221NOOPT_VS2017_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Od /MP
222
223 DEBUG_VS2017_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
224RELEASE_VS2017_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
225NOOPT_VS2017_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
226
227 DEBUG_VS2017_X64_NASM_FLAGS = -Ox -f win64 -g
228RELEASE_VS2017_X64_NASM_FLAGS = -Ox -f win64
229NOOPT_VS2017_X64_NASM_FLAGS = -O0 -f win64 -g
230
231 DEBUG_VS2017_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4281 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
232RELEASE_VS2017_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4281 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data /DEBUG
233NOOPT_VS2017_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4281 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
234
235#################
236# ARM definitions
237#################
238*_VS2017_ARM_CC_PATH = DEF(VS2017_BIN_ARM)\cl.exe
239*_VS2017_ARM_VFRPP_PATH = DEF(VS2017_BIN_ARM)\cl.exe
240*_VS2017_ARM_SLINK_PATH = DEF(VS2017_BIN_ARM)\lib.exe
241*_VS2017_ARM_DLINK_PATH = DEF(VS2017_BIN_ARM)\link.exe
242*_VS2017_ARM_APP_PATH = DEF(VS2017_BIN_ARM)\cl.exe
243*_VS2017_ARM_PP_PATH = DEF(VS2017_BIN_ARM)\cl.exe
244*_VS2017_ARM_ASM_PATH = DEF(VS2017_BIN_ARM)\armasm.exe
245*_VS2017_ARM_ASLCC_PATH = DEF(VS2017_BIN_ARM)\cl.exe
246*_VS2017_ARM_ASLPP_PATH = DEF(VS2017_BIN_ARM)\cl.exe
247*_VS2017_ARM_ASLDLINK_PATH = DEF(VS2017_BIN_ARM)\link.exe
248
249 *_VS2017_ARM_MAKE_FLAGS = /nologo
250 DEBUG_VS2017_ARM_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Gw /Oi-
251RELEASE_VS2017_ARM_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw /Oi-
252NOOPT_VS2017_ARM_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od /Oi-
253
254 DEBUG_VS2017_ARM_ASM_FLAGS = /nologo /g
255RELEASE_VS2017_ARM_ASM_FLAGS = /nologo
256NOOPT_VS2017_ARM_ASM_FLAGS = /nologo
257
258 DEBUG_VS2017_ARM_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
259RELEASE_VS2017_ARM_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data /DEBUG
260NOOPT_VS2017_ARM_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
261
262#####################
263# AARCH64 definitions
264#####################
265*_VS2017_AARCH64_CC_PATH = DEF(VS2017_BIN_AARCH64)\cl.exe
266*_VS2017_AARCH64_VFRPP_PATH = DEF(VS2017_BIN_AARCH64)\cl.exe
267*_VS2017_AARCH64_SLINK_PATH = DEF(VS2017_BIN_AARCH64)\lib.exe
268*_VS2017_AARCH64_DLINK_PATH = DEF(VS2017_BIN_AARCH64)\link.exe
269*_VS2017_AARCH64_APP_PATH = DEF(VS2017_BIN_AARCH64)\cl.exe
270*_VS2017_AARCH64_PP_PATH = DEF(VS2017_BIN_AARCH64)\cl.exe
271*_VS2017_AARCH64_ASM_PATH = DEF(VS2017_BIN_AARCH64)\armasm64.exe
272*_VS2017_AARCH64_ASLCC_PATH = DEF(VS2017_BIN_AARCH64)\cl.exe
273*_VS2017_AARCH64_ASLPP_PATH = DEF(VS2017_BIN_AARCH64)\cl.exe
274*_VS2017_AARCH64_ASLDLINK_PATH = DEF(VS2017_BIN_AARCH64)\link.exe
275
276 *_VS2017_AARCH64_MAKE_FLAGS = /nologo
277 DEBUG_VS2017_AARCH64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Gw /Oi-
278RELEASE_VS2017_AARCH64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw /Oi-
279NOOPT_VS2017_AARCH64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gm /Od /Oi-
280
281 DEBUG_VS2017_AARCH64_ASM_FLAGS = /nologo /g
282RELEASE_VS2017_AARCH64_ASM_FLAGS = /nologo
283NOOPT_VS2017_AARCH64_ASM_FLAGS = /nologo
284
285 DEBUG_VS2017_AARCH64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /DRIVER /DEBUG
286RELEASE_VS2017_AARCH64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /DRIVER /MERGE:.rdata=.data /DEBUG
287NOOPT_VS2017_AARCH64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /DRIVER /DEBUG
288
289##################
290# EBC definitions
291##################
292*_VS2017_EBC_*_FAMILY = INTEL
293
294*_VS2017_EBC_PP_PATH = DEF(EBC_BINx86)\iec.exe
295*_VS2017_EBC_VFRPP_PATH = DEF(EBC_BINx86)\iec.exe
296*_VS2017_EBC_CC_PATH = DEF(EBC_BINx86)\iec.exe
297*_VS2017_EBC_SLINK_PATH = DEF(VS2017_BIN_IA32)\link.exe
298*_VS2017_EBC_DLINK_PATH = DEF(VS2017_BIN_IA32)\link.exe
299
300*_VS2017_EBC_MAKE_FLAGS = /nologo
301*_VS2017_EBC_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
302*_VS2017_EBC_CC_FLAGS = /nologo /c /WX /W3 /FIAutoGen.h /D$(MODULE_ENTRY_POINT)=$(ARCH_ENTRY_POINT)
303*_VS2017_EBC_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
304*_VS2017_EBC_SLINK_FLAGS = /lib /NOLOGO /MACHINE:EBC
305*_VS2017_EBC_DLINK_FLAGS = "C:\Program Files (x86)\Intel\EBC\Lib\EbcLib.lib" /NOLOGO /NODEFAULTLIB /MACHINE:EBC /OPT:REF /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /MAP /ALIGN:32 /DRIVER
306
307
308####################################################################################
309# VS2019 - Microsoft Visual Studio 2019 with Intel ASL
310# ASL - Intel ACPI Source Language Compiler (iasl.exe)
311####################################################################################
312# VS2019 - Microsoft Visual Studio 2019 professional Edition with Intel ASL
313*_VS2019_*_*_FAMILY = MSFT
314*_VS2019_*_*_DLL = DEF(VS2019_BIN_HOST)
315
316*_VS2019_*_MAKE_PATH = DEF(VS2019_BIN_HOST)\nmake.exe
317*_VS2019_*_MAKE_FLAGS = /nologo
318*_VS2019_*_RC_PATH = DEF(RC_PATH)
319
320*_VS2019_*_SLINK_FLAGS = /NOLOGO /LTCG
321*_VS2019_*_APP_FLAGS = /nologo /E /TC
322*_VS2019_*_PP_FLAGS = /nologo /E /TC /FIAutoGen.h
323*_VS2019_*_VFRPP_FLAGS = /nologo /E /TC /DVFRCOMPILE /FI$(MODULE_NAME)StrDefs.h
324*_VS2019_*_DLINK2_FLAGS = /WHOLEARCHIVE
325*_VS2019_*_ASM16_PATH = DEF(VS2019_BIN_IA32)\ml.exe
326*_VS2019_*_DEPS_FLAGS = DEF(MSFT_DEPS_FLAGS)
327##################
328# ASL definitions
329##################
330*_VS2019_*_ASL_PATH = DEF(WIN_IASL_BIN)
331*_VS2019_*_ASL_FLAGS = DEF(DEFAULT_WIN_ASL_FLAGS)
332*_VS2019_*_ASL_OUTFLAGS = DEF(DEFAULT_WIN_ASL_OUTFLAGS)
333*_VS2019_*_ASLCC_FLAGS = DEF(MSFT_ASLCC_FLAGS)
334*_VS2019_*_ASLPP_FLAGS = DEF(MSFT_ASLPP_FLAGS)
335*_VS2019_*_ASLDLINK_FLAGS = DEF(MSFT_ASLDLINK_FLAGS)
336
337##################
338# IA32 definitions
339##################
340*_VS2019_IA32_CC_PATH = DEF(VS2019_BIN_IA32)\cl.exe
341*_VS2019_IA32_VFRPP_PATH = DEF(VS2019_BIN_IA32)\cl.exe
342*_VS2019_IA32_ASLCC_PATH = DEF(VS2019_BIN_IA32)\cl.exe
343*_VS2019_IA32_ASLPP_PATH = DEF(VS2019_BIN_IA32)\cl.exe
344*_VS2019_IA32_SLINK_PATH = DEF(VS2019_BIN_IA32)\lib.exe
345*_VS2019_IA32_DLINK_PATH = DEF(VS2019_BIN_IA32)\link.exe
346*_VS2019_IA32_ASLDLINK_PATH= DEF(VS2019_BIN_IA32)\link.exe
347*_VS2019_IA32_APP_PATH = DEF(VS2019_BIN_IA32)\cl.exe
348*_VS2019_IA32_PP_PATH = DEF(VS2019_BIN_IA32)\cl.exe
349*_VS2019_IA32_ASM_PATH = DEF(VS2019_BIN_IA32)\ml.exe
350
351 DEBUG_VS2019_IA32_CC_FLAGS = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Gw /MP
352RELEASE_VS2019_IA32_CC_FLAGS = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw /MP
353NOOPT_VS2019_IA32_CC_FLAGS = /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Z7 /Od /MP
354
355 DEBUG_VS2019_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
356RELEASE_VS2019_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
357NOOPT_VS2019_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
358
359# 2024-11-16 bird: Added our include directory for CryptoPkg\Library\IntrinsicLib\Ia32\ftol2-vcc.nasm using iprt/asmdefs.mac.
360 DEBUG_VS2019_IA32_NASM_FLAGS = -Ox -f win32 -g -I@VBOX_PATH_ROOT@/include
361RELEASE_VS2019_IA32_NASM_FLAGS = -Ox -f win32 -g -I@VBOX_PATH_ROOT@/include
362NOOPT_VS2019_IA32_NASM_FLAGS = -O0 -f win32 -g -I@VBOX_PATH_ROOT@/include
363
364 DEBUG_VS2019_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
365RELEASE_VS2019_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data /DEBUG
366NOOPT_VS2019_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
367
368##################
369# X64 definitions
370##################
371*_VS2019_X64_CC_PATH = DEF(VS2019_BIN_X64)\cl.exe
372*_VS2019_X64_PP_PATH = DEF(VS2019_BIN_X64)\cl.exe
373*_VS2019_X64_APP_PATH = DEF(VS2019_BIN_X64)\cl.exe
374*_VS2019_X64_VFRPP_PATH = DEF(VS2019_BIN_X64)\cl.exe
375*_VS2019_X64_ASLCC_PATH = DEF(VS2019_BIN_X64)\cl.exe
376*_VS2019_X64_ASLPP_PATH = DEF(VS2019_BIN_X64)\cl.exe
377*_VS2019_X64_ASM_PATH = DEF(VS2019_BIN_X64)\ml64.exe
378*_VS2019_X64_SLINK_PATH = DEF(VS2019_BIN_X64)\lib.exe
379*_VS2019_X64_DLINK_PATH = DEF(VS2019_BIN_X64)\link.exe
380*_VS2019_X64_ASLDLINK_PATH = DEF(VS2019_BIN_X64)\link.exe
381
382 DEBUG_VS2019_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Gw /MP /volatileMetadata-
383RELEASE_VS2019_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2s /GL /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Gw /MP /volatileMetadata-
384NOOPT_VS2019_X64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /Gy /FIAutoGen.h /EHs-c- /GR- /GF /Z7 /Od /MP /volatileMetadata-
385
386 DEBUG_VS2019_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
387RELEASE_VS2019_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
388NOOPT_VS2019_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
389
390# 2024-11-16 bird: Added our include directory.
391 DEBUG_VS2019_X64_NASM_FLAGS = -Ox -f win64 -g -I@VBOX_PATH_ROOT@/include
392RELEASE_VS2019_X64_NASM_FLAGS = -Ox -f win64 -g -I@VBOX_PATH_ROOT@/include
393NOOPT_VS2019_X64_NASM_FLAGS = -O0 -f win64 -g -I@VBOX_PATH_ROOT@/include
394
395 DEBUG_VS2019_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4281 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
396RELEASE_VS2019_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4281 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data /DEBUG
397NOOPT_VS2019_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4281 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
398
399#################
400# ARM definitions
401#################
402*_VS2019_ARM_CC_PATH = DEF(VS2019_BIN_ARM)\cl.exe
403*_VS2019_ARM_VFRPP_PATH = DEF(VS2019_BIN_ARM)\cl.exe
404*_VS2019_ARM_SLINK_PATH = DEF(VS2019_BIN_ARM)\lib.exe
405*_VS2019_ARM_DLINK_PATH = DEF(VS2019_BIN_ARM)\link.exe
406*_VS2019_ARM_APP_PATH = DEF(VS2019_BIN_ARM)\cl.exe
407*_VS2019_ARM_PP_PATH = DEF(VS2019_BIN_ARM)\cl.exe
408*_VS2019_ARM_ASM_PATH = DEF(VS2019_BIN_ARM)\armasm.exe
409*_VS2019_ARM_ASLCC_PATH = DEF(VS2019_BIN_ARM)\cl.exe
410*_VS2019_ARM_ASLPP_PATH = DEF(VS2019_BIN_ARM)\cl.exe
411*_VS2019_ARM_ASLDLINK_PATH = DEF(VS2019_BIN_ARM)\link.exe
412
413 DEBUG_VS2019_ARM_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gw /Oi- /MP
414RELEASE_VS2019_ARM_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw /Oi- /MP
415NOOPT_VS2019_ARM_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Od /Oi- /MP
416
417 DEBUG_VS2019_ARM_ASM_FLAGS = /nologo /g
418RELEASE_VS2019_ARM_ASM_FLAGS = /nologo
419NOOPT_VS2019_ARM_ASM_FLAGS = /nologo
420
421 DEBUG_VS2019_ARM_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
422RELEASE_VS2019_ARM_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data /DEBUG
423NOOPT_VS2019_ARM_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
424
425#####################
426# AARCH64 definitions
427#####################
428*_VS2019_AARCH64_CC_PATH = DEF(VS2019_BIN_AARCH64)\cl.exe
429*_VS2019_AARCH64_VFRPP_PATH = DEF(VS2019_BIN_AARCH64)\cl.exe
430*_VS2019_AARCH64_SLINK_PATH = DEF(VS2019_BIN_AARCH64)\lib.exe
431*_VS2019_AARCH64_DLINK_PATH = DEF(VS2019_BIN_AARCH64)\link.exe
432*_VS2019_AARCH64_APP_PATH = DEF(VS2019_BIN_AARCH64)\cl.exe
433*_VS2019_AARCH64_PP_PATH = DEF(VS2019_BIN_AARCH64)\cl.exe
434*_VS2019_AARCH64_ASM_PATH = DEF(VS2019_BIN_AARCH64)\armasm64.exe
435*_VS2019_AARCH64_ASLCC_PATH = DEF(VS2019_BIN_AARCH64)\cl.exe
436*_VS2019_AARCH64_ASLPP_PATH = DEF(VS2019_BIN_AARCH64)\cl.exe
437*_VS2019_AARCH64_ASLDLINK_PATH = DEF(VS2019_BIN_AARCH64)\link.exe
438
439 DEBUG_VS2019_AARCH64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Gw /Oi- /MP
440RELEASE_VS2019_AARCH64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /O1b2 /GL /FIAutoGen.h /EHs-c- /GR- /GF /Gw /Oi- /MP
441NOOPT_VS2019_AARCH64_CC_FLAGS = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /FIAutoGen.h /EHs-c- /GR- /GF /Gy /Zi /Od /Oi- /MP
442
443 DEBUG_VS2019_AARCH64_ASM_FLAGS = /nologo /g
444RELEASE_VS2019_AARCH64_ASM_FLAGS = /nologo
445NOOPT_VS2019_AARCH64_ASM_FLAGS = /nologo
446
447 DEBUG_VS2019_AARCH64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /DRIVER /DEBUG
448RELEASE_VS2019_AARCH64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /DRIVER /MERGE:.rdata=.data /DEBUG
449NOOPT_VS2019_AARCH64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=10 /MAP /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:ARM64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /DRIVER /DEBUG
450
451####################################################################################
452# GCC Common
453####################################################################################
454
455*_*_*_OBJCOPY_PATH = echo
456*_*_*_OBJCOPY_FLAGS = objcopy not needed for
457*_*_*_SYMRENAME_PATH = echo
458*_*_*_SYMRENAME_FLAGS = Symbol renaming not needed for
459DEBUG_*_*_OBJCOPY_ADDDEBUGFLAG = --add-gnu-debuglink=$(DEBUG_DIR)/$(MODULE_NAME).debug
460RELEASE_*_*_OBJCOPY_ADDDEBUGFLAG = --add-gnu-debuglink=$(DEBUG_DIR)/$(MODULE_NAME).debug
461NOOPT_*_*_OBJCOPY_ADDDEBUGFLAG = --add-gnu-debuglink=$(DEBUG_DIR)/$(MODULE_NAME).debug
462*_*_*_DTC_FLAGS = -H epapr
463*_*_*_DTCPP_PATH = DEF(DTCPP_BIN)
464*_*_*_DTC_PATH = DEF(DTC_BIN)
465
466DEFINE GCC_ALL_CC_FLAGS = -g -Os -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Wno-array-bounds -include AutoGen.h -fno-common
467DEFINE GCC_ARM_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mlittle-endian -mabi=aapcs -fno-short-enums -funsigned-char -ffunction-sections -fdata-sections -fomit-frame-pointer -Wno-address -mthumb -fno-pic -fno-pie
468DEFINE GCC_IA32_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -m32 -malign-double -freorder-blocks -freorder-blocks-and-partition -O2 -mno-stack-arg-probe @VBOX_MINGW32_Wno@
469DEFINE GCC_X64_CC_FLAGS = DEF(GCC_ALL_CC_FLAGS) -mno-red-zone -Wno-address -mno-stack-arg-probe @VBOX_MINGW32_Wno@
470DEFINE GCC_ARM_CC_XIPFLAGS = -mno-unaligned-access
471DEFINE 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
472DEFINE GCC_AARCH64_CC_XIPFLAGS = -mstrict-align -mgeneral-regs-only
473DEFINE GCC_DLINK_FLAGS_COMMON = -nostdlib --pie
474DEFINE GCC_DLINK2_FLAGS_COMMON = -Wl,--script=$(EDK_TOOLS_PATH)/Scripts/GccBase.lds
475DEFINE GCC_IA32_X64_DLINK_COMMON = DEF(GCC_DLINK_FLAGS_COMMON) --gc-sections
476DEFINE 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
477DEFINE GCC_ARM_DLINK_FLAGS = DEF(GCC_ARM_AARCH64_DLINK_COMMON) -z common-page-size=0x20 -Wl,--pic-veneer
478DEFINE GCC_AARCH64_DLINK_FLAGS = DEF(GCC_ARM_AARCH64_DLINK_COMMON) -z common-page-size=0x20
479DEFINE GCC_ARM_AARCH64_ASLDLINK_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0 DEF(GCC_DLINK2_FLAGS_COMMON) -z common-page-size=0x20
480DEFINE GCC_IA32_X64_ASLDLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT)
481DEFINE GCC_ARM_ASLDLINK_FLAGS = DEF(GCC_ARM_DLINK_FLAGS) -Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT) DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS)
482DEFINE GCC_AARCH64_ASLDLINK_FLAGS = DEF(GCC_AARCH64_DLINK_FLAGS) -Wl,--entry,ReferenceAcpiTable -u $(IMAGE_ENTRY_POINT) DEF(GCC_ARM_AARCH64_ASLDLINK_FLAGS)
483DEFINE GCC_IA32_X64_DLINK_FLAGS = DEF(GCC_IA32_X64_DLINK_COMMON) --entry _$(IMAGE_ENTRY_POINT) --file-alignment 0x20 --section-alignment 0x20 -Map $(DEST_DIR_DEBUG)/$(BASE_NAME).map
484DEFINE GCC_ASM_FLAGS = -c -x assembler -imacros $(DEST_DIR_DEBUG)/AutoGen.h
485DEFINE GCC_PP_FLAGS = -E -x assembler-with-cpp -include $(DEST_DIR_DEBUG)/AutoGen.h
486DEFINE GCC_VFRPP_FLAGS = -x c -E -P -DVFRCOMPILE --include $(DEST_DIR_DEBUG)/$(MODULE_NAME)StrDefs.h
487DEFINE GCC_ASLPP_FLAGS = -x c -E -include AutoGen.h
488DEFINE GCC_ASLCC_FLAGS = -x c
489DEFINE GCC_WINDRES_FLAGS = -J rc -O coff
490DEFINE GCC_DTCPP_FLAGS = -E -x assembler-with-cpp -imacros $(DEST_DIR_DEBUG)/AutoGen.h -nostdinc -undef
491DEFINE GCC_IA32_RC_FLAGS = -I binary -O elf32-i386 -B i386 --rename-section .data=.hii
492DEFINE GCC_X64_RC_FLAGS = -I binary -O elf64-x86-64 -B i386 --rename-section .data=.hii
493DEFINE GCC_ARM_RC_FLAGS = -I binary -O elf32-littlearm -B arm --rename-section .data=.hii
494DEFINE GCC_AARCH64_RC_FLAGS = -I binary -O elf64-littleaarch64 -B aarch64 --rename-section .data=.hii
495
496DEFINE GCC48_ALL_CC_FLAGS = -g -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Wno-array-bounds -ffunction-sections -fdata-sections -include AutoGen.h -fno-common -DSTRING_ARRAY_NAME=$(BASE_NAME)Strings
497DEFINE GCC48_IA32_X64_DLINK_COMMON = -nostdlib -Wl,-n,-q,--gc-sections -z common-page-size=0x20
498DEFINE GCC48_IA32_CC_FLAGS = DEF(GCC48_ALL_CC_FLAGS) -m32 -march=i586 -malign-double -fno-stack-protector -D EFI32 -fno-asynchronous-unwind-tables -Wno-address -fno-pie -fno-pic
499DEFINE GCC48_X64_CC_FLAGS = DEF(GCC48_ALL_CC_FLAGS) -m64 -fno-stack-protector "-DEFIAPI=__attribute__((ms_abi))" -maccumulate-outgoing-args -mno-red-zone -Wno-address -mcmodel=small -fpie -fno-asynchronous-unwind-tables -Wno-address
500DEFINE GCC48_IA32_X64_ASLDLINK_FLAGS = DEF(GCC48_IA32_X64_DLINK_COMMON) -Wl,--entry,ReferenceAcpiTable -u ReferenceAcpiTable
501DEFINE GCC48_IA32_X64_DLINK_FLAGS = DEF(GCC48_IA32_X64_DLINK_COMMON) -Wl,--entry,$(IMAGE_ENTRY_POINT) -u $(IMAGE_ENTRY_POINT) -Wl,-Map,$(DEST_DIR_DEBUG)/$(BASE_NAME).map,--whole-archive
502DEFINE GCC48_IA32_DLINK2_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0x220 DEF(GCC_DLINK2_FLAGS_COMMON)
503DEFINE GCC48_X64_DLINK_FLAGS = DEF(GCC48_IA32_X64_DLINK_FLAGS) -Wl,-melf_x86_64,--oformat=elf64-x86-64,-pie
504DEFINE GCC48_X64_DLINK2_FLAGS = -Wl,--defsym=PECOFF_HEADER_SIZE=0x228 DEF(GCC_DLINK2_FLAGS_COMMON)
505DEFINE GCC48_ASM_FLAGS = DEF(GCC_ASM_FLAGS)
506DEFINE GCC48_ARM_ASM_FLAGS = $(PLATFORM_FLAGS) DEF(GCC_ASM_FLAGS) -mlittle-endian
507DEFINE GCC48_AARCH64_ASM_FLAGS = $(PLATFORM_FLAGS) DEF(GCC_ASM_FLAGS) -mlittle-endian
508DEFINE GCC48_ARM_CC_FLAGS = $(PLATFORM_FLAGS) DEF(GCC_ARM_CC_FLAGS) -fstack-protector -mword-relocations
509DEFINE GCC48_ARM_CC_XIPFLAGS = DEF(GCC_ARM_CC_XIPFLAGS)
510DEFINE GCC48_AARCH64_CC_FLAGS = $(PLATFORM_FLAGS) -mcmodel=large DEF(GCC_AARCH64_CC_FLAGS)
511DEFINE GCC48_AARCH64_CC_XIPFLAGS = DEF(GCC_AARCH64_CC_XIPFLAGS)
512DEFINE GCC48_ARM_DLINK_FLAGS = DEF(GCC_ARM_DLINK_FLAGS) -Wl,--oformat=elf32-littlearm
513DEFINE GCC48_ARM_DLINK2_FLAGS = DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,--defsym=PECOFF_HEADER_SIZE=0x220
514DEFINE GCC48_AARCH64_DLINK_FLAGS = DEF(GCC_AARCH64_DLINK_FLAGS)
515DEFINE GCC48_AARCH64_DLINK2_FLAGS = DEF(GCC_DLINK2_FLAGS_COMMON) -Wl,--defsym=PECOFF_HEADER_SIZE=0x228
516DEFINE GCC48_ARM_ASLDLINK_FLAGS = DEF(GCC_ARM_ASLDLINK_FLAGS) -Wl,--oformat=elf32-littlearm
517DEFINE GCC48_AARCH64_ASLDLINK_FLAGS = DEF(GCC_AARCH64_ASLDLINK_FLAGS)
518DEFINE GCC48_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS)
519
520####################################################################################
521#
522# GCC 4.8 - This configuration is used to compile under Linux to produce
523# PE/COFF binaries using GCC 4.8.
524#
525####################################################################################
526*_GCC48_*_*_FAMILY = GCC
527
528*_GCC48_*_MAKE_PATH = @KMK@
529*_GCC48_*_*_DLL = ENV(GCC48_DLL)
530*_GCC48_*_ASL_PATH = DEF(UNIX_IASL_BIN)
531
532*_GCC48_*_PP_FLAGS = DEF(GCC_PP_FLAGS)
533*_GCC48_*_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS)
534*_GCC48_*_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS)
535*_GCC48_*_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS)
536*_GCC48_*_APP_FLAGS =
537*_GCC48_*_ASL_FLAGS = DEF(IASL_FLAGS)
538*_GCC48_*_ASL_OUTFLAGS = DEF(IASL_OUTFLAGS)
539
540##################
541# GCC48 IA32 definitions
542##################
543*_GCC48_IA32_OBJCOPY_PATH = DEF(GCC48_IA32_PREFIX)objcopy
544*_GCC48_IA32_CC_PATH = DEF(GCC48_IA32_PREFIX)gcc
545*_GCC48_IA32_SLINK_PATH = DEF(GCC48_IA32_PREFIX)ar
546*_GCC48_IA32_DLINK_PATH = DEF(GCC48_IA32_PREFIX)gcc
547*_GCC48_IA32_ASLDLINK_PATH = DEF(GCC48_IA32_PREFIX)gcc
548*_GCC48_IA32_ASM_PATH = DEF(GCC48_IA32_PREFIX)gcc
549*_GCC48_IA32_PP_PATH = DEF(GCC48_IA32_PREFIX)gcc
550*_GCC48_IA32_VFRPP_PATH = DEF(GCC48_IA32_PREFIX)gcc
551*_GCC48_IA32_ASLCC_PATH = DEF(GCC48_IA32_PREFIX)gcc
552*_GCC48_IA32_ASLPP_PATH = DEF(GCC48_IA32_PREFIX)gcc
553*_GCC48_IA32_RC_PATH = DEF(GCC48_IA32_PREFIX)objcopy
554
555*_GCC48_IA32_ASLCC_FLAGS = DEF(GCC48_ASLCC_FLAGS) -m32
556*_GCC48_IA32_ASLDLINK_FLAGS = DEF(GCC48_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_i386
557*_GCC48_IA32_ASM_FLAGS = DEF(GCC48_ASM_FLAGS) -m32 -march=i386
558*_GCC48_IA32_DLINK_FLAGS = DEF(GCC48_IA32_X64_DLINK_FLAGS) -Wl,-m,elf_i386,--oformat=elf32-i386
559*_GCC48_IA32_DLINK2_FLAGS = DEF(GCC48_IA32_DLINK2_FLAGS)
560*_GCC48_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS)
561*_GCC48_IA32_OBJCOPY_FLAGS =
562*_GCC48_IA32_NASM_FLAGS = -f elf32
563
564 DEBUG_GCC48_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS) -Os
565RELEASE_GCC48_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS) -Os -Wno-unused-but-set-variable
566 NOOPT_GCC48_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS) -O0
567
568##################
569# GCC48 X64 definitions
570##################
571*_GCC48_X64_OBJCOPY_PATH = DEF(GCC48_X64_PREFIX)objcopy
572*_GCC48_X64_CC_PATH = DEF(GCC48_X64_PREFIX)gcc
573*_GCC48_X64_SLINK_PATH = DEF(GCC48_X64_PREFIX)ar
574*_GCC48_X64_DLINK_PATH = DEF(GCC48_X64_PREFIX)gcc
575*_GCC48_X64_ASLDLINK_PATH = DEF(GCC48_X64_PREFIX)gcc
576*_GCC48_X64_ASM_PATH = DEF(GCC48_X64_PREFIX)gcc
577*_GCC48_X64_PP_PATH = DEF(GCC48_X64_PREFIX)gcc
578*_GCC48_X64_VFRPP_PATH = DEF(GCC48_X64_PREFIX)gcc
579*_GCC48_X64_ASLCC_PATH = DEF(GCC48_X64_PREFIX)gcc
580*_GCC48_X64_ASLPP_PATH = DEF(GCC48_X64_PREFIX)gcc
581*_GCC48_X64_RC_PATH = DEF(GCC48_X64_PREFIX)objcopy
582
583*_GCC48_X64_ASLCC_FLAGS = DEF(GCC48_ASLCC_FLAGS) -m64
584*_GCC48_X64_ASLDLINK_FLAGS = DEF(GCC48_IA32_X64_ASLDLINK_FLAGS) -Wl,-m,elf_x86_64
585*_GCC48_X64_ASM_FLAGS = DEF(GCC48_ASM_FLAGS) -m64
586*_GCC48_X64_DLINK_FLAGS = DEF(GCC48_X64_DLINK_FLAGS)
587*_GCC48_X64_DLINK2_FLAGS = DEF(GCC48_X64_DLINK2_FLAGS)
588*_GCC48_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS)
589*_GCC48_X64_OBJCOPY_FLAGS =
590*_GCC48_X64_NASM_FLAGS = -f elf64
591
592 DEBUG_GCC48_X64_CC_FLAGS = DEF(GCC48_X64_CC_FLAGS) -Os
593RELEASE_GCC48_X64_CC_FLAGS = DEF(GCC48_X64_CC_FLAGS) -Os -Wno-unused-but-set-variable
594 NOOPT_GCC48_X64_CC_FLAGS = DEF(GCC48_X64_CC_FLAGS) -O0
595
596##################
597# GCC48 ARM definitions
598##################
599*_GCC48_ARM_CC_PATH = DEF(GCC48_ARM_PREFIX)gcc
600*_GCC48_ARM_SLINK_PATH = DEF(GCC48_ARM_PREFIX)ar
601*_GCC48_ARM_DLINK_PATH = DEF(GCC48_ARM_PREFIX)gcc
602*_GCC48_ARM_ASLDLINK_PATH = DEF(GCC48_ARM_PREFIX)gcc
603*_GCC48_ARM_ASM_PATH = DEF(GCC48_ARM_PREFIX)gcc
604*_GCC48_ARM_PP_PATH = DEF(GCC48_ARM_PREFIX)gcc
605*_GCC48_ARM_VFRPP_PATH = DEF(GCC48_ARM_PREFIX)gcc
606*_GCC48_ARM_ASLCC_PATH = DEF(GCC48_ARM_PREFIX)gcc
607*_GCC48_ARM_ASLPP_PATH = DEF(GCC48_ARM_PREFIX)gcc
608*_GCC48_ARM_RC_PATH = DEF(GCC48_ARM_PREFIX)objcopy
609
610*_GCC48_ARM_ASLCC_FLAGS = DEF(GCC48_ASLCC_FLAGS)
611*_GCC48_ARM_ASLDLINK_FLAGS = DEF(GCC48_ARM_ASLDLINK_FLAGS)
612*_GCC48_ARM_ASM_FLAGS = DEF(GCC48_ARM_ASM_FLAGS)
613*_GCC48_ARM_DLINK_FLAGS = DEF(GCC48_ARM_DLINK_FLAGS)
614*_GCC48_ARM_DLINK2_FLAGS = DEF(GCC48_ARM_DLINK2_FLAGS)
615*_GCC48_ARM_DTCPP_FLAGS = DEF(GCC_DTCPP_FLAGS)
616*_GCC48_ARM_PLATFORM_FLAGS = -march=armv7-a
617*_GCC48_ARM_PP_FLAGS = $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)
618*_GCC48_ARM_RC_FLAGS = DEF(GCC_ARM_RC_FLAGS)
619*_GCC48_ARM_VFRPP_FLAGS = $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)
620*_GCC48_ARM_CC_XIPFLAGS = DEF(GCC48_ARM_CC_XIPFLAGS)
621
622 DEBUG_GCC48_ARM_CC_FLAGS = DEF(GCC48_ARM_CC_FLAGS) -O0
623RELEASE_GCC48_ARM_CC_FLAGS = DEF(GCC48_ARM_CC_FLAGS) -Wno-unused-but-set-variable
624 NOOPT_GCC48_ARM_CC_FLAGS = DEF(GCC48_ARM_CC_FLAGS) -O0
625
626##################
627# GCC48 AARCH64 definitions
628##################
629*_GCC48_AARCH64_CC_PATH = DEF(GCC48_AARCH64_PREFIX)gcc
630*_GCC48_AARCH64_SLINK_PATH = DEF(GCC48_AARCH64_PREFIX)ar
631*_GCC48_AARCH64_DLINK_PATH = DEF(GCC48_AARCH64_PREFIX)gcc
632*_GCC48_AARCH64_ASLDLINK_PATH = DEF(GCC48_AARCH64_PREFIX)gcc
633*_GCC48_AARCH64_ASM_PATH = DEF(GCC48_AARCH64_PREFIX)gcc
634*_GCC48_AARCH64_PP_PATH = DEF(GCC48_AARCH64_PREFIX)gcc
635*_GCC48_AARCH64_VFRPP_PATH = DEF(GCC48_AARCH64_PREFIX)gcc
636*_GCC48_AARCH64_ASLCC_PATH = DEF(GCC48_AARCH64_PREFIX)gcc
637*_GCC48_AARCH64_ASLPP_PATH = DEF(GCC48_AARCH64_PREFIX)gcc
638*_GCC48_AARCH64_RC_PATH = DEF(GCC48_AARCH64_PREFIX)objcopy
639
640*_GCC48_AARCH64_ASLCC_FLAGS = DEF(GCC48_ASLCC_FLAGS)
641*_GCC48_AARCH64_ASLDLINK_FLAGS = DEF(GCC48_AARCH64_ASLDLINK_FLAGS)
642*_GCC48_AARCH64_ASM_FLAGS = DEF(GCC48_AARCH64_ASM_FLAGS)
643*_GCC48_AARCH64_DLINK_FLAGS = DEF(GCC48_AARCH64_DLINK_FLAGS)
644*_GCC48_AARCH64_DLINK2_FLAGS = DEF(GCC48_AARCH64_DLINK2_FLAGS)
645*_GCC48_AARCH64_DTCPP_FLAGS = DEF(GCC_DTCPP_FLAGS)
646*_GCC48_AARCH64_PLATFORM_FLAGS =
647*_GCC48_AARCH64_PP_FLAGS = $(PLATFORM_FLAGS) DEF(GCC_PP_FLAGS)
648*_GCC48_AARCH64_RC_FLAGS = DEF(GCC_AARCH64_RC_FLAGS)
649*_GCC48_AARCH64_VFRPP_FLAGS = $(PLATFORM_FLAGS) DEF(GCC_VFRPP_FLAGS)
650*_GCC48_AARCH64_CC_XIPFLAGS = DEF(GCC48_AARCH64_CC_XIPFLAGS)
651
652 DEBUG_GCC48_AARCH64_CC_FLAGS = DEF(GCC48_AARCH64_CC_FLAGS) -O0
653RELEASE_GCC48_AARCH64_CC_FLAGS = DEF(GCC48_AARCH64_CC_FLAGS) -Wno-unused-but-set-variable
654 NOOPT_GCC48_AARCH64_CC_FLAGS = DEF(GCC48_AARCH64_CC_FLAGS) -O0
655
656#################
657# ASM 16 linker definitions
658#################
659*_*_*_ASMLINK_PATH = DEF(WINDDK_BIN16)\link16.exe
660*_*_*_ASMLINK_FLAGS = /nologo /tiny
661
662##################
663# VfrCompiler definitions
664##################
665*_*_*_VFR_PATH = VfrCompile
666*_*_*_VFR_FLAGS = -l -n
667
668##################
669# OptionRom tool definitions
670##################
671*_*_*_OPTROM_PATH = EfiRom
672*_*_*_OPTROM_FLAGS = -e
673
674##################
675# GenFw tool definitions
676##################
677*_*_*_GENFW_PATH = GenFw
678*_*_*_GENFW_FLAGS =
679
680##################
681# Asl Compiler definitions
682##################
683*_*_*_ASLCC_FLAGS = /nologo /c /FIAutoGen.h /TC /Dmain=ReferenceAcpiTable
684*_*_*_ASLDLINK_FLAGS = /NODEFAULTLIB /ENTRY:ReferenceAcpiTable /SUBSYSTEM:CONSOLE
685*_*_*_ASLPP_FLAGS = /nologo /EP /C
686*_*_*_ASL_FLAGS =
687
688##################
689# GenCrc32 tool definitions
690##################
691*_*_*_CRC32_PATH = GenCrc32
692*_*_*_CRC32_GUID = FC1BCDB0-7D31-49AA-936A-A4600D9DD083
693
694##################
695# Rsa2048Sha256Sign tool definitions
696#
697# Notes: This tool definition uses a test signing key for development purposes only.
698# The tool Rsa2048Sha256GenerateKeys can be used to generate a new private/public key
699# and the gEfiSecurityPkgTokenSpaceGuid.PcdRsa2048Sha256PublicKeyBuffer PCD value.
700# A custom tool/script can be implemented using the new private/public key with
701# the Rsa2048Sha256Sign tool and this tool definition can be updated to use a
702# custom tool/script.
703#
704# Generate new private/public key and gEfiSecurityPkgTokenSpaceGuid.PcdRsa2048Sha256PublicKeyBuffer PCD value
705#
706# Rsa2048Sha256GenerateKeys.py -o MyKey.pem --public-key-hash-c MyKey.pcd
707#
708# Custom script example (MyRsa2048Sha256Sign.cmd):
709#
710# Rsa2048Sha256Sign --private-key MyKey.pem %1 %2 %3 %4 %5 %6 %7 %8 %9
711#
712# WARNING: Vendors that uses private keys are responsible for proper management and protection
713# of private keys. Vendors may choose to use infrastructure such as signing servers
714# or signing portals to support the management and protection of private keys.
715#
716##################
717*_*_*_RSA2048SHA256SIGN_PATH = Rsa2048Sha256Sign
718*_*_*_RSA2048SHA256SIGN_GUID = A7717414-C616-4977-9420-844712A735BF
719
720##################
721# BrotliCompress tool definitions
722##################
723*_*_*_BROTLI_PATH = BrotliCompress
724*_*_*_BROTLI_GUID = 3D532050-5CDA-4FD0-879E-0F7F630D5AFB
725
726##################
727# LzmaCompress tool definitions
728##################
729*_*_*_LZMA_PATH = LzmaCompress
730*_*_*_LZMA_GUID = EE4E5898-3914-4259-9D6E-DC7BD79403CF
731
732##################
733# LzmaF86Compress tool definitions with converter for x86 code.
734# It can improve the compression ratio if the input file is IA32 or X64 PE image.
735##################
736*_*_*_LZMAF86_PATH = LzmaF86Compress
737*_*_*_LZMAF86_GUID = D42AE6BD-1352-4bfb-909A-CA72A6EAE889
738
739##################
740# TianoCompress tool definitions
741##################
742*_*_*_TIANO_PATH = TianoCompress
743*_*_*_TIANO_GUID = A31280AD-481E-41B6-95E8-127F4C984779
744
745##################
746# BPDG tool definitions
747##################
748*_*_*_VPDTOOL_PATH = BPDG
749*_*_*_VPDTOOL_GUID = 8C3D856A-9BE6-468E-850A-24F7A8D38E08
750
751##################
752# Pkcs7Sign tool definitions
753##################
754*_*_*_PKCS7SIGN_PATH = Pkcs7Sign
755*_*_*_PKCS7SIGN_GUID = 4AAFD29D-68DF-49EE-8AA9-347D375665A7
756
757##################
758# NASM tool definitions
759##################
760*_*_*_NASM_PATH = @VBOX_NASMCMD@
761# NASMB uses NASM produce a .bin from a .nasmb NASM source file
762*_*_*_NASMB_FLAGS = -f bin -DVBOX
763
764#################
765# Build rule order
766#################
767*_*_*_*_BUILDRULEORDER = nasm asm Asm ASM S s nasmb asm16
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette