From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from ma1-aaemail-dr-lapp01.apple.com (ma1-aaemail-dr-lapp01.apple.com [17.171.2.60]) by mx.groups.io with SMTP id smtpd.web09.29760.1628808797104991328 for ; Thu, 12 Aug 2021 15:53:17 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@apple.com header.s=20180706 header.b=t4p34/rT; spf=pass (domain: apple.com, ip: 17.171.2.60, mailfrom: afish@apple.com) Received: from pps.filterd (ma1-aaemail-dr-lapp01.apple.com [127.0.0.1]) by ma1-aaemail-dr-lapp01.apple.com (8.16.0.42/8.16.0.42) with SMTP id 17CMmqjY037656; Thu, 12 Aug 2021 15:53:10 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apple.com; h=content-type : mime-version : subject : from : in-reply-to : date : cc : content-transfer-encoding : message-id : references : to; s=20180706; bh=6Ytx7kcbNk0M2Xe8Yqj2eLeuuZ0xGouWvoGoGss/B9c=; b=t4p34/rTeMZExvN6JpMEBuNcgb1XMoE/qK05d6YcqYnPo3/M3XimpPLaDKbAU2RYpOJX 19SSJZLYT8gklL+++7RO4bJSAfrVmiFmIN+gyJ1OGM1JwiILI24djG1Cz2mnna5L6JU0 9wIjhKzv0K6Mvom09632xid/YdHw6Ukuo7rk6/5RjikjOfhtLLNyRTnXMMwUzKSUst2D aDAtHcQ0807sRbqq4y7uhe2nb7dXBxHyguu552XDJMSYjBcylOmen/6nSYLQUatGllX5 ETBbi1+GhbzvH4TgxA9hMGgtQaNCnqsRU/7wWcWu5R9ARY7UlklAqrKRajkyqW8311nP /Q== Received: from rn-mailsvcp-mta-lapp04.rno.apple.com (rn-mailsvcp-mta-lapp04.rno.apple.com [10.225.203.152]) by ma1-aaemail-dr-lapp01.apple.com with ESMTP id 3a9ru57e1j-7 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Thu, 12 Aug 2021 15:53:09 -0700 Received: from rn-mailsvcp-mmp-lapp04.rno.apple.com (rn-mailsvcp-mmp-lapp04.rno.apple.com [17.179.253.17]) by rn-mailsvcp-mta-lapp04.rno.apple.com (Oracle Communications Messaging Server 8.1.0.9.20210415 64bit (built Apr 15 2021)) with ESMTPS id <0QXR009TX0WLHLG0@rn-mailsvcp-mta-lapp04.rno.apple.com>; Thu, 12 Aug 2021 15:53:09 -0700 (PDT) Received: from process_milters-daemon.rn-mailsvcp-mmp-lapp04.rno.apple.com by rn-mailsvcp-mmp-lapp04.rno.apple.com (Oracle Communications Messaging Server 8.1.0.9.20210415 64bit (built Apr 15 2021)) id <0QXR008000PWWG00@rn-mailsvcp-mmp-lapp04.rno.apple.com>; Thu, 12 Aug 2021 15:53:09 -0700 (PDT) X-Va-A: X-Va-T-CD: cb83049425a79c8a5fb9f1dafa0fda92 X-Va-E-CD: f4d0bb655782ab825c7a9328fb164ddf X-Va-R-CD: c72241e6c7ad74ea4fd9f173994aebfa X-Va-CD: 0 X-Va-ID: 5b57b382-7f15-40d4-a6ae-b9981d2e8e84 X-V-A: X-V-T-CD: cb83049425a79c8a5fb9f1dafa0fda92 X-V-E-CD: f4d0bb655782ab825c7a9328fb164ddf X-V-R-CD: c72241e6c7ad74ea4fd9f173994aebfa X-V-CD: 0 X-V-ID: a9a3b9da-af9d-4ad0-af74-af9dbc3f6f81 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.391,18.0.790 definitions=2021-08-12_06:2021-08-12,2021-08-12 signatures=0 Received: from [17.235.38.187] (unknown [17.235.38.187]) by rn-mailsvcp-mmp-lapp04.rno.apple.com (Oracle Communications Messaging Server 8.1.0.9.20210415 64bit (built Apr 15 2021)) with ESMTPSA id <0QXR00GMY0WJYN00@rn-mailsvcp-mmp-lapp04.rno.apple.com>; Thu, 12 Aug 2021 15:53:09 -0700 (PDT) MIME-version: 1.0 (Mac OS X Mail 14.0 \(3654.20.0.2.1\)) Subject: Re: [edk2-devel] [PATCH v2 1/2] BaseTools: Define the read-only data section name per toolchain From: "Andrew Fish" In-reply-to: <2b8a9ab8-1019-1ade-cde3-f4492432dc1d@posteo.de> Date: Thu, 12 Aug 2021 15:53:07 -0700 Cc: edk2-devel-groups-io , Bob Feng , Liming Gao , Yuwei Chen , Vitaly Cheptsov Message-id: References: <252525969122e83d9fb9b83edc95c4f6dfd233b4.1628502434.git.mhaeuser@posteo.de> <7787F470-EEE0-4E13-93C1-508844167749@apple.com> <15D26D2D-D4E8-485A-B40F-A89B3C67BF37@apple.com> <215befc7-a214-7c1d-4bba-94442d3f56aa@posteo.de> <347E6A0A-EFD9-4CA4-BBD3-67F4714747F6@apple.com> <544f4fca-40e8-4273-7d28-a581caa814a2@posteo.de> <25E4F188-3573-445A-B355-ADB79BA4E452@apple.com> <2b8a9ab8-1019-1ade-cde3-f4492432dc1d@posteo.de> To: =?utf-8?Q?Marvin_H=C3=A4user?= X-Mailer: Apple Mail (2.3654.20.0.2.1) X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.391,18.0.790 definitions=2021-08-12_06:2021-08-12,2021-08-12 signatures=0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: quoted-printable > On Aug 12, 2021, at 12:26 AM, Marvin H=C3=A4user wro= te: >=20 > On 11/08/2021 19:19, Andrew Fish wrote: >>=20 >>=20 >>> On Aug 11, 2021, at 1:11 AM, Marvin H=C3=A4user > wrote: >>>=20 >>> On 10/08/2021 23:58, Andrew Fish wrote: >>>>=20 >>>>> On Aug 10, 2021, at 2:30 PM, Marvin H=C3=A4user > wrote: >>>>>=20 >>>>> On 10/08/2021 21:35, Andrew Fish via groups.io wro= te: >>>>>>=20 >>>>>>> On Aug 10, 2021, at 1:27 AM, Marvin H=C3=A4user >> wrote: >>>>>>>=20 >>>>>>> On 10/08/2021 06:19, Andrew Fish via groups.io <= http://groups.io > wrote: >>>>>>>>=20 >>>>>>>>> On Aug 9, 2021, at 2:51 AM, Marvin H=C3=A4user > >>> wrote: >>>>>>>>>=20 >>>>>>>>> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3D3318 > >> >>>>>>>>>=20 >>>>>>>>> Different toolchains of the EDK II build system may generate ELF = or >>>>>>>>> Mach-O files, which use the ".rodata" naming convention, or PE/CO= FF >>>>>>>>> files, which use the ".rdata" naming convention. Section permissi= ons >>>>>>>>> are chosen based on this name per file format by NASM. To harden >>>>>>>>> image permission security, and to save space by avoiding both >>>>>>>>> ".rdata" and ".rodata" sections being emitted, expose the appropr= iate >>>>>>>>> name as a preprocessor constant. >>>>>>>>>=20 >>>>>>>>> Cc: Bob Feng = > >>> >>>>>>>>> Cc: Liming Gao > >>> >>>>>>>>> Cc: Yuwei Chen > >>> >>>>>>>>> Cc: Vitaly Cheptsov > = >>> >>>>>>>>> Signed-off-by: Marvin H=C3=A4user > >>> >>>>>>>>> --- >>>>>>>>> BaseTools/Conf/tools_def.template | 172 ++++++++++---------- >>>>>>>>> 1 file changed, 86 insertions(+), 86 deletions(-) >>>>>>>>>=20 >>>>>>>>> diff --git a/BaseTools/Conf/tools_def.template b/BaseTools/Conf/t= ools_def.template >>>>>>>>> index 2e6b382ab623..84d464916c4d 100755 >>>>>>>>> --- a/BaseTools/Conf/tools_def.template >>>>>>>>> +++ b/BaseTools/Conf/tools_def.template >>>>>>>>> @@ -463,9 +463,9 @@ NOOPT_VS2008_IA32_CC_FLAGS =3D /nologo= /c /WX /GS- /W4 /Gs32768 /D UNICODE >>>>>>>>> RELEASE_VS2008_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /cof= f /Zd >>>>>>>>>=20 >>>>>>>>> NOOPT_VS2008_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /cof= f /Zd /Zi >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> - DEBUG_VS2008_IA32_NASM_FLAGS =3D -Ox -f win32 -g >>>>>>>>>=20 >>>>>>>>> -RELEASE_VS2008_IA32_NASM_FLAGS =3D -Ox -f win32 >>>>>>>>>=20 >>>>>>>>> -NOOPT_VS2008_IA32_NASM_FLAGS =3D -O0 -f win32 -g >>>>>>>>>=20 >>>>>>>>> + DEBUG_VS2008_IA32_NASM_FLAGS =3D -Ox -f win32 -g -DRODATA_S= ECTION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +RELEASE_VS2008_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECT= ION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +NOOPT_VS2008_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_S= ECTION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_VS2008_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNO= RE:4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.p= data,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_B= OOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>>>>>=20 >>>>>>>>> RELEASE_VS2008_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNO= RE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,= D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SU= BSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata= =3D.data >>>>>>>>>=20 >>>>>>>>> @@ -495,9 +495,9 @@ NOOPT_VS2008_X64_CC_FLAGS =3D /nologo /= c /WX /GS- /W4 /Gs32768 /D UNICODE /G >>>>>>>>> RELEASE_VS2008_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd >>>>>>>>>=20 >>>>>>>>> NOOPT_VS2008_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd /Zi >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> - DEBUG_VS2008_X64_NASM_FLAGS =3D -Ox -f win64 -g >>>>>>>>>=20 >>>>>>>>> -RELEASE_VS2008_X64_NASM_FLAGS =3D -Ox -f win64 >>>>>>>>>=20 >>>>>>>>> -NOOPT_VS2008_X64_NASM_FLAGS =3D -O0 -f win64 -g >>>>>>>>>=20 >>>>>>>>> + DEBUG_VS2008_X64_NASM_FLAGS =3D -Ox -f win64 -g -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +RELEASE_VS2008_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTIO= N_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +NOOPT_VS2008_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_VS2008_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE= :4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pda= ta,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOO= T_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>>>>>=20 >>>>>>>>> RELEASE_VS2008_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE= :4001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D = /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBS= YSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.= data >>>>>>>>>=20 >>>>>>>>> @@ -574,9 +574,9 @@ NOOPT_VS2008x86_IA32_CC_FLAGS =3D /nolog= o /c /WX /GS- /W4 /Gs32768 /D UNICODE >>>>>>>>> RELEASE_VS2008x86_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /co= ff /Zd >>>>>>>>>=20 >>>>>>>>> NOOPT_VS2008x86_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /co= ff /Zd /Zi >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> - DEBUG_VS2008x86_IA32_NASM_FLAGS =3D -Ox -f win32 -g >>>>>>>>>=20 >>>>>>>>> -RELEASE_VS2008x86_IA32_NASM_FLAGS =3D -Ox -f win32 >>>>>>>>>=20 >>>>>>>>> -NOOPT_VS2008x86_IA32_NASM_FLAGS =3D -O0 -f win32 -g >>>>>>>>>=20 >>>>>>>>> + DEBUG_VS2008x86_IA32_NASM_FLAGS =3D -Ox -f win32 -g -DRODATA_= SECTION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +RELEASE_VS2008x86_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +NOOPT_VS2008x86_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_= SECTION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_VS2008x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGN= ORE:4001 /OPT:REF /OPT:ICF=3D10 /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 >>>>>>>>>=20 >>>>>>>>> RELEASE_VS2008x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGN= ORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata= ,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /S= UBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata= =3D.data >>>>>>>>>=20 >>>>>>>>> @@ -605,9 +605,9 @@ NOOPT_VS2008x86_X64_CC_FLAGS =3D /nolog= o /c /WX /GS- /W4 /Gs32768 /D UNICODE >>>>>>>>> RELEASE_VS2008x86_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd >>>>>>>>>=20 >>>>>>>>> NOOPT_VS2008x86_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd= /Zi >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> - DEBUG_VS2008x86_X64_NASM_FLAGS =3D -Ox -f win64 -g >>>>>>>>>=20 >>>>>>>>> -RELEASE_VS2008x86_X64_NASM_FLAGS =3D -Ox -f win64 >>>>>>>>>=20 >>>>>>>>> -NOOPT_VS2008x86_X64_NASM_FLAGS =3D -O0 -f win64 -g >>>>>>>>>=20 >>>>>>>>> + DEBUG_VS2008x86_X64_NASM_FLAGS =3D -Ox -f win64 -g -DRODATA_= SECTION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +RELEASE_VS2008x86_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +NOOPT_VS2008x86_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_= SECTION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_VS2008x86_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGN= ORE:4001 /OPT:REF /OPT:ICF=3D10 /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 >>>>>>>>>=20 >>>>>>>>> RELEASE_VS2008x86_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGN= ORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata= ,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /S= UBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata= =3D.data >>>>>>>>>=20 >>>>>>>>> @@ -688,9 +688,9 @@ NOOPT_VS2010_IA32_CC_FLAGS =3D /nologo= /c /WX /GS- /W4 /Gs32768 /D UNICODE >>>>>>>>> RELEASE_VS2010_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /cof= f /Zd >>>>>>>>>=20 >>>>>>>>> NOOPT_VS2010_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /cof= f /Zd /Zi >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> - DEBUG_VS2010_IA32_NASM_FLAGS =3D -Ox -f win32 -g >>>>>>>>>=20 >>>>>>>>> -RELEASE_VS2010_IA32_NASM_FLAGS =3D -Ox -f win32 >>>>>>>>>=20 >>>>>>>>> -NOOPT_VS2010_IA32_NASM_FLAGS =3D -O0 -f win32 -g >>>>>>>>>=20 >>>>>>>>> + DEBUG_VS2010_IA32_NASM_FLAGS =3D -Ox -f win32 -g -DRODATA_S= ECTION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +RELEASE_VS2010_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECT= ION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +NOOPT_VS2010_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_S= ECTION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_VS2010_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNO= RE:4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.p= data,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_B= OOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>>>>>=20 >>>>>>>>> RELEASE_VS2010_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNO= RE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,= D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SU= BSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata= =3D.data >>>>>>>>>=20 >>>>>>>>> @@ -720,9 +720,9 @@ NOOPT_VS2010_X64_CC_FLAGS =3D /nologo /= c /WX /GS- /W4 /Gs32768 /D UNICODE /G >>>>>>>>> RELEASE_VS2010_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd >>>>>>>>>=20 >>>>>>>>> NOOPT_VS2010_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd /Zi >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> - DEBUG_VS2010_X64_NASM_FLAGS =3D -Ox -f win64 -g >>>>>>>>>=20 >>>>>>>>> -RELEASE_VS2010_X64_NASM_FLAGS =3D -Ox -f win64 >>>>>>>>>=20 >>>>>>>>> -NOOPT_VS2010_X64_NASM_FLAGS =3D -O0 -f win64 -g >>>>>>>>>=20 >>>>>>>>> + DEBUG_VS2010_X64_NASM_FLAGS =3D -Ox -f win64 -g -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +RELEASE_VS2010_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTIO= N_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +NOOPT_VS2010_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_VS2010_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE= :4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pda= ta,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOO= T_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>>>>>=20 >>>>>>>>> RELEASE_VS2010_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE= :4001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D = /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBS= YSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.= data >>>>>>>>>=20 >>>>>>>>> @@ -799,9 +799,9 @@ NOOPT_VS2010x86_IA32_CC_FLAGS =3D /nolog= o /c /WX /GS- /W4 /Gs32768 /D UNICODE >>>>>>>>> RELEASE_VS2010x86_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /co= ff /Zd >>>>>>>>>=20 >>>>>>>>> NOOPT_VS2010x86_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /co= ff /Zd /Zi >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> - DEBUG_VS2010x86_IA32_NASM_FLAGS =3D -Ox -f win32 -g >>>>>>>>>=20 >>>>>>>>> -RELEASE_VS2010x86_IA32_NASM_FLAGS =3D -Ox -f win32 >>>>>>>>>=20 >>>>>>>>> -NOOPT_VS2010x86_IA32_NASM_FLAGS =3D -O0 -f win32 -g >>>>>>>>>=20 >>>>>>>>> + DEBUG_VS2010x86_IA32_NASM_FLAGS =3D -Ox -f win32 -g -DRODATA_= SECTION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +RELEASE_VS2010x86_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +NOOPT_VS2010x86_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_= SECTION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_VS2010x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGN= ORE:4001 /OPT:REF /OPT:ICF=3D10 /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 >>>>>>>>>=20 >>>>>>>>> RELEASE_VS2010x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGN= ORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata= ,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /S= UBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata= =3D.data >>>>>>>>>=20 >>>>>>>>> @@ -831,9 +831,9 @@ NOOPT_VS2010x86_X64_CC_FLAGS =3D /nolog= o /c /WX /GS- /W4 /Gs32768 /D UNICODE >>>>>>>>> RELEASE_VS2010x86_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd >>>>>>>>>=20 >>>>>>>>> NOOPT_VS2010x86_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd= /Zi >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> - DEBUG_VS2010x86_X64_NASM_FLAGS =3D -Ox -f win64 -g >>>>>>>>>=20 >>>>>>>>> -RELEASE_VS2010x86_X64_NASM_FLAGS =3D -Ox -f win64 >>>>>>>>>=20 >>>>>>>>> -NOOPT_VS2010x86_X64_NASM_FLAGS =3D -O0 -f win64 -g >>>>>>>>>=20 >>>>>>>>> + DEBUG_VS2010x86_X64_NASM_FLAGS =3D -Ox -f win64 -g -DRODATA_= SECTION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +RELEASE_VS2010x86_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +NOOPT_VS2010x86_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_= SECTION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_VS2010x86_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGN= ORE:4001 /OPT:REF /OPT:ICF=3D10 /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 >>>>>>>>>=20 >>>>>>>>> RELEASE_VS2010x86_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGN= ORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata= ,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /S= UBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata= =3D.data >>>>>>>>>=20 >>>>>>>>> @@ -913,9 +913,9 @@ NOOPT_VS2012_IA32_CC_FLAGS =3D /nologo= /arch:IA32 /c /WX /GS- /W4 /Gs32768 >>>>>>>>> RELEASE_VS2012_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /cof= f /Zd >>>>>>>>>=20 >>>>>>>>> NOOPT_VS2012_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /cof= f /Zd /Zi >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> - DEBUG_VS2012_IA32_NASM_FLAGS =3D -Ox -f win32 -g >>>>>>>>>=20 >>>>>>>>> -RELEASE_VS2012_IA32_NASM_FLAGS =3D -Ox -f win32 >>>>>>>>>=20 >>>>>>>>> -NOOPT_VS2012_IA32_NASM_FLAGS =3D -O0 -f win32 -g >>>>>>>>>=20 >>>>>>>>> + DEBUG_VS2012_IA32_NASM_FLAGS =3D -Ox -f win32 -g -DRODATA_S= ECTION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +RELEASE_VS2012_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECT= ION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +NOOPT_VS2012_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_S= ECTION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_VS2012_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNO= RE:4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.p= data,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_B= OOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>>>>>=20 >>>>>>>>> RELEASE_VS2012_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNO= RE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,= D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SU= BSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata= =3D.data >>>>>>>>>=20 >>>>>>>>> @@ -945,9 +945,9 @@ NOOPT_VS2012_X64_CC_FLAGS =3D /nologo /= c /WX /GS- /W4 /Gs32768 /D UNICODE /G >>>>>>>>> RELEASE_VS2012_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd >>>>>>>>>=20 >>>>>>>>> NOOPT_VS2012_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd /Zi >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> - DEBUG_VS2012_X64_NASM_FLAGS =3D -Ox -f win64 -g >>>>>>>>>=20 >>>>>>>>> -RELEASE_VS2012_X64_NASM_FLAGS =3D -Ox -f win64 >>>>>>>>>=20 >>>>>>>>> -NOOPT_VS2012_X64_NASM_FLAGS =3D -O0 -f win64 -g >>>>>>>>>=20 >>>>>>>>> + DEBUG_VS2012_X64_NASM_FLAGS =3D -Ox -f win64 -g -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +RELEASE_VS2012_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTIO= N_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +NOOPT_VS2012_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_VS2012_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE= :4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pda= ta,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOO= T_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>>>>>=20 >>>>>>>>> RELEASE_VS2012_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE= :4001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D = /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBS= YSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.= data >>>>>>>>>=20 >>>>>>>>> @@ -1024,9 +1024,9 @@ NOOPT_VS2012x86_IA32_CC_FLAGS =3D /nol= ogo /arch:IA32 /c /WX /GS- /W4 /Gs32768 >>>>>>>>> RELEASE_VS2012x86_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /co= ff /Zd >>>>>>>>>=20 >>>>>>>>> NOOPT_VS2012x86_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /co= ff /Zd /Zi >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> - DEBUG_VS2012x86_IA32_NASM_FLAGS =3D -Ox -f win32 -g >>>>>>>>>=20 >>>>>>>>> -RELEASE_VS2012x86_IA32_NASM_FLAGS =3D -Ox -f win32 >>>>>>>>>=20 >>>>>>>>> -NOOPT_VS2012x86_IA32_NASM_FLAGS =3D -O0 -f win32 -g >>>>>>>>>=20 >>>>>>>>> + DEBUG_VS2012x86_IA32_NASM_FLAGS =3D -Ox -f win32 -g -DRODATA_= SECTION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +RELEASE_VS2012x86_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +NOOPT_VS2012x86_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_= SECTION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_VS2012x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGN= ORE:4001 /OPT:REF /OPT:ICF=3D10 /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 >>>>>>>>>=20 >>>>>>>>> RELEASE_VS2012x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGN= ORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata= ,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /S= UBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata= =3D.data >>>>>>>>>=20 >>>>>>>>> @@ -1056,9 +1056,9 @@ NOOPT_VS2012x86_X64_CC_FLAGS =3D /nol= ogo /c /WX /GS- /W4 /Gs32768 /D UNICODE >>>>>>>>> RELEASE_VS2012x86_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd >>>>>>>>>=20 >>>>>>>>> NOOPT_VS2012x86_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd= /Zi >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> - DEBUG_VS2012x86_X64_NASM_FLAGS =3D -Ox -f win64 -g >>>>>>>>>=20 >>>>>>>>> -RELEASE_VS2012x86_X64_NASM_FLAGS =3D -Ox -f win64 >>>>>>>>>=20 >>>>>>>>> -NOOPT_VS2012x86_X64_NASM_FLAGS =3D -O0 -f win64 -g >>>>>>>>>=20 >>>>>>>>> + DEBUG_VS2012x86_X64_NASM_FLAGS =3D -Ox -f win64 -g -DRODATA_= SECTION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +RELEASE_VS2012x86_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +NOOPT_VS2012x86_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_= SECTION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_VS2012x86_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGN= ORE:4001 /OPT:REF /OPT:ICF=3D10 /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 >>>>>>>>>=20 >>>>>>>>> RELEASE_VS2012x86_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGN= ORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata= ,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /S= UBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata= =3D.data >>>>>>>>>=20 >>>>>>>>> @@ -1138,9 +1138,9 @@ NOOPT_VS2013_IA32_CC_FLAGS =3D /nolo= go /arch:IA32 /c /WX /GS- /W4 /Gs32768 >>>>>>>>> RELEASE_VS2013_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /cof= f /Zd >>>>>>>>>=20 >>>>>>>>> NOOPT_VS2013_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /cof= f /Zd /Zi >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> - DEBUG_VS2013_IA32_NASM_FLAGS =3D -Ox -f win32 -g >>>>>>>>>=20 >>>>>>>>> -RELEASE_VS2013_IA32_NASM_FLAGS =3D -Ox -f win32 >>>>>>>>>=20 >>>>>>>>> -NOOPT_VS2013_IA32_NASM_FLAGS =3D -O0 -f win32 -g >>>>>>>>>=20 >>>>>>>>> + DEBUG_VS2013_IA32_NASM_FLAGS =3D -Ox -f win32 -g -DRODATA_S= ECTION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +RELEASE_VS2013_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECT= ION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +NOOPT_VS2013_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_S= ECTION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_VS2013_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNO= RE:4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.p= data,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_B= OOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>>>>>=20 >>>>>>>>> RELEASE_VS2013_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNO= RE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,= D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SU= BSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata= =3D.data >>>>>>>>>=20 >>>>>>>>> @@ -1170,9 +1170,9 @@ NOOPT_VS2013_X64_CC_FLAGS =3D /nologo= /c /WX /GS- /W4 /Gs32768 /D UNICODE /G >>>>>>>>> RELEASE_VS2013_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd >>>>>>>>>=20 >>>>>>>>> NOOPT_VS2013_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd /Zi >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> - DEBUG_VS2013_X64_NASM_FLAGS =3D -Ox -f win64 -g >>>>>>>>>=20 >>>>>>>>> -RELEASE_VS2013_X64_NASM_FLAGS =3D -Ox -f win64 >>>>>>>>>=20 >>>>>>>>> -NOOPT_VS2013_X64_NASM_FLAGS =3D -O0 -f win64 -g >>>>>>>>>=20 >>>>>>>>> + DEBUG_VS2013_X64_NASM_FLAGS =3D -Ox -f win64 -g -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +RELEASE_VS2013_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTIO= N_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +NOOPT_VS2013_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_VS2013_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE= :4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pda= ta,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOO= T_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>>>>>=20 >>>>>>>>> RELEASE_VS2013_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE= :4001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D = /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBS= YSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.= data >>>>>>>>>=20 >>>>>>>>> @@ -1249,9 +1249,9 @@ NOOPT_VS2013x86_IA32_CC_FLAGS =3D /nol= ogo /arch:IA32 /c /WX /GS- /W4 /Gs32768 >>>>>>>>> RELEASE_VS2013x86_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /co= ff /Zd >>>>>>>>>=20 >>>>>>>>> NOOPT_VS2013x86_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /co= ff /Zd /Zi >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> - DEBUG_VS2013x86_IA32_NASM_FLAGS =3D -Ox -f win32 -g >>>>>>>>>=20 >>>>>>>>> -RELEASE_VS2013x86_IA32_NASM_FLAGS =3D -Ox -f win32 >>>>>>>>>=20 >>>>>>>>> -NOOPT_VS2013x86_IA32_NASM_FLAGS =3D -O0 -f win32 -g >>>>>>>>>=20 >>>>>>>>> + DEBUG_VS2013x86_IA32_NASM_FLAGS =3D -Ox -f win32 -g -DRODATA_= SECTION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +RELEASE_VS2013x86_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +NOOPT_VS2013x86_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_= SECTION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_VS2013x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGN= ORE:4001 /OPT:REF /OPT:ICF=3D10 /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 >>>>>>>>>=20 >>>>>>>>> RELEASE_VS2013x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGN= ORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata= ,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /S= UBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata= =3D.data >>>>>>>>>=20 >>>>>>>>> @@ -1281,9 +1281,9 @@ NOOPT_VS2013x86_X64_CC_FLAGS =3D /nol= ogo /c /WX /GS- /W4 /Gs32768 /D UNICODE >>>>>>>>> RELEASE_VS2013x86_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd >>>>>>>>>=20 >>>>>>>>> NOOPT_VS2013x86_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd= /Zi >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> - DEBUG_VS2013x86_X64_NASM_FLAGS =3D -Ox -f win64 -g >>>>>>>>>=20 >>>>>>>>> -RELEASE_VS2013x86_X64_NASM_FLAGS =3D -Ox -f win64 >>>>>>>>>=20 >>>>>>>>> -NOOPT_VS2013x86_X64_NASM_FLAGS =3D -O0 -f win64 -g >>>>>>>>>=20 >>>>>>>>> + DEBUG_VS2013x86_X64_NASM_FLAGS =3D -Ox -f win64 -g -DRODATA_= SECTION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +RELEASE_VS2013x86_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +NOOPT_VS2013x86_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_= SECTION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_VS2013x86_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGN= ORE:4001 /OPT:REF /OPT:ICF=3D10 /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 >>>>>>>>>=20 >>>>>>>>> RELEASE_VS2013x86_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGN= ORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata= ,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /S= UBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata= =3D.data >>>>>>>>>=20 >>>>>>>>> @@ -1364,9 +1364,9 @@ NOOPT_VS2015_IA32_CC_FLAGS =3D /nolo= go /arch:IA32 /c /WX /GS- /W4 /Gs32768 >>>>>>>>> RELEASE_VS2015_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /cof= f /Zd >>>>>>>>>=20 >>>>>>>>> NOOPT_VS2015_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /cof= f /Zd /Zi >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> - DEBUG_VS2015_IA32_NASM_FLAGS =3D -Ox -f win32 -g >>>>>>>>>=20 >>>>>>>>> -RELEASE_VS2015_IA32_NASM_FLAGS =3D -Ox -f win32 >>>>>>>>>=20 >>>>>>>>> -NOOPT_VS2015_IA32_NASM_FLAGS =3D -O0 -f win32 -g >>>>>>>>>=20 >>>>>>>>> + DEBUG_VS2015_IA32_NASM_FLAGS =3D -Ox -f win32 -g -DRODATA_S= ECTION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +RELEASE_VS2015_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECT= ION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +NOOPT_VS2015_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_S= ECTION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_VS2015_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNO= RE:4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.p= data,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_B= OOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>>>>>=20 >>>>>>>>> RELEASE_VS2015_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNO= RE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,= D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SU= BSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata= =3D.data >>>>>>>>>=20 >>>>>>>>> @@ -1396,9 +1396,9 @@ NOOPT_VS2015_X64_CC_FLAGS =3D /nologo= /c /WX /GS- /W4 /Gs32768 /D UNICODE /G >>>>>>>>> RELEASE_VS2015_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd >>>>>>>>>=20 >>>>>>>>> NOOPT_VS2015_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd /Zi >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> - DEBUG_VS2015_X64_NASM_FLAGS =3D -Ox -f win64 -g >>>>>>>>>=20 >>>>>>>>> -RELEASE_VS2015_X64_NASM_FLAGS =3D -Ox -f win64 >>>>>>>>>=20 >>>>>>>>> -NOOPT_VS2015_X64_NASM_FLAGS =3D -O0 -f win64 -g >>>>>>>>>=20 >>>>>>>>> + DEBUG_VS2015_X64_NASM_FLAGS =3D -Ox -f win64 -g -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +RELEASE_VS2015_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTIO= N_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +NOOPT_VS2015_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_VS2015_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE= :4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pda= ta,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOO= T_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>>>>>=20 >>>>>>>>> RELEASE_VS2015_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE= :4001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D = /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBS= YSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.= data >>>>>>>>>=20 >>>>>>>>> @@ -1476,9 +1476,9 @@ NOOPT_VS2015x86_IA32_CC_FLAGS =3D /nol= ogo /arch:IA32 /c /WX /GS- /W4 /Gs32768 >>>>>>>>> RELEASE_VS2015x86_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /co= ff /Zd >>>>>>>>>=20 >>>>>>>>> NOOPT_VS2015x86_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /co= ff /Zd /Zi >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> - DEBUG_VS2015x86_IA32_NASM_FLAGS =3D -Ox -f win32 -g >>>>>>>>>=20 >>>>>>>>> -RELEASE_VS2015x86_IA32_NASM_FLAGS =3D -Ox -f win32 >>>>>>>>>=20 >>>>>>>>> -NOOPT_VS2015x86_IA32_NASM_FLAGS =3D -O0 -f win32 -g >>>>>>>>>=20 >>>>>>>>> + DEBUG_VS2015x86_IA32_NASM_FLAGS =3D -Ox -f win32 -g -DRODATA_= SECTION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +RELEASE_VS2015x86_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +NOOPT_VS2015x86_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_= SECTION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_VS2015x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGN= ORE:4001 /OPT:REF /OPT:ICF=3D10 /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 >>>>>>>>>=20 >>>>>>>>> RELEASE_VS2015x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGN= ORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata= ,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /S= UBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata= =3D.data >>>>>>>>>=20 >>>>>>>>> @@ -1508,9 +1508,9 @@ NOOPT_VS2015x86_X64_CC_FLAGS =3D /nol= ogo /c /WX /GS- /W4 /Gs32768 /D UNICODE >>>>>>>>> RELEASE_VS2015x86_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd >>>>>>>>>=20 >>>>>>>>> NOOPT_VS2015x86_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd= /Zi >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> - DEBUG_VS2015x86_X64_NASM_FLAGS =3D -Ox -f win64 -g >>>>>>>>>=20 >>>>>>>>> -RELEASE_VS2015x86_X64_NASM_FLAGS =3D -Ox -f win64 >>>>>>>>>=20 >>>>>>>>> -NOOPT_VS2015x86_X64_NASM_FLAGS =3D -O0 -f win64 -g >>>>>>>>>=20 >>>>>>>>> + DEBUG_VS2015x86_X64_NASM_FLAGS =3D -Ox -f win64 -g -DRODATA_= SECTION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +RELEASE_VS2015x86_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +NOOPT_VS2015x86_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_= SECTION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_VS2015x86_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGN= ORE:4001 /OPT:REF /OPT:ICF=3D10 /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 >>>>>>>>>=20 >>>>>>>>> RELEASE_VS2015x86_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGN= ORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata= ,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /S= UBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata= =3D.data >>>>>>>>>=20 >>>>>>>>> @@ -1586,9 +1586,9 @@ NOOPT_VS2017_IA32_CC_FLAGS =3D /nologo= /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D >>>>>>>>> RELEASE_VS2017_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff = /Zd >>>>>>>>>=20 >>>>>>>>> NOOPT_VS2017_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff = /Zd /Zi >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> - DEBUG_VS2017_IA32_NASM_FLAGS =3D -Ox -f win32 -g >>>>>>>>>=20 >>>>>>>>> -RELEASE_VS2017_IA32_NASM_FLAGS =3D -Ox -f win32 >>>>>>>>>=20 >>>>>>>>> -NOOPT_VS2017_IA32_NASM_FLAGS =3D -O0 -f win32 -g >>>>>>>>>=20 >>>>>>>>> + DEBUG_VS2017_IA32_NASM_FLAGS =3D -Ox -f win32 -g -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +RELEASE_VS2017_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECTIO= N_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +NOOPT_VS2017_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_VS2017_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE= :4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pda= ta,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOO= T_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>>>>>=20 >>>>>>>>> RELEASE_VS2017_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE= :4001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D = /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBS= YSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.= data >>>>>>>>>=20 >>>>>>>>> @@ -1616,9 +1616,9 @@ NOOPT_VS2017_X64_CC_FLAGS =3D /nologo= /c /WX /GS- /W4 /Gs32768 /D UNICODE /G >>>>>>>>> RELEASE_VS2017_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd >>>>>>>>>=20 >>>>>>>>> NOOPT_VS2017_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd /Z= i >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> - DEBUG_VS2017_X64_NASM_FLAGS =3D -Ox -f win64 -g >>>>>>>>>=20 >>>>>>>>> -RELEASE_VS2017_X64_NASM_FLAGS =3D -Ox -f win64 >>>>>>>>>=20 >>>>>>>>> -NOOPT_VS2017_X64_NASM_FLAGS =3D -O0 -f win64 -g >>>>>>>>>=20 >>>>>>>>> + DEBUG_VS2017_X64_NASM_FLAGS =3D -Ox -f win64 -g -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +RELEASE_VS2017_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTIO= N_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +NOOPT_VS2017_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_VS2017_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE= :4001 /IGNORE:4281 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D = /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBS= YSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>>>>>=20 >>>>>>>>> RELEASE_VS2017_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE= :4001 /IGNORE:4281 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECT= ION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY= _POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MER= GE:.rdata=3D.data >>>>>>>>>=20 >>>>>>>>> @@ -1744,9 +1744,9 @@ NOOPT_VS2019_IA32_CC_FLAGS =3D /nologo= /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D >>>>>>>>> RELEASE_VS2019_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff = /Zd >>>>>>>>>=20 >>>>>>>>> NOOPT_VS2019_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff = /Zd /Zi >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> - DEBUG_VS2019_IA32_NASM_FLAGS =3D -Ox -f win32 -g >>>>>>>>>=20 >>>>>>>>> -RELEASE_VS2019_IA32_NASM_FLAGS =3D -Ox -f win32 >>>>>>>>>=20 >>>>>>>>> -NOOPT_VS2019_IA32_NASM_FLAGS =3D -O0 -f win32 -g >>>>>>>>>=20 >>>>>>>>> + DEBUG_VS2019_IA32_NASM_FLAGS =3D -Ox -f win32 -g -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +RELEASE_VS2019_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECTIO= N_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +NOOPT_VS2019_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_VS2019_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE= :4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pda= ta,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOO= T_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>>>>>=20 >>>>>>>>> RELEASE_VS2019_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE= :4001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D = /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBS= YSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.= data >>>>>>>>>=20 >>>>>>>>> @@ -1774,9 +1774,9 @@ NOOPT_VS2019_X64_CC_FLAGS =3D /nologo= /c /WX /GS- /W4 /Gs32768 /D UNICODE /G >>>>>>>>> RELEASE_VS2019_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd >>>>>>>>>=20 >>>>>>>>> NOOPT_VS2019_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd /Z= i >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> - DEBUG_VS2019_X64_NASM_FLAGS =3D -Ox -f win64 -g >>>>>>>>>=20 >>>>>>>>> -RELEASE_VS2019_X64_NASM_FLAGS =3D -Ox -f win64 >>>>>>>>>=20 >>>>>>>>> -NOOPT_VS2019_X64_NASM_FLAGS =3D -O0 -f win64 -g >>>>>>>>>=20 >>>>>>>>> + DEBUG_VS2019_X64_NASM_FLAGS =3D -Ox -f win64 -g -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +RELEASE_VS2019_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTIO= N_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> +NOOPT_VS2019_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_VS2019_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE= :4001 /IGNORE:4281 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D = /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBS= YSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>>>>>=20 >>>>>>>>> RELEASE_VS2019_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE= :4001 /IGNORE:4281 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECT= ION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY= _POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MER= GE:.rdata=3D.data >>>>>>>>>=20 >>>>>>>>> @@ -2030,7 +2030,7 @@ DEFINE GCC_PP_FLAGS = =3D -E -x assembler-with-cpp -include A >>>>>>>>> *_GCC48_IA32_DLINK2_FLAGS =3D DEF(GCC48_IA32_DLINK2_FLAGS= ) >>>>>>>>>=20 >>>>>>>>> *_GCC48_IA32_RC_FLAGS =3D DEF(GCC_IA32_RC_FLAGS) >>>>>>>>>=20 >>>>>>>>> *_GCC48_IA32_OBJCOPY_FLAGS =3D >>>>>>>>>=20 >>>>>>>>> -*_GCC48_IA32_NASM_FLAGS =3D -f elf32 >>>>>>>>>=20 >>>>>>>>> +*_GCC48_IA32_NASM_FLAGS =3D -f elf32 -DRODATA_SECTION_= NAME=3D.rodata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_GCC48_IA32_CC_FLAGS =3D DEF(GCC48_IA32_CC_FLAGS) -O= s >>>>>>>>>=20 >>>>>>>>> RELEASE_GCC48_IA32_CC_FLAGS =3D DEF(GCC48_IA32_CC_FLAGS) -O= s -Wno-unused-but-set-variable >>>>>>>>>=20 >>>>>>>>> @@ -2058,7 +2058,7 @@ RELEASE_GCC48_IA32_CC_FLAGS =3D DEF(G= CC48_IA32_CC_FLAGS) -Os -Wno-unused-but >>>>>>>>> *_GCC48_X64_DLINK2_FLAGS =3D DEF(GCC48_X64_DLINK2_FLAGS) >>>>>>>>>=20 >>>>>>>>> *_GCC48_X64_RC_FLAGS =3D DEF(GCC_X64_RC_FLAGS) >>>>>>>>>=20 >>>>>>>>> *_GCC48_X64_OBJCOPY_FLAGS =3D >>>>>>>>>=20 >>>>>>>>> -*_GCC48_X64_NASM_FLAGS =3D -f elf64 >>>>>>>>>=20 >>>>>>>>> +*_GCC48_X64_NASM_FLAGS =3D -f elf64 -DRODATA_SECTION_N= AME=3D.rodata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_GCC48_X64_CC_FLAGS =3D DEF(GCC48_X64_CC_FLAGS) -Os >>>>>>>>>=20 >>>>>>>>> RELEASE_GCC48_X64_CC_FLAGS =3D DEF(GCC48_X64_CC_FLAGS) -Os = -Wno-unused-but-set-variable >>>>>>>>>=20 >>>>>>>>> @@ -2170,7 +2170,7 @@ RELEASE_GCC48_AARCH64_CC_FLAGS =3D DEF(GC= C48_AARCH64_CC_FLAGS) -Wno-unused-but-s >>>>>>>>> *_GCC49_IA32_DLINK2_FLAGS =3D DEF(GCC49_IA32_DLINK2_FLAGS= ) >>>>>>>>>=20 >>>>>>>>> *_GCC49_IA32_RC_FLAGS =3D DEF(GCC_IA32_RC_FLAGS) >>>>>>>>>=20 >>>>>>>>> *_GCC49_IA32_OBJCOPY_FLAGS =3D >>>>>>>>>=20 >>>>>>>>> -*_GCC49_IA32_NASM_FLAGS =3D -f elf32 >>>>>>>>>=20 >>>>>>>>> +*_GCC49_IA32_NASM_FLAGS =3D -f elf32 -DRODATA_SECTION_= NAME=3D.rodata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_GCC49_IA32_CC_FLAGS =3D DEF(GCC49_IA32_CC_FLAGS) -O= s >>>>>>>>>=20 >>>>>>>>> RELEASE_GCC49_IA32_CC_FLAGS =3D DEF(GCC49_IA32_CC_FLAGS) -O= s -Wno-unused-but-set-variable -Wno-unused-const-variable >>>>>>>>>=20 >>>>>>>>> @@ -2198,7 +2198,7 @@ RELEASE_GCC49_IA32_CC_FLAGS =3D DEF(G= CC49_IA32_CC_FLAGS) -Os -Wno-unused-but >>>>>>>>> *_GCC49_X64_DLINK2_FLAGS =3D DEF(GCC49_X64_DLINK2_FLAGS) >>>>>>>>>=20 >>>>>>>>> *_GCC49_X64_RC_FLAGS =3D DEF(GCC_X64_RC_FLAGS) >>>>>>>>>=20 >>>>>>>>> *_GCC49_X64_OBJCOPY_FLAGS =3D >>>>>>>>>=20 >>>>>>>>> -*_GCC49_X64_NASM_FLAGS =3D -f elf64 >>>>>>>>>=20 >>>>>>>>> +*_GCC49_X64_NASM_FLAGS =3D -f elf64 -DRODATA_SECTION_N= AME=3D.rodata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_GCC49_X64_CC_FLAGS =3D DEF(GCC49_X64_CC_FLAGS) -Os >>>>>>>>>=20 >>>>>>>>> RELEASE_GCC49_X64_CC_FLAGS =3D DEF(GCC49_X64_CC_FLAGS) -Os = -Wno-unused-but-set-variable -Wno-unused-const-variable >>>>>>>>>=20 >>>>>>>>> @@ -2316,7 +2316,7 @@ RELEASE_GCC49_AARCH64_DLINK_XIPFLAGS =3D -z= common-page-size=3D0x20 >>>>>>>>> *_GCC5_IA32_DLINK2_FLAGS =3D DEF(GCC5_IA32_DLINK2_FLAGS) = -no-pie >>>>>>>>>=20 >>>>>>>>> *_GCC5_IA32_RC_FLAGS =3D DEF(GCC_IA32_RC_FLAGS) >>>>>>>>>=20 >>>>>>>>> *_GCC5_IA32_OBJCOPY_FLAGS =3D >>>>>>>>>=20 >>>>>>>>> -*_GCC5_IA32_NASM_FLAGS =3D -f elf32 >>>>>>>>>=20 >>>>>>>>> +*_GCC5_IA32_NASM_FLAGS =3D -f elf32 -DRODATA_SECTION_N= AME=3D.rodata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_GCC5_IA32_CC_FLAGS =3D DEF(GCC5_IA32_CC_FLAGS) -flt= o -Os >>>>>>>>>=20 >>>>>>>>> DEBUG_GCC5_IA32_DLINK_FLAGS =3D DEF(GCC5_IA32_X64_DLINK_FLAG= S) -flto -Os -Wl,-m,elf_i386,--oformat=3Delf32-i386 >>>>>>>>>=20 >>>>>>>>> @@ -2348,7 +2348,7 @@ RELEASE_GCC5_IA32_DLINK_FLAGS =3D DEF(GC= C5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl, >>>>>>>>> *_GCC5_X64_DLINK2_FLAGS =3D DEF(GCC5_X64_DLINK2_FLAGS) >>>>>>>>>=20 >>>>>>>>> *_GCC5_X64_RC_FLAGS =3D DEF(GCC_X64_RC_FLAGS) >>>>>>>>>=20 >>>>>>>>> *_GCC5_X64_OBJCOPY_FLAGS =3D >>>>>>>>>=20 >>>>>>>>> -*_GCC5_X64_NASM_FLAGS =3D -f elf64 >>>>>>>>>=20 >>>>>>>>> +*_GCC5_X64_NASM_FLAGS =3D -f elf64 -DRODATA_SECTION_N= AME=3D.rodata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_GCC5_X64_CC_FLAGS =3D DEF(GCC5_X64_CC_FLAGS) -flto= -DUSING_LTO -Os >>>>>>>>>=20 >>>>>>>>> DEBUG_GCC5_X64_DLINK_FLAGS =3D DEF(GCC5_X64_DLINK_FLAGS) -f= lto -Os >>>>>>>>>=20 >>>>>>>>> @@ -2589,7 +2589,7 @@ DEFINE CLANG38_ALL_CC_FLAGS =3D DEF= (GCC48_ALL_CC_FLAGS) DEF(CLANG38_WARNIN >>>>>>>>> *_CLANG38_IA32_ASM_FLAGS =3D DEF(GCC5_ASM_FLAGS) -m32 = -march=3Di386 DEF(CLANG38_IA32_TARGET) >>>>>>>>>=20 >>>>>>>>> *_CLANG38_IA32_RC_FLAGS =3D DEF(GCC_IA32_RC_FLAGS) >>>>>>>>>=20 >>>>>>>>> *_CLANG38_IA32_OBJCOPY_FLAGS =3D >>>>>>>>>=20 >>>>>>>>> -*_CLANG38_IA32_NASM_FLAGS =3D -f elf32 >>>>>>>>>=20 >>>>>>>>> +*_CLANG38_IA32_NASM_FLAGS =3D -f elf32 -DRODATA_SECTIO= N_NAME=3D.rodata >>>>>>>>>=20 >>>>>>>>> *_CLANG38_IA32_PP_FLAGS =3D DEF(GCC_PP_FLAGS) DEF(CLA= NG38_IA32_TARGET) >>>>>>>>>=20 >>>>>>>>> *_CLANG38_IA32_ASLPP_FLAGS =3D DEF(GCC_ASLPP_FLAGS) DEF(= CLANG38_IA32_TARGET) >>>>>>>>>=20 >>>>>>>>> *_CLANG38_IA32_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) DEF(= CLANG38_IA32_TARGET) >>>>>>>>>=20 >>>>>>>>> @@ -2626,7 +2626,7 @@ NOOPT_CLANG38_IA32_DLINK2_FLAGS =3D DEF= (GCC5_IA32_DLINK2_FLAGS) -O0 >>>>>>>>> *_CLANG38_X64_ASM_FLAGS =3D DEF(GCC5_ASM_FLAGS) -m64 D= EF(CLANG38_X64_TARGET) >>>>>>>>>=20 >>>>>>>>> *_CLANG38_X64_RC_FLAGS =3D DEF(GCC_X64_RC_FLAGS) >>>>>>>>>=20 >>>>>>>>> *_CLANG38_X64_OBJCOPY_FLAGS =3D >>>>>>>>>=20 >>>>>>>>> -*_CLANG38_X64_NASM_FLAGS =3D -f elf64 >>>>>>>>>=20 >>>>>>>>> +*_CLANG38_X64_NASM_FLAGS =3D -f elf64 -DRODATA_SECTION= _NAME=3D.rodata >>>>>>>>>=20 >>>>>>>>> *_CLANG38_X64_PP_FLAGS =3D DEF(GCC_PP_FLAGS) DEF(CLAN= G38_X64_TARGET) >>>>>>>>>=20 >>>>>>>>> *_CLANG38_X64_ASLPP_FLAGS =3D DEF(GCC_ASLPP_FLAGS) DEF(C= LANG38_X64_TARGET) >>>>>>>>>=20 >>>>>>>>> *_CLANG38_X64_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) DEF(C= LANG38_X64_TARGET) >>>>>>>>>=20 >>>>>>>>> @@ -2777,7 +2777,7 @@ DEFINE CLANGPDB_ALL_CC_FLAGS =3D DE= F(GCC48_ALL_CC_FLAGS) DEF(CLANGPDB_WARN >>>>>>>>> *_CLANGPDB_IA32_ASLCC_FLAGS =3D DEF(GCC_ASLCC_FLAGS) -m3= 2 -fno-lto DEF(CLANGPDB_IA32_TARGET) >>>>>>>>>=20 >>>>>>>>> *_CLANGPDB_IA32_ASM_FLAGS =3D DEF(GCC_ASM_FLAGS) -m32 = -march=3Di386 DEF(CLANGPDB_IA32_TARGET) >>>>>>>>>=20 >>>>>>>>> *_CLANGPDB_IA32_OBJCOPY_FLAGS =3D >>>>>>>>>=20 >>>>>>>>> -*_CLANGPDB_IA32_NASM_FLAGS =3D -f win32 >>>>>>>>>=20 >>>>>>>>> +*_CLANGPDB_IA32_NASM_FLAGS =3D -f win32 -DRODATA_SECTI= ON_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> *_CLANGPDB_IA32_PP_FLAGS =3D DEF(GCC_PP_FLAGS) DEF(CL= ANGPDB_IA32_TARGET) >>>>>>>>>=20 >>>>>>>>> *_CLANGPDB_IA32_ASLPP_FLAGS =3D DEF(GCC_ASLPP_FLAGS) DEF= (CLANGPDB_IA32_TARGET) >>>>>>>>>=20 >>>>>>>>> *_CLANGPDB_IA32_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) DEF= (CLANGPDB_IA32_TARGET) >>>>>>>>>=20 >>>>>>>>> @@ -2811,7 +2811,7 @@ NOOPT_CLANGPDB_IA32_DLINK2_FLAGS =3D >>>>>>>>> *_CLANGPDB_X64_ASLCC_FLAGS =3D DEF(GCC_ASLCC_FLAGS) -m64= -fno-lto DEF(CLANGPDB_X64_TARGET) >>>>>>>>>=20 >>>>>>>>> *_CLANGPDB_X64_ASM_FLAGS =3D DEF(GCC_ASM_FLAGS) -m64 D= EF(CLANGPDB_X64_TARGET) >>>>>>>>>=20 >>>>>>>>> *_CLANGPDB_X64_OBJCOPY_FLAGS =3D >>>>>>>>>=20 >>>>>>>>> -*_CLANGPDB_X64_NASM_FLAGS =3D -f win64 >>>>>>>>>=20 >>>>>>>>> +*_CLANGPDB_X64_NASM_FLAGS =3D -f win64 -DRODATA_SECTIO= N_NAME=3D.rdata >>>>>>>>>=20 >>>>>>>>> *_CLANGPDB_X64_PP_FLAGS =3D DEF(GCC_PP_FLAGS) DEF(CLA= NGPDB_X64_TARGET) >>>>>>>>>=20 >>>>>>>>> *_CLANGPDB_X64_ASLPP_FLAGS =3D DEF(GCC_ASLPP_FLAGS) DEF(= CLANGPDB_X64_TARGET) >>>>>>>>>=20 >>>>>>>>> *_CLANGPDB_X64_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) DEF(= CLANGPDB_X64_TARGET) >>>>>>>>>=20 >>>>>>>>> @@ -2878,7 +2878,7 @@ DEFINE CLANGDWARF_X64_DLINK2_FLAGS = =3D -Wl,--defsym=3DPECOFF_HEADER_SIZE=3D0x22 >>>>>>>>> *_CLANGDWARF_IA32_ASM_FLAGS =3D DEF(GCC5_ASM_FLAGS) -m= 32 -march=3Di386 DEF(CLANG38_IA32_TARGET) >>>>>>>>>=20 >>>>>>>>> *_CLANGDWARF_IA32_RC_FLAGS =3D DEF(GCC_IA32_RC_FLAGS) >>>>>>>>>=20 >>>>>>>>> *_CLANGDWARF_IA32_OBJCOPY_FLAGS =3D >>>>>>>>>=20 >>>>>>>>> -*_CLANGDWARF_IA32_NASM_FLAGS =3D -f elf32 >>>>>>>>>=20 >>>>>>>>> +*_CLANGDWARF_IA32_NASM_FLAGS =3D -f elf32 -DRODATA_SEC= TION_NAME=3D.rodata >>>>>>>>>=20 >>>>>>>>> *_CLANGDWARF_IA32_PP_FLAGS =3D DEF(GCC_PP_FLAGS) DEF(= CLANG38_IA32_TARGET) >>>>>>>>>=20 >>>>>>>>> *_CLANGDWARF_IA32_ASLPP_FLAGS =3D DEF(GCC_ASLPP_FLAGS) D= EF(CLANG38_IA32_TARGET) >>>>>>>>>=20 >>>>>>>>> *_CLANGDWARF_IA32_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) D= EF(CLANG38_IA32_TARGET) >>>>>>>>>=20 >>>>>>>>> @@ -2914,7 +2914,7 @@ NOOPT_CLANGDWARF_IA32_DLINK2_FLAGS =3D = DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O0 - >>>>>>>>> *_CLANGDWARF_X64_ASM_FLAGS =3D DEF(GCC5_ASM_FLAGS) -m6= 4 DEF(CLANG38_X64_TARGET) >>>>>>>>>=20 >>>>>>>>> *_CLANGDWARF_X64_RC_FLAGS =3D DEF(GCC_X64_RC_FLAGS) >>>>>>>>>=20 >>>>>>>>> *_CLANGDWARF_X64_OBJCOPY_FLAGS =3D >>>>>>>>>=20 >>>>>>>>> -*_CLANGDWARF_X64_NASM_FLAGS =3D -f elf64 >>>>>>>>>=20 >>>>>>>>> +*_CLANGDWARF_X64_NASM_FLAGS =3D -f elf64 -DRODATA_SECT= ION_NAME=3D.rodata >>>>>>>>>=20 >>>>>>>>> *_CLANGDWARF_X64_PP_FLAGS =3D DEF(GCC_PP_FLAGS) DEF(C= LANG38_X64_TARGET) >>>>>>>>>=20 >>>>>>>>> *_CLANGDWARF_X64_ASLPP_FLAGS =3D DEF(GCC_ASLPP_FLAGS) DE= F(CLANG38_X64_TARGET) >>>>>>>>>=20 >>>>>>>>> *_CLANGDWARF_X64_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) DE= F(CLANG38_X64_TARGET) >>>>>>>>>=20 >>>>>>>>> @@ -2985,7 +2985,7 @@ RELEASE_XCODE5_IA32_DLINK_FLAGS =3D -a= rch i386 -u _$(IMAGE_ENTRY_POINT) -e _$ >>>>>>>>> DEBUG_XCODE5_IA32_ASM_FLAGS =3D -arch i386 -g >>>>>>>>>=20 >>>>>>>>> NOOPT_XCODE5_IA32_ASM_FLAGS =3D -arch i386 -g >>>>>>>>>=20 >>>>>>>>> RELEASE_XCODE5_IA32_ASM_FLAGS =3D -arch i386 >>>>>>>>>=20 >>>>>>>>> - *_XCODE5_IA32_NASM_FLAGS =3D -f macho32 >>>>>>>>>=20 >>>>>>>>> + *_XCODE5_IA32_NASM_FLAGS =3D -f macho32 -DRODATA_SECTION_N= AME=3D.rodata >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>> An EFI Mach-O file does not contain a .rodata section. A Mach-O co= ntains a __DATA segment that is broken up into sections. For a typical EFI = image there are __const, __data, __bss sections in the __DATA segment [1]. >>>>>>> Yes, and ".rodata" is almost a synonym for "__DATA,__const", with a= small exception [1]. Maybe it'd be clearer if the macro was renamed to "NA= SM_RODATA_SECTION_NAME", to indicate this is not just a "raw" name, but NAS= M gives it a semantic meaning? >>>>>>>=20 >>>>>>>> The mtoc [2] tool used to convert mach-O to PE/COFF converts the e= ntire __DATA segment (__const, __data, and __bss) into the .data section. T= hus adding any kind of new data section is a no-op at best. >>>>>>> This is a part I missed, because I do not have an Xcode toolchain a= t hand, so thanks for investigating. However this, in my opinion, is a flaw= with Mach-O/mtoc and not with my patch. It seems like the only difference = between __TEXT,__const and __DATA,__const is whether the data is targeted b= y a relocation or not. Such a concept does not exist for PE/COFF (and I thi= nk not even for ELF, but I'm not too familiar with it), thus the logical PE= /COFF section __DATA,__const should be merged into is .rdata (and .rdata ma= y or may not be merged into .text in an earlier step, I assume transitivity= ). I could change the macro definition to explicitly declare __TEXT,__const= , but that would still put the compiler-emitted data in the wrong section. = Does Xcode provide anything remotely similar to GNU linker scripts which we= can use to move the section? >>>>>>>=20 >>>>>>> Please also note that .rodata is used for Xcode-based toolchains al= ready (in fact, all toolchains, and this is the issue), I'm not regressing = anything. I just expected it to work fine as-is. This patch mainly fixed PE= /COFF-based toolchains, which get both .rdata from the compiler and .rodata= with RX permissions from NASM, because ".rodata" only has a semantic meani= ng for ELF and Mach-O outputs, but not for PE/COFF. >>>>>>>=20 >>>>>>>> If you want something to be read only for Xcode/clang you are bett= er off putting it in the __TEXT section [3]. The __TEXT section is read onl= y and for X64 can not even contain relocations. >>>>>>> Well, this kind of is an issue. We would need to introduce an arbit= rary constraint on the relocation part that holds only for Xcode-based tool= chains. Does the compiler emit an error when data in __TEXT,__const is targ= eted by a relocation? >>>>>> The Xcode linker emits a fatal error on X64 for a relocation in the = __TEXT section, everything needs to be RIP relative and the compiler does t= hat for free. We generally only run into this for hand coded assembler and = the fix is to use RIP relative addressing in the assembly. >>>>> Good, thanks for confirming! Still, this would be a bit of an awkward= constraints for Xcode only. >>>>>=20 >>>> It is a physics problem we can=E2=80=99t fix, so I end up writing some= patches to fix other peoples assembler from time to time. The CI building = with Xcode helps with this a lot. >>>=20 >>> (I think all open ends of the other threads are in here too, so let's d= rop them and go on only here?) >>>=20 >>> Right, ok, thanks! >>>=20 >>>>>>> Also see above regarding compiler-emitted __DATA,__const. >>>>>>>=20 >>>>>> OK so the current nasm `SECTION .rodata`[1] gets mapped to __TEXT,_= _const[2] for Xcode clang, and this is done by nasm (I dumped the object fi= le). GenFw and mtoc only run on executables, also they tend to be conservat= ive as they need to keep the layout the same and the relative layout betwee= n sections the same, but in this case it is nasm placing the data in the te= xt section. >>>>>>=20 >>>>>> So what I=E2=80=99d like to see in the patch is to define RODATA_SEC= TION_NAME to match what is actually happening. So for XCODE that would be `= __TEXT,__const` not `.rodata`. >>>>> We can do that, but what to do about compiler-emitted __DATA,__const? >>>> Sorry I don=E2=80=99t understand what RODATA_SECTION_NAME has to do wi= th the compiler? I thought it was for nasm? >>>=20 >>> Yes, it is for NASM. My point is, the actual issue is not that my macro= uses __DATA,__const, but that __DATA,__const is not merged into .text, but= into .data. Fixing the macro fixes where the NASM definitions go, but what= about the C definitions? I cannot test it, as I said, because I don't have= an Xcode machine, but let's say we have a stupid example like this: >>>=20 >>> volatile UINT32 a; >>> volatile UINT32 *CONST p =3D &a; >>>=20 >>=20 >> In this case p ends up in a __DATA__,__const section since &a requires a= relocation. >=20 > OK, good, thanks! >=20 >>=20 >>=20 >>> The value of p is constant, so it can be placed in a constant data sect= ion. p points to a global variable, so if the compiler does not manage to s= omehow turn this into relative addressing (let's assume it does not), it ne= eds to generate a relocation. This means the compiler cannot put it in __TE= XT,__const, so it has to put it in __DATA,__const (of course it could put i= t in other __DATA sections, but let's assume the compiler agrees this shoul= d be read-only). The very same issue will arise and no matter the choice of= the compiler, this will end up in .data. Do you agree? Or do we have some = guarantee that Apple Clang cannot emit __DATA,__const? >>=20 >> I don=E2=80=99t see your bigger point. The compiler is free to implement= as it sees fit. Which section some code ends up in is more of an implement= ation detail for the compiler, and we can=E2=80=99t really depend on that? >=20 > Your point, rightfully, was that things that we request to be read-only (= may) end up being read-write. My issue is that, if the compiler requests th= is pointer to be read-only (it may not, but also it may), our PE executable= does not honour it either. __DATA,__const is a section for constant data, = and we put it into a read-write section. The bigger point is, whenever the = compile stack wants something read-only (be that NASM or be that Apple Clan= g, anything really), we should actually ensure it is read-only. I can do th= at for only NASM by forcing the __TEXT,__const section name (at the cost of= prohibiting relocs), but I do not know how to do it for Apple Clang. At wo= rst we could take a hacked-ish solution, where all Mach-O segments are conv= erted to PE/COFF sections - with the exception of the __DATA,__const sectio= n, which, if aligned on a segment alignment boundary, can be inserted betwe= en the two other parts .data is split into. I read in the XNU source that t= he ARM protection code does something roughly like this [1], but I'm really= far from well-versed in the deep details of macOS. >=20 > Sorry for this not being "integrated" in above text, but I found two more= things while looking for citation 1. >=20 > 1) Mach-O sections can be renamed, including the preceding segment name [= 2]. According to the very next line, the example actually creates a new seg= ment. Does it allow merging into another, existing segment? What if I did s= omething like: >=20 > -Wl,-rename_section,__DATA,__const,__TEXT,__const2 >=20 > or even >=20 > -Wl,-rename_section,__DATA,__const,__TEXT,__const >=20 > i.e. can it merge two sections together? if __DATA,__const had data with = relocs, would the renaming trigger the "no relocs" error of __TEXT, or does= that happen before section renaming? Any chance it can be turned off? >=20 > 1.1) Actually, for the standalone .rodata section, we can just rename it = to __DATA_CONST,__const, as I have seen elsewhere in XNU. No hacked-ish sol= ution needed. :) >=20 > 2) We actually can force the compiler to put data in the constant data se= gment [3]. This is of course not used in EDK II, and probably neither porta= ble nor necessary, but an interesting detail. I really think we should hono= ur it either way. >=20 > I will likely try to get my hands on some sort of Apple development envir= onment soon, but I cannot promise much right now. I think it really is bett= er if I can test through all toolchains myself. If you release Apple Clang = for Linux, I also won't complain of course. :) >=20 When I ask compiler questions to my compiler peeps they sometime answer via= : https://godbolt.org. You can pas -emit-llvm, -S, or actually run code all= from the webpage. It lets you compare the output of lots of versions of cl= ang and compare it with other compilers too. You might find that useful for= your research.=20 For EFI/EDKII clang is mostly just clang (strange triple for x86_64). It is= ld64 that is macOS specific, and there is not cross version of ld64 that = I know about.=20 FYI I worked really closely with the owner of ld64, Nick, when we got EFI w= orking. What looks like the strange set of args is what is required to make= ld64 =E2=80=9Cdo the right thing=E2=80=9D. The biggest portability issue w= ith ld64 is it does not support the GCC ld linker scripts. I think I=E2=80=99ve forgotten to mention one, relevant, historical point. = One of the reasons that sections got collapsed together was to save size. T= his is the same reason you see the page size/section alignment set to 0x20 = (32 bytes). 32 bytes was the smallest alignment the VC++ would support back= in the day. In recent times the runtime code got converted to 4K section a= lignment so the OS could provide better page based protection. That ended u= p not being too bad as all that code is stored compressed, and it compresse= s well. Usually the biggest size risk is PEI as it is common for chunks of = that code to run directly from ROM, and you would be surprised how much com= plexity can be involved in turning on DRAM, and that makes for larger PEIMs= .=20 Thanks, Andrew Fish >>=20 >>>=20 >>>>>> We should double check what is happening for ELF on x86, ARM, RiskV,= etc. and do the same thing. I assume all the tools that generate PE/COFF d= irectly are good with .rodata? >>>>> They are not, that is the whole point of the patch in its current sha= pe. .rodata is valid for ELF and Mach-O, PE/COFF needs .rdata. >>>>>=20 >>>>>> I think it is likely as simple as dumping the EFL object file in obj= dump or gdb for the given toolchain (like my Xcode example). >>>>>>=20 >>>>>> TL;DR It looks to me like nasm does some SECTION translations under = the hood to make code portable, and I=E2=80=99d like to make sure we captur= e those in the new NASM_RODATA_SECTION_NAME. If some one is doing a securit= y review having NASM_RODATA_SECTION_NAME is going to imply that a .rodata s= ection is being used by that specific toolchain, and I think that is much w= orse than the current =E2=80=9Cmagic=E2=80=9D behavior in nasm. We are much= better off explaining what is really happening, since it is not very obvio= us. >>>>> I feel like I'm too tired to get the point. Do you mean you want comm= ents whenever this section name is used? Or comments in tools_def? >>>>>=20 >>>> I think I=E2=80=99d settle for a more descriptive commit comment that = better defines what the define means like I mentioned in the other mail. >>>=20 >>> Hmm no, we can do that too, but in that case I really want comments in = the code. tools_def is not really documented at all, maybe it is time to in= troduce an example comment so at least new things get commented? Maybe just= the start of a macro list. Relying on "git blame" to figure out simple thi= ngs is rather awful. >>>=20 >>> One more thing from another thread: Yes, the new macro should refer to = object file section naming. I want this patch to get object file sections p= roper and sound. From there on we can fix the linking stage to emit proper = and sound executables in a later patch. >>>=20 >>=20 >> OK then please refactor the commit message to make it clear that this pa= tch is to get the correct section in the object files, and work is still ne= ed to get this into executable images. >=20 > Sure. >=20 >>=20 >> For Xcode you can make it __DATA__,__const since that is the closest thi= ng to read only data and I think that is your intent. >=20 > I would like to do that, but only if we can ensure __DATA,__const is merg= ed into .text, or is a separate RNX section. >=20 >>=20 >> GenFW is part of EDKII BaseTools and mtoc is part of the open source CCT= OOLS project and both those tools would need to be modified to create a .ro= data section in PE/COFF. >=20 > Yes, that should not be a big problem. Remaining issues for me: > 1) How to merge __DATA,__const into .text, or how to emit a standalone .r= odata section, for Xcode-based toolchains? (Some ideas above, will ping Vit= aly soon as well) > 2) How to submit modified mtoc? Any chance it could be maintained in EDK = II like GenFw? (Would be nice if you could provide some insight) > 3) How to merge .rdata into .text for MSVC? (I will try to research this = soon-ish, but no promises) > 4) How to design a toggle for the platform maintainer to choose between .= text merge and standalone .rodata? >=20 > Please note that I'm not asking you to research any of those questions (b= ut 2) would be nice :) ), this is merely a summary of open points till the = second stage (correct executables, not just correct object sections) can be= properly approached. >=20 > Thanks for your time and insight! >=20 > Best regards, > Marvin >=20 >=20 > [1] https://github.com/apple/darwin-xnu/blob/a1babec6b135d1f35b2590a1990a= f3c5c5393479/osfmk/arm/arm_vm_init.c#L318-L324 >=20 > [2] https://github.com/apple/darwin-xnu/blob/2ff845c2e033bd0ff64b5b6aa606= 3a1f8f65aa32/makedefs/MakeInc.def#L578 >=20 > [3] https://github.com/apple/darwin-xnu/blob/8f02f2a044b9bb1ad951987ef5ba= b20ec9486310/libsa/lastkerneldataconst.c#L48 >=20 >>=20 >> Thanks, >>=20 >> Andrew Fish >>=20 >>> Best regards, >>> Marvin >>>=20 >>>>=20 >>>> Thanks, >>>>=20 >>>> Andrew Fish >>>>=20 >>>>> Best regards, >>>>> Marvin >>>>>=20 >>>>>> [1] https://github.com/tianocore/edk2/blob/master/UefiCpuPkg/Library= /BaseUefiCpuLib/X64/InitializeFpu.nasm#L14 > >>>>>>=20 >>>>>> [2] $otool -V -s __TEXT __constBuild/OvmfX64/DEBUG_XCODE5/X64/UefiCp= uPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib/OUTPUT/X64/InitializeFpu.obj >>>>>> Build//OvmfX64/DEBUG_XCODE5/X64/UefiCpuPkg/Library/BaseUefiCpuLib/Ba= seUefiCpuLib/OUTPUT/X64/InitializeFpu.obj: >>>>>> Contents of (__TEXT,__const) section >>>>>> 0000001d 7f 03 80 1f 00 00 >>>>>>=20 >>>>>> $ otool -l Build//OvmfX64/DEBUG_XCODE5/X64/UefiCpuPkg/Library/BaseUe= fiCpuLib/BaseUefiCpuLib/OUTPUT/X64/InitializeFpu.obj >>>>>> Build/OvmfX64/DEBUG_XCODE5/X64/UefiCpuPkg/Library/BaseUefiCpuLib/Bas= eUefiCpuLib/OUTPUT/X64/InitializeFpu.obj: >>>>>> Load command 0 >>>>>> cmd LC_SEGMENT_64 >>>>>> cmdsize 232 >>>>>> segname >>>>>> vmaddr 0x0000000000000000 >>>>>> vmsize 0x0000000000000026 >>>>>> fileoff 288 >>>>>> filesize 38 >>>>>> maxprot 0x00000007 >>>>>> initprot 0x00000007 >>>>>> nsects 2 >>>>>> flags 0x0 >>>>>> Section >>>>>> sectname __text >>>>>> segname __TEXT >>>>>> addr 0x0000000000000000 >>>>>> size 0x000000000000001d >>>>>> offset 288 >>>>>> align 2^0 (1) >>>>>> reloff 328 >>>>>> nreloc 2 >>>>>> flags 0x80000500 >>>>>> reserved1 0 >>>>>> reserved2 0 >>>>>> Section >>>>>> sectname __const >>>>>> segname __TEXT >>>>>> addr 0x000000000000001d >>>>>> size 0x0000000000000006 >>>>>> offset 320 >>>>>> align 2^0 (1) >>>>>> reloff 0 >>>>>> nreloc 0 >>>>>> flags 0x00000000 >>>>>> reserved1 0 >>>>>> reserved2 0 >>>>>> Load command 1 >>>>>> cmd LC_SYMTAB >>>>>> cmdsize 24 >>>>>> symoff 344 >>>>>> nsyms 3 >>>>>> stroff 392 >>>>>> strsize 63 >>>>>>=20 >>>>>> Thanks, >>>>>>=20 >>>>>> Andrew Fish >>>>>>=20 >>>>>>=20 >>>>>>> Thanks for your notes and insight! >>>>>>>=20 >>>>>>> Best regards, >>>>>>> Marvin >>>>>>>=20 >>>>>>>=20 >>>>>>> [1] >>>>>>> "For compatibility with other Unix platforms, the following standar= d names are also supported: >>>>>>> [...] >>>>>>> .rodata =3D __DATA,__const data >>>>>>> [...] >>>>>>> If the .rodata section contains no relocations, it is instead put i= nto the __TEXT,__const section unless this section has already been specifi= ed explicitly." >>>>>>> https://www.nasm.us/xdoc/2.13.01/html/nasmdoc7.html > >>>>>>>=20 >>>>>>>> [1] otool -lh DxeCore.dll >>>>>>>> ... >>>>>>>> Load command 1 >>>>>>>> cmd LC_SEGMENT_64 >>>>>>>> cmdsize 312 >>>>>>>> segname __DATA >>>>>>>> vmaddr 0x000000000002b000 >>>>>>>> vmsize 0x0000000000147000 >>>>>>>> fileoff 180224 >>>>>>>> filesize 8192 >>>>>>>> maxprot 0x00000003 >>>>>>>> initprot 0x00000003 >>>>>>>> nsects 3 >>>>>>>> flags 0x0 >>>>>>>> Section >>>>>>>> sectname __const >>>>>>>> segname __DATA >>>>>>>> addr 0x000000000002b000 >>>>>>>> size 0x0000000000000718 >>>>>>>> offset 180224 >>>>>>>> align 2^4 (16) >>>>>>>> reloff 0 >>>>>>>> nreloc 0 >>>>>>>> flags 0x00000000 >>>>>>>> reserved1 0 >>>>>>>> reserved2 0 >>>>>>>> Section >>>>>>>> sectname __data >>>>>>>> segname __DATA >>>>>>>> addr 0x000000000002b720 >>>>>>>> size 0x00000000000014f0 >>>>>>>> offset 182048 >>>>>>>> align 2^4 (16) >>>>>>>> reloff 0 >>>>>>>> nreloc 0 >>>>>>>> flags 0x00000000 >>>>>>>> reserved1 0 >>>>>>>> reserved2 0 >>>>>>>> Section >>>>>>>> sectname __bss >>>>>>>> segname __DATA >>>>>>>> addr 0x000000000002cc10 >>>>>>>> size 0x0000000000144e11 >>>>>>>> offset 0 >>>>>>>> align 2^4 (16) >>>>>>>> reloff 0 >>>>>>>> nreloc 0 >>>>>>>> flags 0x00000001 >>>>>>>> reserved1 0 >>>>>>>> reserved2 0 >>>>>>>> =E2=80=A6 >>>>>>>>=20 >>>>>>>> [2] https://opensource.apple.com/source/cctools/cctools-698/efitoo= ls/mtoc.c.auto.html > >>>>>>>>=20 >>>>>>>> [3] otool more output=E2=80=A6 >>>>>>>> Load command 0 >>>>>>>> cmd LC_SEGMENT_64 >>>>>>>> cmdsize 392 >>>>>>>> segname __TEXT >>>>>>>> vmaddr 0x0000000000000240 >>>>>>>> vmsize 0x00000000000296c0 >>>>>>>> fileoff 1184 >>>>>>>> filesize 169664 >>>>>>>> maxprot 0x00000005 >>>>>>>> initprot 0x00000005 >>>>>>>> nsects 4 >>>>>>>> flags 0x0 >>>>>>>> Section >>>>>>>> sectname __text >>>>>>>> segname __TEXT >>>>>>>> addr 0x0000000000000240 >>>>>>>> size 0x000000000002489f >>>>>>>> offset 1184 >>>>>>>> align 2^3 (8) >>>>>>>> reloff 0 >>>>>>>> nreloc 0 >>>>>>>> flags 0x80000400 >>>>>>>> reserved1 0 >>>>>>>> reserved2 0 >>>>>>>> Section >>>>>>>> sectname __cstring >>>>>>>> segname __TEXT >>>>>>>> addr 0x0000000000024ae0 >>>>>>>> size 0x000000000000496d >>>>>>>> offset 150848 >>>>>>>> align 2^4 (16) >>>>>>>> reloff 0 >>>>>>>> nreloc 0 >>>>>>>> flags 0x00000002 >>>>>>>> reserved1 0 >>>>>>>> reserved2 0 >>>>>>>> Section >>>>>>>> sectname __ustring >>>>>>>> segname __TEXT >>>>>>>> addr 0x000000000002944e >>>>>>>> size 0x0000000000000048 >>>>>>>> offset 169646 >>>>>>>> align 2^1 (2) >>>>>>>> reloff 0 >>>>>>>> nreloc 0 >>>>>>>> flags 0x00000000 >>>>>>>> reserved1 0 >>>>>>>> reserved2 0 >>>>>>>> Section >>>>>>>> sectname __const >>>>>>>> segname __TEXT >>>>>>>> addr 0x00000000000294a0 >>>>>>>> size 0x0000000000000448 >>>>>>>> offset 169728 >>>>>>>> align 2^4 (16) >>>>>>>> reloff 0 >>>>>>>> nreloc 0 >>>>>>>> flags 0x00000000 >>>>>>>> reserved1 0 >>>>>>>> reserved2 0 >>>>>>>>=20 >>>>>>>> Thanks, >>>>>>>>=20 >>>>>>>> Andrew Fish >>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> DEBUG_XCODE5_IA32_CC_FLAGS =3D -arch i386 -c -g -Os -Wa= ll -Werror -include AutoGen.h -funsigned-char -fno-stack-protector -fno-bui= ltin -fshort-wchar -fasm-blocks -mdynamic-no-pic -mno-implicit-float -mms-b= itfields -msoft-float -Wno-unused-parameter -Wno-missing-braces -Wno-missin= g-field-initializers -Wno-tautological-compare -Wno-sign-compare -Wno-varar= gs -ftrap-function=3Dundefined_behavior_has_been_optimized_away_by_clang $(= PLATFORM_FLAGS) >>>>>>>>>=20 >>>>>>>>> @@ -3003,7 +3003,7 @@ RELEASE_XCODE5_X64_DLINK_FLAGS =3D -ar= ch x86_64 -u _$(IMAGE_ENTRY_POINT) -e _ >>>>>>>>> DEBUG_XCODE5_X64_ASM_FLAGS =3D -arch x86_64 -g >>>>>>>>>=20 >>>>>>>>> NOOPT_XCODE5_X64_ASM_FLAGS =3D -arch x86_64 -g >>>>>>>>>=20 >>>>>>>>> RELEASE_XCODE5_X64_ASM_FLAGS =3D -arch x86_64 >>>>>>>>>=20 >>>>>>>>> - *_XCODE5_X64_NASM_FLAGS =3D -f macho64 >>>>>>>>>=20 >>>>>>>>> + *_XCODE5_X64_NASM_FLAGS =3D -f macho64 -DRODATA_SECTION_NA= ME=3D.rodata >>>>>>>>>=20 >>>>>>>>> *_XCODE5_*_PP_FLAGS =3D -E -x assembler-with-cpp -include= AutoGen.h >>>>>>>>>=20 >>>>>>>>> *_XCODE5_*_VFRPP_FLAGS =3D -x c -E -P -DVFRCOMPILE -include = $(MODULE_NAME)StrDefs.h >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>> -- >>>>>>>>> 2.31.1 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>>>>>=20 >>>>>=20 >>>>>=20 >>>>>=20 >>>>>=20 >>>=20 >>>=20 >>>=20 >>>=20 >>=20 >=20