From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from ma1-aaemail-dr-lapp02.apple.com (ma1-aaemail-dr-lapp02.apple.com [17.171.2.68]) by mx.groups.io with SMTP id smtpd.web08.10635.1628702393908496116 for ; Wed, 11 Aug 2021 10:19:54 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@apple.com header.s=20180706 header.b=AzY+Xo+P; spf=pass (domain: apple.com, ip: 17.171.2.68, mailfrom: afish@apple.com) Received: from pps.filterd (ma1-aaemail-dr-lapp02.apple.com [127.0.0.1]) by ma1-aaemail-dr-lapp02.apple.com (8.16.0.42/8.16.0.42) with SMTP id 17BHHTIQ009199; Wed, 11 Aug 2021 10:19:25 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apple.com; h=from : message-id : content-type : mime-version : subject : date : in-reply-to : cc : to : references; s=20180706; bh=QukTY0v5EVBmVBwB/w3t6ohncYC7e8OBTMi5+RNyYZc=; b=AzY+Xo+PyC+Dp80EVaiglpaaXkISInoMOWvzRQ9jxe3STRmKtDeWEovJdyLeY960oSWD Lg1Y8V6tQ08+JAvchM1p7LFjn3DTzK+z6esMig/LstWXATIi6MxH++yYfI8vK3hBfPL2 9wXi6MBvF8SgaXP+rtkB/GEYs7g+u1gw4tj+7r9P6bF/pR5oOxWV15ztJeQCxDPPh6kt cCPG3HPseVKp9v//JrLSQ0pDQnxBuuid/ckunU41C5h9ShXuEcutSyoq4Rch1IF1pTXR OfDEPa1ULzgttAlpRQKK0vvMn1WXcVJtSr0UAK8p89Wiy5QgNR+IBpBfk2aJwIQQyci6 zA== Received: from rn-mailsvcp-mta-lapp02.rno.apple.com (rn-mailsvcp-mta-lapp02.rno.apple.com [10.225.203.150]) by ma1-aaemail-dr-lapp02.apple.com with ESMTP id 3a9put0uwc-4 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Wed, 11 Aug 2021 10:19:25 -0700 Received: from rn-mailsvcp-mmp-lapp01.rno.apple.com (rn-mailsvcp-mmp-lapp01.rno.apple.com [17.179.253.14]) by rn-mailsvcp-mta-lapp02.rno.apple.com (Oracle Communications Messaging Server 8.1.0.9.20210415 64bit (built Apr 15 2021)) with ESMTPS id <0QXO00SX9QSCLP80@rn-mailsvcp-mta-lapp02.rno.apple.com>; Wed, 11 Aug 2021 10:19:24 -0700 (PDT) Received: from process_milters-daemon.rn-mailsvcp-mmp-lapp01.rno.apple.com by rn-mailsvcp-mmp-lapp01.rno.apple.com (Oracle Communications Messaging Server 8.1.0.9.20210415 64bit (built Apr 15 2021)) id <0QXO00R00QAIWL00@rn-mailsvcp-mmp-lapp01.rno.apple.com>; Wed, 11 Aug 2021 10:19:24 -0700 (PDT) X-Va-A: X-Va-T-CD: 9ad46be6e1c3c1a24e92ea4dad46d58d X-Va-E-CD: f4d0bb655782ab825c7a9328fb164ddf X-Va-R-CD: c72241e6c7ad74ea4fd9f173994aebfa X-Va-CD: 0 X-Va-ID: 421217c1-3d7c-4a7d-bc2b-e1275be5d71a X-V-A: X-V-T-CD: 9ad46be6e1c3c1a24e92ea4dad46d58d X-V-E-CD: f4d0bb655782ab825c7a9328fb164ddf X-V-R-CD: c72241e6c7ad74ea4fd9f173994aebfa X-V-CD: 0 X-V-ID: 43235b1c-8fa7-43b2-9d59-f309b8574aea X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.391,18.0.790 definitions=2021-08-11_06:2021-08-11,2021-08-11 signatures=0 Received: from [17.235.63.152] (unknown [17.235.63.152]) by rn-mailsvcp-mmp-lapp01.rno.apple.com (Oracle Communications Messaging Server 8.1.0.9.20210415 64bit (built Apr 15 2021)) with ESMTPSA id <0QXO00HORQS9IU00@rn-mailsvcp-mmp-lapp01.rno.apple.com>; Wed, 11 Aug 2021 10:19:23 -0700 (PDT) From: "Andrew Fish" Message-id: <25E4F188-3573-445A-B355-ADB79BA4E452@apple.com> 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 Date: Wed, 11 Aug 2021 10:19:21 -0700 In-reply-to: <544f4fca-40e8-4273-7d28-a581caa814a2@posteo.de> Cc: Bob Feng , Liming Gao , Yuwei Chen , Vitaly Cheptsov To: edk2-devel-groups-io , =?utf-8?Q?Marvin_H=C3=A4user?= 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> 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-11_06:2021-08-11,2021-08-11 signatures=0 Content-type: multipart/alternative; boundary="Apple-Mail=_35E7B06B-247A-4C4F-B5BA-8D3C5E101C5B" --Apple-Mail=_35E7B06B-247A-4C4F-B5BA-8D3C5E101C5B Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 > On Aug 11, 2021, at 1:11 AM, Marvin H=C3=A4user wrot= e: >=20 > On 10/08/2021 23:58, Andrew Fish wrote: >>=20 >>> On Aug 10, 2021, at 2:30 PM, Marvin H=C3=A4user wr= ote: >>>=20 >>> On 10/08/2021 21:35, Andrew Fish via groups.io wrote: >>>>=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 wro= te: >>>>>>=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/COFF >>>>>>> files, which use the ".rdata" naming convention. Section permission= s >>>>>>> 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 appropria= te >>>>>>> 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/too= ls_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 /coff = /Zd >>>>>>>=20 >>>>>>> NOOPT_VS2008_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff = /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_SEC= TION_NAME=3D.rdata >>>>>>>=20 >>>>>>> +RELEASE_VS2008_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECTIO= N_NAME=3D.rdata >>>>>>>=20 >>>>>>> +NOOPT_VS2008_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> DEBUG_VS2008_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_VS2008_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 >>>>>>> @@ -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_SECTI= ON_NAME=3D.rdata >>>>>>>=20 >>>>>>> +RELEASE_VS2008_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTION_= NAME=3D.rdata >>>>>>>=20 >>>>>>> +NOOPT_VS2008_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SECTI= ON_NAME=3D.rdata >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> DEBUG_VS2008_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:4= 001 /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_VS2008_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:4= 001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /S= ECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYS= TEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.da= ta >>>>>>>=20 >>>>>>> @@ -574,9 +574,9 @@ NOOPT_VS2008x86_IA32_CC_FLAGS =3D /nologo = /c /WX /GS- /W4 /Gs32768 /D UNICODE >>>>>>> RELEASE_VS2008x86_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff= /Zd >>>>>>>=20 >>>>>>> NOOPT_VS2008x86_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff= /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_SE= CTION_NAME=3D.rdata >>>>>>>=20 >>>>>>> +RELEASE_VS2008x86_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECTI= ON_NAME=3D.rdata >>>>>>>=20 >>>>>>> +NOOPT_VS2008x86_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_SE= CTION_NAME=3D.rdata >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> DEBUG_VS2008x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNOR= E:4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pd= ata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BO= OT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>>>=20 >>>>>>> RELEASE_VS2008x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNOR= E: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) /SUB= SYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D= .data >>>>>>>=20 >>>>>>> @@ -605,9 +605,9 @@ NOOPT_VS2008x86_X64_CC_FLAGS =3D /nologo = /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_SE= CTION_NAME=3D.rdata >>>>>>>=20 >>>>>>> +RELEASE_VS2008x86_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTI= ON_NAME=3D.rdata >>>>>>>=20 >>>>>>> +NOOPT_VS2008x86_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SE= CTION_NAME=3D.rdata >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> DEBUG_VS2008x86_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNOR= E:4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pd= ata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BO= OT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>>>=20 >>>>>>> RELEASE_VS2008x86_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNOR= E: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) /SUB= SYSTEM: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 /coff = /Zd >>>>>>>=20 >>>>>>> NOOPT_VS2010_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff = /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_SEC= TION_NAME=3D.rdata >>>>>>>=20 >>>>>>> +RELEASE_VS2010_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECTIO= N_NAME=3D.rdata >>>>>>>=20 >>>>>>> +NOOPT_VS2010_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> DEBUG_VS2010_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_VS2010_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 >>>>>>> @@ -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_SECTI= ON_NAME=3D.rdata >>>>>>>=20 >>>>>>> +RELEASE_VS2010_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTION_= NAME=3D.rdata >>>>>>>=20 >>>>>>> +NOOPT_VS2010_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SECTI= ON_NAME=3D.rdata >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> DEBUG_VS2010_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:4= 001 /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_VS2010_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:4= 001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /S= ECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYS= TEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.da= ta >>>>>>>=20 >>>>>>> @@ -799,9 +799,9 @@ NOOPT_VS2010x86_IA32_CC_FLAGS =3D /nologo = /c /WX /GS- /W4 /Gs32768 /D UNICODE >>>>>>> RELEASE_VS2010x86_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff= /Zd >>>>>>>=20 >>>>>>> NOOPT_VS2010x86_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff= /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_SE= CTION_NAME=3D.rdata >>>>>>>=20 >>>>>>> +RELEASE_VS2010x86_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECTI= ON_NAME=3D.rdata >>>>>>>=20 >>>>>>> +NOOPT_VS2010x86_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_SE= CTION_NAME=3D.rdata >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> DEBUG_VS2010x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNOR= E:4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pd= ata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BO= OT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>>>=20 >>>>>>> RELEASE_VS2010x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNOR= E: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) /SUB= SYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D= .data >>>>>>>=20 >>>>>>> @@ -831,9 +831,9 @@ NOOPT_VS2010x86_X64_CC_FLAGS =3D /nologo = /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_SE= CTION_NAME=3D.rdata >>>>>>>=20 >>>>>>> +RELEASE_VS2010x86_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTI= ON_NAME=3D.rdata >>>>>>>=20 >>>>>>> +NOOPT_VS2010x86_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SE= CTION_NAME=3D.rdata >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> DEBUG_VS2010x86_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNOR= E:4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pd= ata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BO= OT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>>>=20 >>>>>>> RELEASE_VS2010x86_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNOR= E: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) /SUB= SYSTEM: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 /coff = /Zd >>>>>>>=20 >>>>>>> NOOPT_VS2012_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff = /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_SEC= TION_NAME=3D.rdata >>>>>>>=20 >>>>>>> +RELEASE_VS2012_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECTIO= N_NAME=3D.rdata >>>>>>>=20 >>>>>>> +NOOPT_VS2012_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> DEBUG_VS2012_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_VS2012_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 >>>>>>> @@ -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_SECTI= ON_NAME=3D.rdata >>>>>>>=20 >>>>>>> +RELEASE_VS2012_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTION_= NAME=3D.rdata >>>>>>>=20 >>>>>>> +NOOPT_VS2012_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SECTI= ON_NAME=3D.rdata >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> DEBUG_VS2012_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:4= 001 /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_VS2012_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:4= 001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /S= ECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYS= TEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.da= ta >>>>>>>=20 >>>>>>> @@ -1024,9 +1024,9 @@ NOOPT_VS2012x86_IA32_CC_FLAGS =3D /nolog= o /arch:IA32 /c /WX /GS- /W4 /Gs32768 >>>>>>> RELEASE_VS2012x86_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff= /Zd >>>>>>>=20 >>>>>>> NOOPT_VS2012x86_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff= /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_SE= CTION_NAME=3D.rdata >>>>>>>=20 >>>>>>> +RELEASE_VS2012x86_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECTI= ON_NAME=3D.rdata >>>>>>>=20 >>>>>>> +NOOPT_VS2012x86_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_SE= CTION_NAME=3D.rdata >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> DEBUG_VS2012x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNOR= E:4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pd= ata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BO= OT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>>>=20 >>>>>>> RELEASE_VS2012x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNOR= E: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) /SUB= SYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D= .data >>>>>>>=20 >>>>>>> @@ -1056,9 +1056,9 @@ NOOPT_VS2012x86_X64_CC_FLAGS =3D /nolog= o /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_SE= CTION_NAME=3D.rdata >>>>>>>=20 >>>>>>> +RELEASE_VS2012x86_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTI= ON_NAME=3D.rdata >>>>>>>=20 >>>>>>> +NOOPT_VS2012x86_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SE= CTION_NAME=3D.rdata >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> DEBUG_VS2012x86_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNOR= E:4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pd= ata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BO= OT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>>>=20 >>>>>>> RELEASE_VS2012x86_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNOR= E: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) /SUB= SYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D= .data >>>>>>>=20 >>>>>>> @@ -1138,9 +1138,9 @@ NOOPT_VS2013_IA32_CC_FLAGS =3D /nologo= /arch:IA32 /c /WX /GS- /W4 /Gs32768 >>>>>>> RELEASE_VS2013_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff = /Zd >>>>>>>=20 >>>>>>> NOOPT_VS2013_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff = /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_SEC= TION_NAME=3D.rdata >>>>>>>=20 >>>>>>> +RELEASE_VS2013_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECTIO= N_NAME=3D.rdata >>>>>>>=20 >>>>>>> +NOOPT_VS2013_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> DEBUG_VS2013_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_VS2013_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 >>>>>>> @@ -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_SECTI= ON_NAME=3D.rdata >>>>>>>=20 >>>>>>> +RELEASE_VS2013_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTION_= NAME=3D.rdata >>>>>>>=20 >>>>>>> +NOOPT_VS2013_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SECTI= ON_NAME=3D.rdata >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> DEBUG_VS2013_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:4= 001 /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_VS2013_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:4= 001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /S= ECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYS= TEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.da= ta >>>>>>>=20 >>>>>>> @@ -1249,9 +1249,9 @@ NOOPT_VS2013x86_IA32_CC_FLAGS =3D /nolog= o /arch:IA32 /c /WX /GS- /W4 /Gs32768 >>>>>>> RELEASE_VS2013x86_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff= /Zd >>>>>>>=20 >>>>>>> NOOPT_VS2013x86_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff= /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_SE= CTION_NAME=3D.rdata >>>>>>>=20 >>>>>>> +RELEASE_VS2013x86_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECTI= ON_NAME=3D.rdata >>>>>>>=20 >>>>>>> +NOOPT_VS2013x86_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_SE= CTION_NAME=3D.rdata >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> DEBUG_VS2013x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNOR= E:4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pd= ata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BO= OT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>>>=20 >>>>>>> RELEASE_VS2013x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNOR= E: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) /SUB= SYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D= .data >>>>>>>=20 >>>>>>> @@ -1281,9 +1281,9 @@ NOOPT_VS2013x86_X64_CC_FLAGS =3D /nolog= o /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_SE= CTION_NAME=3D.rdata >>>>>>>=20 >>>>>>> +RELEASE_VS2013x86_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTI= ON_NAME=3D.rdata >>>>>>>=20 >>>>>>> +NOOPT_VS2013x86_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SE= CTION_NAME=3D.rdata >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> DEBUG_VS2013x86_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNOR= E:4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pd= ata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BO= OT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>>>=20 >>>>>>> RELEASE_VS2013x86_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNOR= E: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) /SUB= SYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D= .data >>>>>>>=20 >>>>>>> @@ -1364,9 +1364,9 @@ NOOPT_VS2015_IA32_CC_FLAGS =3D /nologo= /arch:IA32 /c /WX /GS- /W4 /Gs32768 >>>>>>> RELEASE_VS2015_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff = /Zd >>>>>>>=20 >>>>>>> NOOPT_VS2015_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff = /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_SEC= TION_NAME=3D.rdata >>>>>>>=20 >>>>>>> +RELEASE_VS2015_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECTIO= N_NAME=3D.rdata >>>>>>>=20 >>>>>>> +NOOPT_VS2015_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_SEC= TION_NAME=3D.rdata >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> DEBUG_VS2015_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_VS2015_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 >>>>>>> @@ -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_SECTI= ON_NAME=3D.rdata >>>>>>>=20 >>>>>>> +RELEASE_VS2015_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTION_= NAME=3D.rdata >>>>>>>=20 >>>>>>> +NOOPT_VS2015_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SECTI= ON_NAME=3D.rdata >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> DEBUG_VS2015_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:4= 001 /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_VS2015_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:4= 001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /S= ECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYS= TEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.da= ta >>>>>>>=20 >>>>>>> @@ -1476,9 +1476,9 @@ NOOPT_VS2015x86_IA32_CC_FLAGS =3D /nolog= o /arch:IA32 /c /WX /GS- /W4 /Gs32768 >>>>>>> RELEASE_VS2015x86_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff= /Zd >>>>>>>=20 >>>>>>> NOOPT_VS2015x86_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff= /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_SE= CTION_NAME=3D.rdata >>>>>>>=20 >>>>>>> +RELEASE_VS2015x86_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECTI= ON_NAME=3D.rdata >>>>>>>=20 >>>>>>> +NOOPT_VS2015x86_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_SE= CTION_NAME=3D.rdata >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> DEBUG_VS2015x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNOR= E:4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pd= ata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BO= OT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>>>=20 >>>>>>> RELEASE_VS2015x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNOR= E: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) /SUB= SYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D= .data >>>>>>>=20 >>>>>>> @@ -1508,9 +1508,9 @@ NOOPT_VS2015x86_X64_CC_FLAGS =3D /nolog= o /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_SE= CTION_NAME=3D.rdata >>>>>>>=20 >>>>>>> +RELEASE_VS2015x86_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTI= ON_NAME=3D.rdata >>>>>>>=20 >>>>>>> +NOOPT_VS2015x86_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SE= CTION_NAME=3D.rdata >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> DEBUG_VS2015x86_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNOR= E:4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pd= ata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BO= OT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>>>=20 >>>>>>> RELEASE_VS2015x86_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNOR= E: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) /SUB= SYSTEM: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 /Z= d >>>>>>>=20 >>>>>>> NOOPT_VS2017_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Z= d /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_SECTI= ON_NAME=3D.rdata >>>>>>>=20 >>>>>>> +RELEASE_VS2017_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECTION_= NAME=3D.rdata >>>>>>>=20 >>>>>>> +NOOPT_VS2017_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_SECTI= ON_NAME=3D.rdata >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> DEBUG_VS2017_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:4= 001 /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_VS2017_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:4= 001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /S= ECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYS= TEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.da= ta >>>>>>>=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 /Zi >>>>>>>=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_SECTI= ON_NAME=3D.rdata >>>>>>>=20 >>>>>>> +RELEASE_VS2017_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTION_= NAME=3D.rdata >>>>>>>=20 >>>>>>> +NOOPT_VS2017_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SECTI= ON_NAME=3D.rdata >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> DEBUG_VS2017_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:4= 001 /IGNORE:4281 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /S= ECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYS= TEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>>>=20 >>>>>>> RELEASE_VS2017_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:4= 001 /IGNORE:4281 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTIO= N:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_P= OINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE= :.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 /Z= d >>>>>>>=20 >>>>>>> NOOPT_VS2019_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Z= d /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_SECTI= ON_NAME=3D.rdata >>>>>>>=20 >>>>>>> +RELEASE_VS2019_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECTION_= NAME=3D.rdata >>>>>>>=20 >>>>>>> +NOOPT_VS2019_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_SECTI= ON_NAME=3D.rdata >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> DEBUG_VS2019_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:4= 001 /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_VS2019_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:4= 001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /S= ECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYS= TEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.da= ta >>>>>>>=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 /Zi >>>>>>>=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_SECTI= ON_NAME=3D.rdata >>>>>>>=20 >>>>>>> +RELEASE_VS2019_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTION_= NAME=3D.rdata >>>>>>>=20 >>>>>>> +NOOPT_VS2019_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SECTI= ON_NAME=3D.rdata >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> DEBUG_VS2019_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:4= 001 /IGNORE:4281 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /S= ECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYS= TEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>>>=20 >>>>>>> RELEASE_VS2019_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:4= 001 /IGNORE:4281 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTIO= N:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_P= OINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE= :.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_NA= ME=3D.rodata >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> DEBUG_GCC48_IA32_CC_FLAGS =3D DEF(GCC48_IA32_CC_FLAGS) -Os >>>>>>>=20 >>>>>>> RELEASE_GCC48_IA32_CC_FLAGS =3D DEF(GCC48_IA32_CC_FLAGS) -Os = -Wno-unused-but-set-variable >>>>>>>=20 >>>>>>> @@ -2058,7 +2058,7 @@ RELEASE_GCC48_IA32_CC_FLAGS =3D DEF(GCC= 48_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_NAM= E=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 -W= no-unused-but-set-variable >>>>>>>=20 >>>>>>> @@ -2170,7 +2170,7 @@ RELEASE_GCC48_AARCH64_CC_FLAGS =3D DEF(GCC4= 8_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_NA= ME=3D.rodata >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> DEBUG_GCC49_IA32_CC_FLAGS =3D DEF(GCC49_IA32_CC_FLAGS) -Os >>>>>>>=20 >>>>>>> RELEASE_GCC49_IA32_CC_FLAGS =3D DEF(GCC49_IA32_CC_FLAGS) -Os = -Wno-unused-but-set-variable -Wno-unused-const-variable >>>>>>>=20 >>>>>>> @@ -2198,7 +2198,7 @@ RELEASE_GCC49_IA32_CC_FLAGS =3D DEF(GCC= 49_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_NAM= E=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 -W= no-unused-but-set-variable -Wno-unused-const-variable >>>>>>>=20 >>>>>>> @@ -2316,7 +2316,7 @@ RELEASE_GCC49_AARCH64_DLINK_XIPFLAGS =3D -z c= ommon-page-size=3D0x20 >>>>>>> *_GCC5_IA32_DLINK2_FLAGS =3D DEF(GCC5_IA32_DLINK2_FLAGS) -n= o-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_NAM= E=3D.rodata >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> DEBUG_GCC5_IA32_CC_FLAGS =3D DEF(GCC5_IA32_CC_FLAGS) -flto = -Os >>>>>>>=20 >>>>>>> DEBUG_GCC5_IA32_DLINK_FLAGS =3D DEF(GCC5_IA32_X64_DLINK_FLAGS)= -flto -Os -Wl,-m,elf_i386,--oformat=3Delf32-i386 >>>>>>>=20 >>>>>>> @@ -2348,7 +2348,7 @@ RELEASE_GCC5_IA32_DLINK_FLAGS =3D DEF(GCC5= _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_NAM= E=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) -flt= o -Os >>>>>>>=20 >>>>>>> @@ -2589,7 +2589,7 @@ DEFINE CLANG38_ALL_CC_FLAGS =3D DEF(G= CC48_ALL_CC_FLAGS) DEF(CLANG38_WARNIN >>>>>>> *_CLANG38_IA32_ASM_FLAGS =3D DEF(GCC5_ASM_FLAGS) -m32 -m= arch=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_SECTION_= NAME=3D.rodata >>>>>>>=20 >>>>>>> *_CLANG38_IA32_PP_FLAGS =3D DEF(GCC_PP_FLAGS) DEF(CLANG= 38_IA32_TARGET) >>>>>>>=20 >>>>>>> *_CLANG38_IA32_ASLPP_FLAGS =3D DEF(GCC_ASLPP_FLAGS) DEF(CL= ANG38_IA32_TARGET) >>>>>>>=20 >>>>>>> *_CLANG38_IA32_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) DEF(CL= ANG38_IA32_TARGET) >>>>>>>=20 >>>>>>> @@ -2626,7 +2626,7 @@ NOOPT_CLANG38_IA32_DLINK2_FLAGS =3D DEF(G= CC5_IA32_DLINK2_FLAGS) -O0 >>>>>>> *_CLANG38_X64_ASM_FLAGS =3D DEF(GCC5_ASM_FLAGS) -m64 DEF= (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_N= AME=3D.rodata >>>>>>>=20 >>>>>>> *_CLANG38_X64_PP_FLAGS =3D DEF(GCC_PP_FLAGS) DEF(CLANG3= 8_X64_TARGET) >>>>>>>=20 >>>>>>> *_CLANG38_X64_ASLPP_FLAGS =3D DEF(GCC_ASLPP_FLAGS) DEF(CLA= NG38_X64_TARGET) >>>>>>>=20 >>>>>>> *_CLANG38_X64_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) DEF(CLA= NG38_X64_TARGET) >>>>>>>=20 >>>>>>> @@ -2777,7 +2777,7 @@ DEFINE CLANGPDB_ALL_CC_FLAGS =3D DEF(= GCC48_ALL_CC_FLAGS) DEF(CLANGPDB_WARN >>>>>>> *_CLANGPDB_IA32_ASLCC_FLAGS =3D DEF(GCC_ASLCC_FLAGS) -m32 = -fno-lto DEF(CLANGPDB_IA32_TARGET) >>>>>>>=20 >>>>>>> *_CLANGPDB_IA32_ASM_FLAGS =3D DEF(GCC_ASM_FLAGS) -m32 -m= arch=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_SECTION= _NAME=3D.rdata >>>>>>>=20 >>>>>>> *_CLANGPDB_IA32_PP_FLAGS =3D DEF(GCC_PP_FLAGS) DEF(CLAN= GPDB_IA32_TARGET) >>>>>>>=20 >>>>>>> *_CLANGPDB_IA32_ASLPP_FLAGS =3D DEF(GCC_ASLPP_FLAGS) DEF(C= LANGPDB_IA32_TARGET) >>>>>>>=20 >>>>>>> *_CLANGPDB_IA32_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) DEF(C= LANGPDB_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 DEF= (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_SECTION_= NAME=3D.rdata >>>>>>>=20 >>>>>>> *_CLANGPDB_X64_PP_FLAGS =3D DEF(GCC_PP_FLAGS) DEF(CLANG= PDB_X64_TARGET) >>>>>>>=20 >>>>>>> *_CLANGPDB_X64_ASLPP_FLAGS =3D DEF(GCC_ASLPP_FLAGS) DEF(CL= ANGPDB_X64_TARGET) >>>>>>>=20 >>>>>>> *_CLANGPDB_X64_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) DEF(CL= ANGPDB_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) -m32= -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_SECTI= ON_NAME=3D.rodata >>>>>>>=20 >>>>>>> *_CLANGDWARF_IA32_PP_FLAGS =3D DEF(GCC_PP_FLAGS) DEF(CL= ANG38_IA32_TARGET) >>>>>>>=20 >>>>>>> *_CLANGDWARF_IA32_ASLPP_FLAGS =3D DEF(GCC_ASLPP_FLAGS) DEF= (CLANG38_IA32_TARGET) >>>>>>>=20 >>>>>>> *_CLANGDWARF_IA32_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) DEF= (CLANG38_IA32_TARGET) >>>>>>>=20 >>>>>>> @@ -2914,7 +2914,7 @@ NOOPT_CLANGDWARF_IA32_DLINK2_FLAGS =3D DE= F(CLANGDWARF_IA32_DLINK2_FLAGS) -O0 - >>>>>>> *_CLANGDWARF_X64_ASM_FLAGS =3D DEF(GCC5_ASM_FLAGS) -m64 = 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_SECTIO= N_NAME=3D.rodata >>>>>>>=20 >>>>>>> *_CLANGDWARF_X64_PP_FLAGS =3D DEF(GCC_PP_FLAGS) DEF(CLA= NG38_X64_TARGET) >>>>>>>=20 >>>>>>> *_CLANGDWARF_X64_ASLPP_FLAGS =3D DEF(GCC_ASLPP_FLAGS) DEF(= CLANG38_X64_TARGET) >>>>>>>=20 >>>>>>> *_CLANGDWARF_X64_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) DEF(= CLANG38_X64_TARGET) >>>>>>>=20 >>>>>>> @@ -2985,7 +2985,7 @@ RELEASE_XCODE5_IA32_DLINK_FLAGS =3D -arc= h 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_NAM= E=3D.rodata >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>> An EFI Mach-O file does not contain a .rodata section. A Mach-O cont= ains a __DATA segment that is broken up into sections. For a typical EFI im= age there are __const, __data, __bss sections in the __DATA segment [1]. >>>>> Yes, and ".rodata" is almost a synonym for "__DATA,__const", with a s= mall exception [1]. Maybe it'd be clearer if the macro was renamed to "NASM= _RODATA_SECTION_NAME", to indicate this is not just a "raw" name, but NASM = gives it a semantic meaning? >>>>>=20 >>>>>> The mtoc [2] tool used to convert mach-O to PE/COFF converts the ent= ire __DATA segment (__const, __data, and __bss) into the .data section. Thu= s 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 at = hand, so thanks for investigating. However this, in my opinion, is a flaw w= ith Mach-O/mtoc and not with my patch. It seems like the only difference be= tween __TEXT,__const and __DATA,__const is whether the data is targeted by = a relocation or not. Such a concept does not exist for PE/COFF (and I think= not even for ELF, but I'm not too familiar with it), thus the logical PE/C= OFF section __DATA,__const should be merged into is .rdata (and .rdata may = 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. Do= es Xcode provide anything remotely similar to GNU linker scripts which we c= an use to move the section? >>>>>=20 >>>>> Please also note that .rodata is used for Xcode-based toolchains alre= ady (in fact, all toolchains, and this is the issue), I'm not regressing an= ything. I just expected it to work fine as-is. This patch mainly fixed PE/C= OFF-based toolchains, which get both .rdata from the compiler and .rodata w= ith RX permissions from NASM, because ".rodata" only has a semantic meaning= 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 better= off putting it in the __TEXT section [3]. The __TEXT section is read only = and for X64 can not even contain relocations. >>>>> Well, this kind of is an issue. We would need to introduce an arbitra= ry constraint on the relocation part that holds only for Xcode-based toolch= ains. Does the compiler emit an error when data in __TEXT,__const is target= ed 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 tha= t for free. We generally only run into this for hand coded assembler and th= e fix is to use RIP relative addressing in the assembly. >>> Good, thanks for confirming! Still, this would be a bit of an awkward c= onstraints for Xcode only. >>>=20 >> It is a physics problem we can=E2=80=99t fix, so I end up writing some p= atches to fix other peoples assembler from time to time. The CI building wi= th Xcode helps with this a lot. >=20 > (I think all open ends of the other threads are in here too, so let's dro= p 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,__c= onst[2] for Xcode clang, and this is done by nasm (I dumped the object file= ). GenFw and mtoc only run on executables, also they tend to be conservativ= e as they need to keep the layout the same and the relative layout between = sections the same, but in this case it is nasm placing the data in the text= section. >>>>=20 >>>> So what I=E2=80=99d like to see in the patch is to define RODATA_SECTI= ON_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 with= 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 u= ses __DATA,__const, but that __DATA,__const is not merged into .text, but i= nto .data. Fixing the macro fixes where the NASM definitions go, but what a= bout the C definitions? I cannot test it, as I said, because I don't have a= n Xcode machine, but let's say we have a stupid example like this: >=20 > volatile UINT32 a; > volatile UINT32 *CONST p =3D &a; >=20 In this case p ends up in a __DATA__,__const section since &a requires a re= location.=20 > The value of p is constant, so it can be placed in a constant data sectio= n. p points to a global variable, so if the compiler does not manage to som= ehow turn this into relative addressing (let's assume it does not), it need= s to generate a relocation. This means the compiler cannot put it in __TEXT= ,__const, so it has to put it in __DATA,__const (of course it could put it = in other __DATA sections, but let's assume the compiler agrees this should = be read-only). The very same issue will arise and no matter the choice of t= he compiler, this will end up in .data. Do you agree? Or do we have some gu= arantee that Apple Clang cannot emit __DATA,__const? 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 implementati= on detail for the compiler, and we can=E2=80=99t really depend on that? >=20 >>>> We should double check what is happening for ELF on x86, ARM, RiskV, e= tc. and do the same thing. I assume all the tools that generate PE/COFF dir= ectly are good with .rodata? >>> They are not, that is the whole point of the patch in its current shape= . .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 objdu= mp or gdb for the given toolchain (like my Xcode example). >>>>=20 >>>> TL;DR It looks to me like nasm does some SECTION translations under th= e hood to make code portable, and I=E2=80=99d like to make sure we capture = those in the new NASM_RODATA_SECTION_NAME. If some one is doing a security = review having NASM_RODATA_SECTION_NAME is going to imply that a .rodata sec= tion is being used by that specific toolchain, and I think that is much wor= se than the current =E2=80=9Cmagic=E2=80=9D behavior in nasm. We are much b= etter off explaining what is really happening, since it is not very obvious= . >>> I feel like I'm too tired to get the point. Do you mean you want commen= ts 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 be= tter 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 th= e code. tools_def is not really documented at all, maybe it is time to intr= oduce an example comment so at least new things get commented? Maybe just t= he start of a macro list. Relying on "git blame" to figure out simple thing= s is rather awful. >=20 > One more thing from another thread: Yes, the new macro should refer to ob= ject file section naming. I want this patch to get object file sections pro= per and sound. From there on we can fix the linking stage to emit proper an= d sound executables in a later patch. >=20 OK then please refactor the commit message to make it clear that this patch= is to get the correct section in the object files, and work is still need = to get this into executable images.=20 For Xcode you can make it __DATA__,__const since that is the closest thing = to read only data and I think that is your intent.=20 GenFW is part of EDKII BaseTools and mtoc is part of the open source CCTOOL= S project and both those tools would need to be modified to create a .rodat= a section in PE/COFF. Thanks, Andrew Fish > Best regards, > Marvin >=20 >>=20 >> Thanks, >>=20 >> Andrew Fish >>=20 >>> Best regards, >>> Marvin >>>=20 >>>> [1] https://github.com/tianocore/edk2/blob/master/UefiCpuPkg/Library/B= aseUefiCpuLib/X64/InitializeFpu.nasm#L14 >>>>=20 >>>> [2] $otool -V -s __TEXT __constBuild/OvmfX64/DEBUG_XCODE5/X64/UefiCpuP= kg/Library/BaseUefiCpuLib/BaseUefiCpuLib/OUTPUT/X64/InitializeFpu.obj >>>> Build//OvmfX64/DEBUG_XCODE5/X64/UefiCpuPkg/Library/BaseUefiCpuLib/Base= UefiCpuLib/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/BaseUefi= CpuLib/BaseUefiCpuLib/OUTPUT/X64/InitializeFpu.obj >>>> Build/OvmfX64/DEBUG_XCODE5/X64/UefiCpuPkg/Library/BaseUefiCpuLib/BaseU= efiCpuLib/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 standard = names are also supported: >>>>> [...] >>>>> .rodata =3D __DATA,__const data >>>>> [...] >>>>> If the .rodata section contains no relocations, it is instead put int= o the __TEXT,__const section unless this section has already been specified= 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/efitools= /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 -Wall= -Werror -include AutoGen.h -funsigned-char -fno-stack-protector -fno-built= in -fshort-wchar -fasm-blocks -mdynamic-no-pic -mno-implicit-float -mms-bit= fields -msoft-float -Wno-unused-parameter -Wno-missing-braces -Wno-missing-= field-initializers -Wno-tautological-compare -Wno-sign-compare -Wno-varargs= -ftrap-function=3Dundefined_behavior_has_been_optimized_away_by_clang $(PL= ATFORM_FLAGS) >>>>>>>=20 >>>>>>> @@ -3003,7 +3003,7 @@ RELEASE_XCODE5_X64_DLINK_FLAGS =3D -arch= 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_NAME= =3D.rodata >>>>>>>=20 >>>>>>> *_XCODE5_*_PP_FLAGS =3D -E -x assembler-with-cpp -include A= utoGen.h >>>>>>>=20 >>>>>>> *_XCODE5_*_VFRPP_FLAGS =3D -x c -E -P -DVFRCOMPILE -include $(= MODULE_NAME)StrDefs.h >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>> --=20 >>>>>>> 2.31.1 >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>>>>>=20 >>>=20 >>>=20 >>>=20 >>>=20 >=20 >=20 >=20 >=20 --Apple-Mail=_35E7B06B-247A-4C4F-B5BA-8D3C5E101C5B Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset=utf-8

On Aug 11, 20= 21, at 1:11 AM, Marvin H=C3=A4user <mhaeuser@posteo.de> wrote:

= On 10/08/2021 23:58, Andrew Fish wrote:

On Aug 10, 2021, at 2:30 PM, Marvin H=C3=A4user <mhaeuser@posteo.de> wrote:

On 10/08/2021 21:35, Andrew Fish via groups.io wrote:

On= Aug 10, 2021, at 1:27 AM, Marvin H=C3=A4user <mhaeuser@posteo.de <mailto:mhaeuser@posteo.de>> wrote:

On 10/08/2021 06:19, Andrew Fish via groups.io <http://groups.io> wrote:

On Aug= 9, 2021, at 2:51 AM, Marvin H=C3=A4user <mhaeuser@posteo.de <mailto:mhaeuser@posteo.de> <mailto:mhaeuser@posteo.de <mailto:mhaeuser@posteo.de>= >> wrote:

REF: https://bugzilla.tianoc= ore.org/show_bug.cgi?id=3D3318 <https://bugzilla.tianocore.org/sho= w_bug.cgi?id=3D3318> <https://bugzilla.tianocore.org/show_bug.c= gi?id=3D3318 <https://bugzilla.tianocore.org/show_bug.cgi?id=3D331= 8>>

Different toolchains of the EDK = II build system may generate ELF or
Mach-O files, which use t= he ".rodata" naming convention, or PE/COFF
files, which use t= he ".rdata" naming convention. Section permissions
are chosen= based on this name per file format by NASM. To harden
image = permission security, and to save space by avoiding both
".rda= ta" and ".rodata" sections being emitted, expose the appropriate
name as a preprocessor constant.

Cc: Bob= Feng <bob.c.feng@int= el.com <mailto:bo= b.c.feng@intel.com> <mailto:bob.c.feng@intel.com <mailto:bob.c.feng@intel.com>>>
Cc: Liming Gao <gaoliming@byosoft.com.cn <mailto:gaoliming@byosoft.com.cn> <mailto:gaoliming@byosoft.com.cn &= lt;mailto:gaoliming@= byosoft.com.cn>>>
Cc: Yuwei Chen <yuwei.chen@intel.com <mailto:yuwei.chen@intel.com> <mailto:yuwei.c= hen@intel.com <ma= ilto:yuwei.chen@intel.com>>>
Cc: Vitaly Cheptsov= <vit9696@protonmai= l.com <mailto:v= it9696@protonmail.com> <mailto:vit9696@protonmail.com <mailto:vit9696@protonmail.com>>>Signed-off-by: Marvin H=C3=A4user <mhaeuser@posteo.de <mailto:mhaeuser@posteo.de> <mailto:mhaeuser@posteo.de <mailto:mhaeuser@posteo.de= >>>
---
BaseTools/Conf/tools_def.templ= ate | 172 ++++++++++----------
1 file changed, 86 insertions(= +), 86 deletions(-)

diff --git a/BaseTools/Con= f/tools_def.template b/BaseTools/Conf/tools_def.template
inde= x 2e6b382ab623..84d464916c4d 100755
--- a/BaseTools/Conf/tool= s_def.template
+++ b/BaseTools/Conf/tools_def.template
@@ -463,9 +463,9 @@ NOOPT_VS2008_IA32_CC_FLAGS    &n= bsp;   =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE
RELEASE_VS2008_IA32_ASM_FLAGS     =3D /nologo = /c /WX /W3 /Cx /coff /Zd

NOOPT_VS2008_IA32_ASM= _FLAGS       =3D /nologo /c /WX /W3 /Cx /coff= /Zd /Zi



-  = ;DEBUG_VS2008_IA32_NASM_FLAGS    =3D -Ox -f win32 -g

-RELEASE_VS2008_IA32_NASM_FLAGS    =3D= -Ox -f win32

-NOOPT_VS2008_IA32_NASM_FLAGS &n= bsp;    =3D -O0 -f win32 -g

+  DEBUG_VS2008_IA32_NASM_FLAGS    =3D -Ox -f win32 -= g -DRODATA_SECTION_NAME=3D.rdata

+RELEASE_VS20= 08_IA32_NASM_FLAGS    =3D -Ox -f win32 -DRODATA_SECTION_NAME= =3D.rdata

+NOOPT_VS2008_IA32_NASM_FLAGS  =     =3D -O0 -f win32 -g -DRODATA_SECTION_NAME=3D.rdata<= br class=3D"">


  DEBU= G_VS2008_IA32_DLINK_FLAGS   =3D /NOLOGO /NODEFAULTLIB /IGNORE:400= 1 /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_SE= RVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG

RELEASE_VS2008_IA32_DLINK_FLAGS   =3D /NOLOGO /NODEFAULTLIB /IG= NORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdat= a,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /= SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata= =3D.data

@@ -495,9 +495,9 @@ NOOPT_VS2008_X64_= CC_FLAGS       =3D /nologo /c /WX /GS- /W4 /G= s32768 /D UNICODE /G
RELEASE_VS2008_X64_ASM_FLAGS   = ; =3D /nologo /c /WX /W3 /Cx /Zd

NOOPT_VS= 2008_X64_ASM_FLAGS    =3D /nologo /c /WX /W3 /Cx /Zd /Zi



-  DEBUG_VS200= 8_X64_NASM_FLAGS   =3D -Ox -f win64 -g

-RELEASE_VS2008_X64_NASM_FLAGS   =3D -Ox -f win64

-NOOPT_VS2008_X64_NASM_FLAGS     =3D -= O0 -f win64 -g

+  DEBUG_VS2008_X64_NASM_F= LAGS   =3D -Ox -f win64 -g -DRODATA_SECTION_NAME=3D.rdata

+RELEASE_VS2008_X64_NASM_FLAGS   =3D -Ox -f= win64 -DRODATA_SECTION_NAME=3D.rdata

+NOOPT_V= S2008_X64_NASM_FLAGS     =3D -O0 -f win64 -g -DRODATA_S= ECTION_NAME=3D.rdata



  DEBUG_VS2008_X64_DLINK_FLAGS  =3D /NOLOGO /NODEFAULT= LIB /IGNORE:4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /S= ECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYS= TEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG

RELEASE_VS2008_X64_DLINK_FLAGS  =3D /NOLOGO /NODEFAUL= TLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTI= ON:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_= POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERG= E:.rdata=3D.data

@@ -574,9 +574,9 @@ NOOPT_VS2= 008x86_IA32_CC_FLAGS      =3D /nologo /c /WX /GS- = /W4 /Gs32768 /D UNICODE
RELEASE_VS2008x86_IA32_ASM_FLAGS &nbs= p; =3D /nologo /c /WX /W3 /Cx /coff /Zd

N= OOPT_VS2008x86_IA32_ASM_FLAGS     =3D /nologo /c /WX /W= 3 /Cx /coff /Zd /Zi



-  DEBUG_VS2008x86_IA32_NASM_FLAGS  =3D -Ox -f win32 -g

-RELEASE_VS2008x86_IA32_NASM_FLAGS  =3D -Ox = -f win32

-NOOPT_VS2008x86_IA32_NASM_FLAGS &nbs= p;  =3D -O0 -f win32 -g

+  DEBU= G_VS2008x86_IA32_NASM_FLAGS  =3D -Ox -f win32 -g -DRODATA_SECTION_NAME= =3D.rdata

+RELEASE_VS2008x86_IA32_NASM_FLAGS &= nbsp;=3D -Ox -f win32 -DRODATA_SECTION_NAME=3D.rdata

+NOOPT_VS2008x86_IA32_NASM_FLAGS    =3D -O0 -f win32 = -g -DRODATA_SECTION_NAME=3D.rdata



  DEBUG_VS2008x86_IA32_DLINK_FLAGS =3D /NOLOGO = /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.= xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POIN= T) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
RELEASE_VS2008x86_IA32_DLINK_FLAGS =3D /NOLOGO /= NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:3= 2 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAG= E_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIV= ER /MERGE:.rdata=3D.data

@@ -605,9 +605,9 @@ N= OOPT_VS2008x86_X64_CC_FLAGS       =3D /nologo= /c /WX /GS- /W4 /Gs32768 /D UNICODE
RELEASE_VS2008x86_X64_AS= M_FLAGS    =3D /nologo /c /WX /W3 /Cx /Zd

NOOPT_VS2008x86_X64_ASM_FLAGS      =3D = /nologo /c /WX /W3 /Cx /Zd /Zi


=
-  DEBUG_VS2008x86_X64_NASM_FLAGS   =3D -Ox -= f win64 -g

-RELEASE_VS2008x86_X64_NASM_FLAGS &= nbsp; =3D -Ox -f win64

-NOOPT_VS2008x86_X= 64_NASM_FLAGS     =3D -O0 -f win64 -g
+  DEBUG_VS2008x86_X64_NASM_FLAGS   =3D -Ox -f w= in64 -g -DRODATA_SECTION_NAME=3D.rdata

+RELEAS= E_VS2008x86_X64_NASM_FLAGS   =3D -Ox -f win64 -DRODATA_SECTION_NA= ME=3D.rdata

+NOOPT_VS2008x86_X64_NASM_FLAGS &n= bsp;   =3D -O0 -f win64 -g -DRODATA_SECTION_NAME=3D.rdata


  DEBUG_= VS2008x86_X64_DLINK_FLAGS  =3D /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT= :REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Mach= ine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_= DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG

RELE= ASE_VS2008x86_X64_DLINK_FLAGS  =3D /NOLOGO /NODEFAULTLIB /IGNORE:4001 = /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTI= ON:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:= EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.data
@@ -688,9 +688,9 @@ NOOPT_VS2010_IA32_CC_FLAGS =        =3D /nologo /c /WX /GS- /W4 /Gs32= 768 /D UNICODE
RELEASE_VS2010_IA32_ASM_FLAGS   &nbs= p; =3D /nologo /c /WX /W3 /Cx /coff /Zd

N= OOPT_VS2010_IA32_ASM_FLAGS       =3D /nologo = /c /WX /W3 /Cx /coff /Zd /Zi


-  DEBUG_VS2010_IA32_NASM_FLAGS    =3D -Ox= -f win32 -g

-RELEASE_VS2010_IA32_NASM_FLAGS &= nbsp;  =3D -Ox -f win32

-NOOPT_VS201= 0_IA32_NASM_FLAGS      =3D -O0 -f win32 -g

+  DEBUG_VS2010_IA32_NASM_FLAGS   &nbs= p;=3D -Ox -f win32 -g -DRODATA_SECTION_NAME=3D.rdata

+RELEASE_VS2010_IA32_NASM_FLAGS    =3D -Ox -f win32 -= DRODATA_SECTION_NAME=3D.rdata

+NOOPT_VS2010_IA= 32_NASM_FLAGS      =3D -O0 -f win32 -g -DRODATA_SE= CTION_NAME=3D.rdata



  DEBUG_VS2010_IA32_DLINK_FLAGS   =3D /NOLOGO /NO= DEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xda= ta,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) = /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG

RELEASE_VS2010_IA32_DLINK_FLAGS   =3D /NO= LOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /A= LIGN: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=3D.data

@@ -720,9 +720,= 9 @@ NOOPT_VS2010_X64_CC_FLAGS       =3D /nol= ogo /c /WX /GS- /W4 /Gs32768 /D UNICODE /G
RELEASE_VS2010_X64= _ASM_FLAGS    =3D /nologo /c /WX /W3 /Cx /Zd
<= br class=3D"">NOOPT_VS2010_X64_ASM_FLAGS    =3D /nologo /c /= WX /W3 /Cx /Zd /Zi



-  DEBUG_VS2010_X64_NASM_FLAGS   =3D -Ox -f win64 -g

-RELEASE_VS2010_X64_NASM_FLAGS   =3D -Ox= -f win64

-NOOPT_VS2010_X64_NASM_FLAGS  &= nbsp;  =3D -O0 -f win64 -g

+  D= EBUG_VS2010_X64_NASM_FLAGS   =3D -Ox -f win64 -g -DRODATA_SECTION= _NAME=3D.rdata

+RELEASE_VS2010_X64_NASM_FLAGS =   =3D -Ox -f win64 -DRODATA_SECTION_NAME=3D.rdata
<= br class=3D"">+NOOPT_VS2010_X64_NASM_FLAGS     =3D -O0 = -f win64 -g -DRODATA_SECTION_NAME=3D.rdata


  DEBUG_VS2010_X64_DLINK_FLAGS  = =3D /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:3= 2 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAG= E_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIV= ER /DEBUG

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) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO= /BASE:0 /DRIVER /MERGE:.rdata=3D.data

@@ -799= ,9 +799,9 @@ NOOPT_VS2010x86_IA32_CC_FLAGS      = =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE
RELEASE_VS201= 0x86_IA32_ASM_FLAGS   =3D /nologo /c /WX /W3 /Cx /coff /Zd

NOOPT_VS2010x86_IA32_ASM_FLAGS    &nb= sp;=3D /nologo /c /WX /W3 /Cx /coff /Zd /Zi


-  DEBUG_VS2010x86_IA32_NASM_FLAGS  = =3D -Ox -f win32 -g

-RELEASE_VS2010x86_IA32_NA= SM_FLAGS  =3D -Ox -f win32

-NOOPT_VS2010x= 86_IA32_NASM_FLAGS    =3D -O0 -f win32 -g

+  DEBUG_VS2010x86_IA32_NASM_FLAGS  =3D -Ox -f win32 -= g -DRODATA_SECTION_NAME=3D.rdata

+RELEASE_VS20= 10x86_IA32_NASM_FLAGS  =3D -Ox -f win32 -DRODATA_SECTION_NAME=3D.rdata=

+NOOPT_VS2010x86_IA32_NASM_FLAGS   =  =3D -O0 -f win32 -g -DRODATA_SECTION_NAME=3D.rdata



  DEBUG_VS2010x86_IA32_D= LINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=3D10 /M= AP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /E= NTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /B= ASE:0 /DRIVER /DEBUG

RELEASE_VS2010x86_IA32_DL= INK_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) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /S= AFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.data

@@ -831,9 +831,9 @@ NOOPT_VS2010x86_X64_CC_FLAGS     =   =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE
R= ELEASE_VS2010x86_X64_ASM_FLAGS    =3D /nologo /c /WX /W3 /Cx= /Zd

NOOPT_VS2010x86_X64_ASM_FLAGS   = ;   =3D /nologo /c /WX /W3 /Cx /Zd /Zi



-  DEBUG_VS2010x86_X64_NASM_FLAG= S   =3D -Ox -f win64 -g

-RELEASE_VS2= 010x86_X64_NASM_FLAGS   =3D -Ox -f win64

-NOOPT_VS2010x86_X64_NASM_FLAGS     =3D -O0 -f wi= n64 -g

+  DEBUG_VS2010x86_X64_NASM_FLAGS =   =3D -Ox -f win64 -g -DRODATA_SECTION_NAME=3D.rdata

+RELEASE_VS2010x86_X64_NASM_FLAGS   =3D -Ox -f w= in64 -DRODATA_SECTION_NAME=3D.rdata

+NOOPT_VS2= 010x86_X64_NASM_FLAGS     =3D -O0 -f win64 -g -DRODATA_= SECTION_NAME=3D.rdata



  DEBUG_VS2010x86_X64_DLINK_FLAGS  =3D /NOLOGO /NODEFA= ULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D= /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUB= SYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG

RELEASE_VS2010x86_X64_DLINK_FLAGS  =3D /NOLOGO /N= ODEFAULTLIB /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) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVE= R /MERGE:.rdata=3D.data

@@ -913,9 +913,9 @@ NO= OPT_VS2012_IA32_CC_FLAGS        =3D /nol= ogo /arch:IA32 /c /WX /GS- /W4 /Gs32768
RELEASE_VS2012_IA32_A= SM_FLAGS     =3D /nologo /c /WX /W3 /Cx /coff /Zd

NOOPT_VS2012_IA32_ASM_FLAGS     = ;  =3D /nologo /c /WX /W3 /Cx /coff /Zd /Zi



-  DEBUG_VS2012_IA32_NASM_FLAGS =    =3D -Ox -f win32 -g

-RELEASE= _VS2012_IA32_NASM_FLAGS    =3D -Ox -f win32
-NOOPT_VS2012_IA32_NASM_FLAGS      = =3D -O0 -f win32 -g

+  DEBUG_VS2012_IA32_= NASM_FLAGS    =3D -Ox -f win32 -g -DRODATA_SECTION_NAME=3D.r= data

+RELEASE_VS2012_IA32_NASM_FLAGS  &nb= sp; =3D -Ox -f win32 -DRODATA_SECTION_NAME=3D.rdata

+NOOPT_VS2012_IA32_NASM_FLAGS      =3D = -O0 -f win32 -g -DRODATA_SECTION_NAME=3D.rdata



  DEBUG_VS2012_IA32_DLINK_FLAGS &n= bsp; =3D /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=3D10 /MA= P /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /EN= TRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BA= SE:0 /DRIVER /DEBUG

RELEASE_VS2012_IA32_DLINK_= FLAGS   =3D /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:= REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHI= NE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_D= RIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.data

@@ -945,9 +945,9 @@ NOOPT_VS2012_X64_CC_FLAGS    &= nbsp;  =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /G
RELEASE_VS2012_X64_ASM_FLAGS    =3D /nologo /c /WX /W= 3 /Cx /Zd

NOOPT_VS2012_X64_ASM_FLAGS  &nb= sp; =3D /nologo /c /WX /W3 /Cx /Zd /Zi


-  DEBUG_VS2012_X64_NASM_FLAGS   = ;=3D -Ox -f win64 -g

-RELEASE_VS2012_X64_NASM_= FLAGS   =3D -Ox -f win64

-NOOPT_VS20= 12_X64_NASM_FLAGS     =3D -O0 -f win64 -g

+  DEBUG_VS2012_X64_NASM_FLAGS   =3D -Ox -f = win64 -g -DRODATA_SECTION_NAME=3D.rdata

+RELEA= SE_VS2012_X64_NASM_FLAGS   =3D -Ox -f win64 -DRODATA_SECTION_NAME= =3D.rdata

+NOOPT_VS2012_X64_NASM_FLAGS  &= nbsp;  =3D -O0 -f win64 -g -DRODATA_SECTION_NAME=3D.rdata



  DEBUG_VS201= 2_X64_DLINK_FLAGS  =3D /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OP= T: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

RELEASE_VS20= 12_X64_DLINK_FLAGS  =3D /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:425= 4 /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_SE= RVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.data

@@ -1024,9 +1024,9 @@ NOOPT_VS2012x86_IA32_CC_FLAGS  =     =3D /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768
RELEASE_VS2012x86_IA32_ASM_FLAGS   =3D /nologo /c /WX = /W3 /Cx /coff /Zd

NOOPT_VS2012x86_IA32_ASM_FLA= GS     =3D /nologo /c /WX /W3 /Cx /coff /Zd /Zi



-  DEBUG_VS2012x86= _IA32_NASM_FLAGS  =3D -Ox -f win32 -g

-RE= LEASE_VS2012x86_IA32_NASM_FLAGS  =3D -Ox -f win32

-NOOPT_VS2012x86_IA32_NASM_FLAGS    =3D -O0 -f win3= 2 -g

+  DEBUG_VS2012x86_IA32_NASM_FLAGS &= nbsp;=3D -Ox -f win32 -g -DRODATA_SECTION_NAME=3D.rdata

+RELEASE_VS2012x86_IA32_NASM_FLAGS  =3D -Ox -f win32 -DRODAT= A_SECTION_NAME=3D.rdata

+NOOPT_VS2012x86_IA32_= NASM_FLAGS    =3D -O0 -f win32 -g -DRODATA_SECTION_NAME=3D.r= data



  = ;DEBUG_VS2012x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:4001 /O= PT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MA= CHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVIC= E_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG

RE= LEASE_VS2012x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IG= NORE:4254 /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 /MERGE:.rdata=3D.data

@@ -1056,9 +1056,9 @@ NOOPT_VS2012x86_X64_CC_FLAGS=       =3D /nologo /c /WX /GS- /W4 /Gs32768 /= D UNICODE
RELEASE_VS2012x86_X64_ASM_FLAGS    = =3D /nologo /c /WX /W3 /Cx /Zd

NOOPT_VS2012x86= _X64_ASM_FLAGS      =3D /nologo /c /WX /W3 /Cx /Zd= /Zi



-  DEB= UG_VS2012x86_X64_NASM_FLAGS   =3D -Ox -f win64 -g
<= br class=3D"">-RELEASE_VS2012x86_X64_NASM_FLAGS   =3D -Ox -f win6= 4

-NOOPT_VS2012x86_X64_NASM_FLAGS   =   =3D -O0 -f win64 -g

+  DEBUG_= VS2012x86_X64_NASM_FLAGS   =3D -Ox -f win64 -g -DRODATA_SECTION_N= AME=3D.rdata

+RELEASE_VS2012x86_X64_NASM_FLAGS=   =3D -Ox -f win64 -DRODATA_SECTION_NAME=3D.rdata
=
+NOOPT_VS2012x86_X64_NASM_FLAGS     =3D = -O0 -f win64 -g -DRODATA_SECTION_NAME=3D.rdata



  DEBUG_VS2012x86_X64_DLINK_FLAGS =  =3D /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=3D10 /MAP /A= LIGN: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

RELEASE_VS2012x86_X64_DLINK_FL= AGS  =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) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /S= AFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.data

@@ -1138,9 +1138,9 @@ NOOPT_VS2013_IA32_CC_FLAGS     =    =3D /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768
RELEASE_VS2013_IA32_ASM_FLAGS     =3D /nologo /c = /WX /W3 /Cx /coff /Zd

NOOPT_VS2013_IA32_ASM_FL= AGS       =3D /nologo /c /WX /W3 /Cx /coff /Z= d /Zi



-  DE= BUG_VS2013_IA32_NASM_FLAGS    =3D -Ox -f win32 -g

-RELEASE_VS2013_IA32_NASM_FLAGS    =3D = -Ox -f win32

-NOOPT_VS2013_IA32_NASM_FLAGS &nb= sp;    =3D -O0 -f win32 -g

+  DEBUG_VS2013_IA32_NASM_FLAGS    =3D -Ox -f win32 -g= -DRODATA_SECTION_NAME=3D.rdata

+RELEASE_VS201= 3_IA32_NASM_FLAGS    =3D -Ox -f win32 -DRODATA_SECTION_NAME= =3D.rdata

+NOOPT_VS2013_IA32_NASM_FLAGS  =     =3D -O0 -f win32 -g -DRODATA_SECTION_NAME=3D.rdata<= br class=3D"">


  DEBU= G_VS2013_IA32_DLINK_FLAGS   =3D /NOLOGO /NODEFAULTLIB /IGNORE:400= 1 /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_SE= RVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG

RELEASE_VS2013_IA32_DLINK_FLAGS   =3D /NOLOGO /NODEFAULTLIB /IG= NORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdat= a,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /= SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata= =3D.data

@@ -1170,9 +1170,9 @@ NOOPT_VS2013_X6= 4_CC_FLAGS       =3D /nologo /c /WX /GS- /W4 = /Gs32768 /D UNICODE /G
RELEASE_VS2013_X64_ASM_FLAGS  &nb= sp; =3D /nologo /c /WX /W3 /Cx /Zd

NOOPT_= VS2013_X64_ASM_FLAGS    =3D /nologo /c /WX /W3 /Cx /Zd /Zi


-  DEBUG_VS2= 013_X64_NASM_FLAGS   =3D -Ox -f win64 -g

-RELEASE_VS2013_X64_NASM_FLAGS   =3D -Ox -f win64

-NOOPT_VS2013_X64_NASM_FLAGS     = =3D -O0 -f win64 -g

+  DEBUG_VS2013_X64_N= ASM_FLAGS   =3D -Ox -f win64 -g -DRODATA_SECTION_NAME=3D.rdata
+RELEASE_VS2013_X64_NASM_FLAGS   =3D -= Ox -f win64 -DRODATA_SECTION_NAME=3D.rdata

+NO= OPT_VS2013_X64_NASM_FLAGS     =3D -O0 -f win64 -g -DROD= ATA_SECTION_NAME=3D.rdata



  DEBUG_VS2013_X64_DLINK_FLAGS  =3D /NOLOGO /NODEF= AULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,= D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SU= BSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG

RELEASE_VS2013_X64_DLINK_FLAGS  =3D /NOLOGO /NODE= FAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /S= ECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_EN= TRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /= MERGE:.rdata=3D.data

@@ -1249,9 +1249,9 @@ NOO= PT_VS2013x86_IA32_CC_FLAGS      =3D /nologo /arch:= IA32 /c /WX /GS- /W4 /Gs32768
RELEASE_VS2013x86_IA32_ASM_FLAG= S   =3D /nologo /c /WX /W3 /Cx /coff /Zd

NOOPT_VS2013x86_IA32_ASM_FLAGS     =3D /nologo /c= /WX /W3 /Cx /coff /Zd /Zi



-  DEBUG_VS2013x86_IA32_NASM_FLAGS  =3D -Ox -f win32 -= g

-RELEASE_VS2013x86_IA32_NASM_FLAGS  =3D= -Ox -f win32

-NOOPT_VS2013x86_IA32_NASM_FLAGS=    =3D -O0 -f win32 -g

+  = ;DEBUG_VS2013x86_IA32_NASM_FLAGS  =3D -Ox -f win32 -g -DRODATA_SECTION= _NAME=3D.rdata

+RELEASE_VS2013x86_IA32_NASM_FL= AGS  =3D -Ox -f win32 -DRODATA_SECTION_NAME=3D.rdata
+NOOPT_VS2013x86_IA32_NASM_FLAGS    =3D -O0 -f w= in32 -g -DRODATA_SECTION_NAME=3D.rdata



  DEBUG_VS2013x86_IA32_DLINK_FLAGS =3D /NO= LOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECT= ION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY= _POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEB= UG

RELEASE_VS2013x86_IA32_DLINK_FLAGS =3D /NOL= OGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /AL= IGN: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=3D.data

@@ -1281,9 +1281= ,9 @@ NOOPT_VS2013x86_X64_CC_FLAGS       =3D = /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE
RELEASE_VS2013x86= _X64_ASM_FLAGS    =3D /nologo /c /WX /W3 /Cx /Zd

NOOPT_VS2013x86_X64_ASM_FLAGS     &nb= sp;=3D /nologo /c /WX /W3 /Cx /Zd /Zi



-  DEBUG_VS2013x86_X64_NASM_FLAGS   = =3D -Ox -f win64 -g

-RELEASE_VS2013x86_X64_NAS= M_FLAGS   =3D -Ox -f win64

-NOOPT_VS= 2013x86_X64_NASM_FLAGS     =3D -O0 -f win64 -g

+  DEBUG_VS2013x86_X64_NASM_FLAGS   =3D= -Ox -f win64 -g -DRODATA_SECTION_NAME=3D.rdata

+RELEASE_VS2013x86_X64_NASM_FLAGS   =3D -Ox -f win64 -DRODATA_S= ECTION_NAME=3D.rdata

+NOOPT_VS2013x86_X64_NASM= _FLAGS     =3D -O0 -f win64 -g -DRODATA_SECTION_NAME=3D= .rdata



 &nb= sp;DEBUG_VS2013x86_X64_DLINK_FLAGS  =3D /NOLOGO /NODEFAULTLIB /IGNORE:= 4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdat= a,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT= _SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG

RELEASE_VS2013x86_X64_DLINK_FLAGS  =3D /NOLOGO /NODEFAULTLIB /IG= NORE:4001 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdat= a,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /= SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata= =3D.data

@@ -1364,9 +1364,9 @@ NOOPT_VS2015_IA= 32_CC_FLAGS        =3D /nologo /arch:IA3= 2 /c /WX /GS- /W4 /Gs32768
RELEASE_VS2015_IA32_ASM_FLAGS &nbs= p;   =3D /nologo /c /WX /W3 /Cx /coff /Zd

NOOPT_VS2015_IA32_ASM_FLAGS       = =3D /nologo /c /WX /W3 /Cx /coff /Zd /Zi



-  DEBUG_VS2015_IA32_NASM_FLAGS   &= nbsp;=3D -Ox -f win32 -g

-RELEASE_VS2015_IA32_= NASM_FLAGS    =3D -Ox -f win32

= -NOOPT_VS2015_IA32_NASM_FLAGS      =3D -O0 -f win3= 2 -g

+  DEBUG_VS2015_IA32_NASM_FLAGS &nbs= p;  =3D -Ox -f win32 -g -DRODATA_SECTION_NAME=3D.rdata

+RELEASE_VS2015_IA32_NASM_FLAGS    =3D = -Ox -f win32 -DRODATA_SECTION_NAME=3D.rdata

+N= OOPT_VS2015_IA32_NASM_FLAGS      =3D -O0 -f win32 = -g -DRODATA_SECTION_NAME=3D.rdata



  DEBUG_VS2015_IA32_DLINK_FLAGS   =3D= /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /= SECTION:.xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_E= NTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER = /DEBUG

RELEASE_VS2015_IA32_DLINK_FLAGS  &= nbsp;=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) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFES= EH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.data

@@= -1396,9 +1396,9 @@ NOOPT_VS2015_X64_CC_FLAGS      = ; =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /G
REL= EASE_VS2015_X64_ASM_FLAGS    =3D /nologo /c /WX /W3 /Cx /Zd<= br class=3D"">
NOOPT_VS2015_X64_ASM_FLAGS    = =3D /nologo /c /WX /W3 /Cx /Zd /Zi



-  DEBUG_VS2015_X64_NASM_FLAGS   =3D -O= x -f win64 -g

-RELEASE_VS2015_X64_NASM_FLAGS &= nbsp; =3D -Ox -f win64

-NOOPT_VS2015_X64_= NASM_FLAGS     =3D -O0 -f win64 -g

+  DEBUG_VS2015_X64_NASM_FLAGS   =3D -Ox -f win64 -= g -DRODATA_SECTION_NAME=3D.rdata

+RELEASE_VS20= 15_X64_NASM_FLAGS   =3D -Ox -f win64 -DRODATA_SECTION_NAME=3D.rda= ta

+NOOPT_VS2015_X64_NASM_FLAGS   &n= bsp; =3D -O0 -f win64 -g -DRODATA_SECTION_NAME=3D.rdata
=


  DEBUG_VS2015_X64_D= LINK_FLAGS  =3D /NOLOGO /NODEFAULTLIB /IGNORE: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 /SAFES= EH:NO /BASE:0 /DRIVER /DEBUG

RELEASE_VS2015_X6= 4_DLINK_FLAGS  =3D /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OP= T:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Mac= hine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE= _DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.data
@@ -1476,9 +1476,9 @@ NOOPT_VS2015x86_IA32_CC_FLAGS   = ;   =3D /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768
RELEASE_VS2015x86_IA32_ASM_FLAGS   =3D /nologo /c /WX /W3 /= Cx /coff /Zd

NOOPT_VS2015x86_IA32_ASM_FLAGS &n= bsp;   =3D /nologo /c /WX /W3 /Cx /coff /Zd /Zi



-  DEBUG_VS2015x86_IA32= _NASM_FLAGS  =3D -Ox -f win32 -g

-RELEASE= _VS2015x86_IA32_NASM_FLAGS  =3D -Ox -f win32

-NOOPT_VS2015x86_IA32_NASM_FLAGS    =3D -O0 -f win32 -= g

+  DEBUG_VS2015x86_IA32_NASM_FLAGS &nbs= p;=3D -Ox -f win32 -g -DRODATA_SECTION_NAME=3D.rdata

+RELEASE_VS2015x86_IA32_NASM_FLAGS  =3D -Ox -f win32 -DRODATA_S= ECTION_NAME=3D.rdata

+NOOPT_VS2015x86_IA32_NAS= M_FLAGS    =3D -O0 -f win32 -g -DRODATA_SECTION_NAME=3D.rdat= a



  DE= BUG_VS2015x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:= REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /MACHI= NE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_D= RIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG

RELEA= SE_VS2015x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNOR= E:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pd= ata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BO= OT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.data

@@ -1508,9 +1508,9 @@ NOOPT_VS2015x86_X64_CC_FLAGS &n= bsp;     =3D /nologo /c /WX /GS- /W4 /Gs32768 /D U= NICODE
RELEASE_VS2015x86_X64_ASM_FLAGS    =3D = /nologo /c /WX /W3 /Cx /Zd

NOOPT_VS2015x86_X64= _ASM_FLAGS      =3D /nologo /c /WX /W3 /Cx /Zd /Zi=



-  DEBUG_V= S2015x86_X64_NASM_FLAGS   =3D -Ox -f win64 -g

-RELEASE_VS2015x86_X64_NASM_FLAGS   =3D -Ox -f win64
-NOOPT_VS2015x86_X64_NASM_FLAGS   &nbs= p; =3D -O0 -f win64 -g

+  DEBUG_VS20= 15x86_X64_NASM_FLAGS   =3D -Ox -f win64 -g -DRODATA_SECTION_NAME= =3D.rdata

+RELEASE_VS2015x86_X64_NASM_FLAGS &n= bsp; =3D -Ox -f win64 -DRODATA_SECTION_NAME=3D.rdata
+NOOPT_VS2015x86_X64_NASM_FLAGS     =3D -O0= -f win64 -g -DRODATA_SECTION_NAME=3D.rdata


  DEBUG_VS2015x86_X64_DLINK_FLAGS &nb= sp;=3D /NOLOGO /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIG= N:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(I= MAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /D= RIVER /DEBUG

RELEASE_VS2015x86_X64_DLINK_FLAGS=  =3D /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4254 /OPT:REF /OPT:IC= F=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTC= G /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFE= SEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.data

@= @ -1586,9 +1586,9 @@ NOOPT_VS2017_IA32_CC_FLAGS     &nb= sp;=3D /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D
RELEASE= _VS2017_IA32_ASM_FLAGS   =3D /nologo /c /WX /W3 /Cx /coff /Zd

NOOPT_VS2017_IA32_ASM_FLAGS    &nb= sp;=3D /nologo /c /WX /W3 /Cx /coff /Zd /Zi


-  DEBUG_VS2017_IA32_NASM_FLAGS  =3D = -Ox -f win32 -g

-RELEASE_VS2017_IA32_NASM_FLAG= S  =3D -Ox -f win32

-NOOPT_VS2017_IA32_NA= SM_FLAGS    =3D -O0 -f win32 -g

+  DEBUG_VS2017_IA32_NASM_FLAGS  =3D -Ox -f win32 -g -DRODATA_SE= CTION_NAME=3D.rdata

+RELEASE_VS2017_IA32_NASM_= FLAGS  =3D -Ox -f win32 -DRODATA_SECTION_NAME=3D.rdata
<= br class=3D"">+NOOPT_VS2017_IA32_NASM_FLAGS    =3D -O0 -f wi= n32 -g -DRODATA_SECTION_NAME=3D.rdata



  DEBUG_VS2017_IA32_DLINK_FLAGS =3D /NOLOGO= /NODEFAULTLIB /IGNORE:4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:= .xdata,D /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POI= NT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
RELEASE_VS2017_IA32_DLINK_FLAGS =3D /NOLOGO /NO= DEFAULTLIB /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) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER= /MERGE:.rdata=3D.data

@@ -1616,9 +1616,9 @@ N= OOPT_VS2017_X64_CC_FLAGS       =3D /nologo /c= /WX /GS- /W4 /Gs32768 /D UNICODE /G
RELEASE_VS2017_X64_ASM_F= LAGS    =3D /nologo /c /WX /W3 /Cx /Zd

NOOPT_VS2017_X64_ASM_FLAGS      =3D /nolog= o /c /WX /W3 /Cx /Zd /Zi



-  DEBUG_VS2017_X64_NASM_FLAGS   =3D -Ox -f win64 -= g

-RELEASE_VS2017_X64_NASM_FLAGS   = =3D -Ox -f win64

-NOOPT_VS2017_X64_NASM_FLAGS =     =3D -O0 -f win64 -g

+ =  DEBUG_VS2017_X64_NASM_FLAGS   =3D -Ox -f win64 -g -DRODATA_= SECTION_NAME=3D.rdata

+RELEASE_VS2017_X64_NASM= _FLAGS   =3D -Ox -f win64 -DRODATA_SECTION_NAME=3D.rdata

+NOOPT_VS2017_X64_NASM_FLAGS     = =3D -O0 -f win64 -g -DRODATA_SECTION_NAME=3D.rdata



  DEBUG_VS2017_X64_DLINK_FLAG= S  =3D /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4281 /OPT:REF /OPT:I= CF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LT= CG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAF= ESEH:NO /BASE:0 /DRIVER /DEBUG

RELEASE_VS2017_= X64_DLINK_FLAGS  =3D /NOLOGO /NODEFAULTLIB /IGNORE:4001 /IGNORE:4281 /= IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTIO= N:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:E= FI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.data
@@ -1744,9 +1744,9 @@ NOOPT_VS2019_IA32_CC_FLAGS=      =3D /nologo /arch:IA32 /c /WX /GS- /W4 /Gs32= 768 /D
RELEASE_VS2019_IA32_ASM_FLAGS   =3D /nologo = /c /WX /W3 /Cx /coff /Zd

NOOPT_VS2019_IA32_ASM= _FLAGS     =3D /nologo /c /WX /W3 /Cx /coff /Zd /Zi



-  DEBUG_VS201= 9_IA32_NASM_FLAGS  =3D -Ox -f win32 -g

-R= ELEASE_VS2019_IA32_NASM_FLAGS  =3D -Ox -f win32

-NOOPT_VS2019_IA32_NASM_FLAGS    =3D -O0 -f win32 -g<= br class=3D"">
+  DEBUG_VS2019_IA32_NASM_FLAGS  =3D= -Ox -f win32 -g -DRODATA_SECTION_NAME=3D.rdata

+RELEASE_VS2019_IA32_NASM_FLAGS  =3D -Ox -f win32 -DRODATA_SECTION_N= AME=3D.rdata

+NOOPT_VS2019_IA32_NASM_FLAGS &nb= sp;  =3D -O0 -f win32 -g -DRODATA_SECTION_NAME=3D.rdata



  DEBUG_VS2019= _IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE: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 /SAFES= EH:NO /BASE:0 /DRIVER /DEBUG

RELEASE_VS2019_IA= 32_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) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIV= ER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.data

@@ -1774,9 +1774,9 @@ NOOPT_VS2019_X64_CC_FLAGS    &n= bsp;  =3D /nologo /c /WX /GS- /W4 /Gs32768 /D UNICODE /G
RELEASE_VS2019_X64_ASM_FLAGS    =3D /nologo /c /WX /W3= /Cx /Zd

NOOPT_VS2019_X64_ASM_FLAGS  &nbs= p;   =3D /nologo /c /WX /W3 /Cx /Zd /Zi



-  DEBUG_VS2019_X64_NASM_FLAGS =   =3D -Ox -f win64 -g

-RELEASE_VS201= 9_X64_NASM_FLAGS   =3D -Ox -f win64

= -NOOPT_VS2019_X64_NASM_FLAGS     =3D -O0 -f win64 -g
+  DEBUG_VS2019_X64_NASM_FLAGS   = =3D -Ox -f win64 -g -DRODATA_SECTION_NAME=3D.rdata

+RELEASE_VS2019_X64_NASM_FLAGS   =3D -Ox -f win64 -DRODATA_= SECTION_NAME=3D.rdata

+NOOPT_VS2019_X64_NASM_F= LAGS     =3D -O0 -f win64 -g -DRODATA_SECTION_NAME=3D.r= data



  = ;DEBUG_VS2019_X64_DLINK_FLAGS  =3D /NOLOGO /NODEFAULTLIB /IGNORE:4001 = /IGNORE:4281 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTI= ON:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:= EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
RELEASE_VS2019_X64_DLINK_FLAGS  =3D /NOLOGO /NODEFAULTLIB= /IGNORE:4001 /IGNORE:4281 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:= 32 /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMA= GE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRI= VER /MERGE:.rdata=3D.data

@@ -2030,7 +2030,7 @= @ DEFINE GCC_PP_FLAGS          = ;            &n= bsp; =3D -E -x assembler-with-cpp -include A
*_GCC48_IA3= 2_DLINK2_FLAGS         =3D DEF(GCC4= 8_IA32_DLINK2_FLAGS)

*_GCC48_IA32_RC_FLAGS &nb= sp;           =3D DE= F(GCC_IA32_RC_FLAGS)

*_GCC48_IA32_OBJCOPY_FLAG= S        =3D

-*_GCC48_IA32_NASM_FLAGS         =   =3D -f elf32

+*_GCC48_IA32_NASM_FL= AGS           =3D -f elf3= 2 -DRODATA_SECTION_NAME=3D.rodata



  DEBUG_GCC48_IA32_CC_FLAGS    &= nbsp;  =3D DEF(GCC48_IA32_CC_FLAGS) -Os

RELEASE_GCC48_IA32_CC_FLAGS       =3D D= EF(GCC48_IA32_CC_FLAGS) -Os -Wno-unused-but-set-variable

@@ -2058,7 +2058,7 @@ RELEASE_GCC48_IA32_CC_FLAGS   &n= bsp;   =3D DEF(GCC48_IA32_CC_FLAGS) -Os -Wno-unused-but
*_GCC48_X64_DLINK2_FLAGS       &nbs= p; =3D DEF(GCC48_X64_DLINK2_FLAGS)

*_GCC4= 8_X64_RC_FLAGS           =   =3D DEF(GCC_X64_RC_FLAGS)

*_GCC48_= X64_OBJCOPY_FLAGS        =3D

-*_GCC48_X64_NASM_FLAGS      &nb= sp;    =3D -f elf64

+*_GCC= 48_X64_NASM_FLAGS          &nb= sp;=3D -f elf64 -DRODATA_SECTION_NAME=3D.rodata



  DEBUG_GCC48_X64_CC_FLAGS  =      =3D DEF(GCC48_X64_CC_FLAGS) -Os

RELEASE_GCC48_X64_CC_FLAGS      &n= bsp;=3D DEF(GCC48_X64_CC_FLAGS) -Os -Wno-unused-but-set-variable

@@ -2170,7 +2170,7 @@ RELEASE_GCC48_AARCH64_CC_FLAGS &= nbsp; =3D DEF(GCC48_AARCH64_CC_FLAGS) -Wno-unused-but-s
= *_GCC49_IA32_DLINK2_FLAGS         = =3D DEF(GCC49_IA32_DLINK2_FLAGS)

*_GCC49_IA32_= RC_FLAGS            =  =3D DEF(GCC_IA32_RC_FLAGS)

*_GCC49_IA32_= OBJCOPY_FLAGS        =3D
<= br class=3D"">-*_GCC49_IA32_NASM_FLAGS       =     =3D -f elf32

+*_GCC49_= IA32_NASM_FLAGS           = ;=3D -f elf32 -DRODATA_SECTION_NAME=3D.rodata

=

  DEBUG_GCC49_IA32_CC_FLAGS  &= nbsp;    =3D DEF(GCC49_IA32_CC_FLAGS) -Os

RELEASE_GCC49_IA32_CC_FLAGS      &= nbsp;=3D DEF(GCC49_IA32_CC_FLAGS) -Os -Wno-unused-but-set-variable -Wno-unu= sed-const-variable

@@ -2198,7 +2198,7 @@ RELEA= SE_GCC49_IA32_CC_FLAGS       =3D DEF(GCC49_IA= 32_CC_FLAGS) -Os -Wno-unused-but
*_GCC49_X64_DLINK2_FLAGS &nb= sp;       =3D DEF(GCC49_X64_DLINK2_FLAGS= )

*_GCC49_X64_RC_FLAGS     = ;        =3D DEF(GCC_X64_RC_FLAGS)<= br class=3D"">
*_GCC49_X64_OBJCOPY_FLAGS    &n= bsp;   =3D

-*_GCC49_X64_NASM_FL= AGS           =3D -f elf6= 4

+*_GCC49_X64_NASM_FLAGS    &n= bsp;      =3D -f elf64 -DRODATA_SECTION_NAME= =3D.rodata



 = ; DEBUG_GCC49_X64_CC_FLAGS       =3D DEF= (GCC49_X64_CC_FLAGS) -Os

RELEASE_GCC49_X64_CC_= FLAGS       =3D DEF(GCC49_X64_CC_FLAGS) -Os -= Wno-unused-but-set-variable -Wno-unused-const-variable

@@ -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=

*_GCC5_IA32_RC_FLAGS     =         =3D DEF(GCC_IA32_RC_FLAGS)<= br class=3D"">
*_GCC5_IA32_OBJCOPY_FLAGS    &n= bsp;   =3D

-*_GCC5_IA32_NASM_FL= AGS           =3D -f elf3= 2

+*_GCC5_IA32_NASM_FLAGS    &n= bsp;      =3D -f elf32 -DRODATA_SECTION_NAME= =3D.rodata



 = ; DEBUG_GCC5_IA32_CC_FLAGS       =3D DEF= (GCC5_IA32_CC_FLAGS) -flto -Os

  DEB= UG_GCC5_IA32_DLINK_FLAGS    =3D DEF(GCC5_IA32_X64_DLINK_FLAG= S) -flto -Os -Wl,-m,elf_i386,--oformat=3Delf32-i386

@@ -2348,7 +2348,7 @@ RELEASE_GCC5_IA32_DLINK_FLAGS    = ;=3D DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,
*_GCC5_X64= _DLINK2_FLAGS          =3D DEF= (GCC5_X64_DLINK2_FLAGS)

*_GCC5_X64_RC_FLAGS &n= bsp;            = ;=3D DEF(GCC_X64_RC_FLAGS)

*_GCC5_X64_OBJCOPY_= FLAGS         =3D
-*_GCC5_X64_NASM_FLAGS       &nbs= p;    =3D -f elf64

+*_GCC5= _X64_NASM_FLAGS           = ; =3D -f elf64 -DRODATA_SECTION_NAME=3D.rodata



  DEBUG_GCC5_X64_CC_FLAGS &nb= sp;      =3D DEF(GCC5_X64_CC_FLAGS) -flto -DU= SING_LTO -Os

  DEBUG_GCC5_X64_DLINK_= FLAGS     =3D DEF(GCC5_X64_DLINK_FLAGS) -flto -Os

@@ -2589,7 +2589,7 @@ DEFINE CLANG38_ALL_CC_FLAGS &= nbsp;       =3D DEF(GCC48_ALL_CC_FLAGS) = DEF(CLANG38_WARNIN
*_CLANG38_IA32_ASM_FLAGS    = ;        =3D DEF(GCC5_ASM_FLAGS) -m= 32 -march=3Di386 DEF(CLANG38_IA32_TARGET)

*_CL= ANG38_IA32_RC_FLAGS          &= nbsp;  =3D DEF(GCC_IA32_RC_FLAGS)

*_= CLANG38_IA32_OBJCOPY_FLAGS        =3D
-*_CLANG38_IA32_NASM_FLAGS    &nb= sp;      =3D -f elf32

+*_CLANG38_IA32_NASM_FLAGS        =    =3D -f elf32 -DRODATA_SECTION_NAME=3D.rodata

*_CLANG38_IA32_PP_FLAGS      &nbs= p;      =3D DEF(GCC_PP_FLAGS) DEF(CLANG38_IA3= 2_TARGET)

*_CLANG38_IA32_ASLPP_FLAGS  &nb= sp;       =3D DEF(GCC_ASLPP_FLAGS) DEF(C= LANG38_IA32_TARGET)

*_CLANG38_IA32_VFRPP_FLAGS=          =3D DEF(GCC_VFRPP_FL= AGS) DEF(CLANG38_IA32_TARGET)

@@ -2626,7 +2626= ,7 @@ NOOPT_CLANG38_IA32_DLINK2_FLAGS     =3D DEF(GCC5_= IA32_DLINK2_FLAGS) -O0
*_CLANG38_X64_ASM_FLAGS   &n= bsp;        =3D DEF(GCC5_ASM_FLAGS)= -m64 DEF(CLANG38_X64_TARGET)

*_CLANG38_X64_RC= _FLAGS            &n= bsp;=3D DEF(GCC_X64_RC_FLAGS)

*_CLANG38_X64_OB= JCOPY_FLAGS        =3D
-*_CLANG38_X64_NASM_FLAGS       &= nbsp;   =3D -f elf64

+*_CLANG38= _X64_NASM_FLAGS           = ;=3D -f elf64 -DRODATA_SECTION_NAME=3D.rodata

= *_CLANG38_X64_PP_FLAGS         &nbs= p;   =3D DEF(GCC_PP_FLAGS) DEF(CLANG38_X64_TARGET)

*_CLANG38_X64_ASLPP_FLAGS     &nbs= p;    =3D DEF(GCC_ASLPP_FLAGS) DEF(CLANG38_X64_TARGET)<= br class=3D"">
*_CLANG38_X64_VFRPP_FLAGS    &n= bsp;     =3D DEF(GCC_VFRPP_FLAGS) DEF(CLANG38_X64_= TARGET)

@@ -2777,7 +2777,7 @@ DEFINE CLANGPDB_= ALL_CC_FLAGS         =3D DEF(GCC48_= ALL_CC_FLAGS) DEF(CLANGPDB_WARN
*_CLANGPDB_IA32_ASLCC_FLAGS &= nbsp;        =3D DEF(GCC_ASLCC_FLAG= S) -m32 -fno-lto DEF(CLANGPDB_IA32_TARGET)

*_C= LANGPDB_IA32_ASM_FLAGS         &nbs= p;  =3D DEF(GCC_ASM_FLAGS) -m32 -march=3Di386 DEF(CLANGPDB_IA32_T= ARGET)

*_CLANGPDB_IA32_OBJCOPY_FLAGS  &nb= sp;     =3D

-*_CLANGP= DB_IA32_NASM_FLAGS          &n= bsp;=3D -f win32

+*_CLANGPDB_IA32_NASM_FLAGS &= nbsp;         =3D -f win32 -DR= ODATA_SECTION_NAME=3D.rdata

*_CLANGPDB_IA32_PP= _FLAGS            &n= bsp;=3D DEF(GCC_PP_FLAGS) DEF(CLANGPDB_IA32_TARGET)

*_CLANGPDB_IA32_ASLPP_FLAGS        = ;  =3D DEF(GCC_ASLPP_FLAGS) DEF(CLANGPDB_IA32_TARGET)

*_CLANGPDB_IA32_VFRPP_FLAGS      = ;    =3D DEF(GCC_VFRPP_FLAGS) DEF(CLANGPDB_IA32_TARGET)=

@@ -2811,7 +2811,7 @@ NOOPT_CLANGPDB_IA32_DLI= NK2_FLAGS     =3D
*_CLANGPDB_X64_ASLCC_FL= AGS          =3D DEF(GCC_ASLCC= _FLAGS) -m64 -fno-lto DEF(CLANGPDB_X64_TARGET)

*_CLANGPDB_X64_ASM_FLAGS         &= nbsp;  =3D DEF(GCC_ASM_FLAGS) -m64 DEF(CLANGPDB_X64_TARGET)

*_CLANGPDB_X64_OBJCOPY_FLAGS    &nbs= p;   =3D

-*_CLANGPDB_X64_NASM_F= LAGS           =3D -f win= 64

+*_CLANGPDB_X64_NASM_FLAGS   &nbs= p;       =3D -f win64 -DRODATA_SECTION_N= AME=3D.rdata

*_CLANGPDB_X64_PP_FLAGS  &nb= sp;          =3D DEF(GCC_= PP_FLAGS) DEF(CLANGPDB_X64_TARGET)

*_CLANGPDB_= X64_ASLPP_FLAGS          =3D D= EF(GCC_ASLPP_FLAGS) DEF(CLANGPDB_X64_TARGET)

*= _CLANGPDB_X64_VFRPP_FLAGS         &= nbsp;=3D DEF(GCC_VFRPP_FLAGS) DEF(CLANGPDB_X64_TARGET)

@@ -2878,7 +2878,7 @@ DEFINE CLANGDWARF_X64_DLINK2_FLAGS  &nb= sp;     =3D -Wl,--defsym=3DPECOFF_HEADER_SIZE=3D0x= 22
*_CLANGDWARF_IA32_ASM_FLAGS      =       =3D DEF(GCC5_ASM_FLAGS) -m32 -march=3Di= 386 DEF(CLANG38_IA32_TARGET)

*_CLANGDWARF_IA32= _RC_FLAGS            = ; =3D DEF(GCC_IA32_RC_FLAGS)

*_CLANGDWARF= _IA32_OBJCOPY_FLAGS        =3D

-*_CLANGDWARF_IA32_NASM_FLAGS     =       =3D -f elf32

+*_CLANGDWARF_IA32_NASM_FLAGS        =    =3D -f elf32 -DRODATA_SECTION_NAME=3D.rodata

*_CLANGDWARF_IA32_PP_FLAGS      &= nbsp;      =3D DEF(GCC_PP_FLAGS) DEF(CLANG38_= IA32_TARGET)

*_CLANGDWARF_IA32_ASLPP_FLAGS &nb= sp;        =3D DEF(GCC_ASLPP_FLAGS)= DEF(CLANG38_IA32_TARGET)

*_CLANGDWARF_IA32_VF= RPP_FLAGS          =3D DEF(GCC= _VFRPP_FLAGS) DEF(CLANG38_IA32_TARGET)

@@ -291= 4,7 +2914,7 @@ NOOPT_CLANGDWARF_IA32_DLINK2_FLAGS     = =3D DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O0 -
*_CLANGDWARF_X64_= ASM_FLAGS            = ;=3D DEF(GCC5_ASM_FLAGS) -m64 DEF(CLANG38_X64_TARGET)

*_CLANGDWARF_X64_RC_FLAGS        = ;     =3D DEF(GCC_X64_RC_FLAGS)

*_CLANGDWARF_X64_OBJCOPY_FLAGS      &nb= sp; =3D

-*_CLANGDWARF_X64_NASM_FLAGS &nbs= p;         =3D -f elf64

+*_CLANGDWARF_X64_NASM_FLAGS     = ;      =3D -f elf64 -DRODATA_SECTION_NAME=3D.= rodata

*_CLANGDWARF_X64_PP_FLAGS   &= nbsp;         =3D DEF(GCC_PP_F= LAGS) DEF(CLANG38_X64_TARGET)

*_CLANGDWARF_X64= _ASLPP_FLAGS          =3D DEF(= GCC_ASLPP_FLAGS) DEF(CLANG38_X64_TARGET)

*_CLA= NGDWARF_X64_VFRPP_FLAGS         &nb= sp;=3D DEF(GCC_VFRPP_FLAGS) DEF(CLANG38_X64_TARGET)

@@ -2985,7 +2985,7 @@ RELEASE_XCODE5_IA32_DLINK_FLAGS   &nb= sp;  =3D -arch i386 -u _$(IMAGE_ENTRY_POINT) -e _$
=   DEBUG_XCODE5_IA32_ASM_FLAGS  =3D -arch i386 -g

  NOOPT_XCODE5_IA32_ASM_FLAGS  =3D -arch i= 386 -g

RELEASE_XCODE5_IA32_ASM_FLAGS  =3D= -arch i386

-      *_= XCODE5_IA32_NASM_FLAGS =3D -f macho32

+  =     *_XCODE5_IA32_NASM_FLAGS =3D -f macho32 -DRODATA_SE= CTION_NAME=3D.rodata



An EFI Mach-O file does not contain a .rodata section. A= Mach-O contains a __DATA segment that is broken up into sections. For a ty= pical EFI image there are __const, __data, __bss sections in the __DATA seg= ment [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 "NASM_RODATA_SECTION_NAME", to indicate this is n= ot just a "raw" name, but NASM gives it a semantic meaning?
<= br class=3D"">
The mtoc [2] tool used t= o convert mach-O to PE/COFF converts the entire __DATA segment (__const, __= data, and __bss) into the .data section. Thus adding any kind of new data s= ection is a no-op at best.
This is a part I miss= ed, because I do not have an Xcode toolchain at hand, so thanks for investi= gating. However this, in my opinion, is a flaw with Mach-O/mtoc and not wit= h my patch. It seems like the only difference between __TEXT,__const and __= DATA,__const is whether the data is targeted by a relocation or not. Such a= concept does not exist for PE/COFF (and I think 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 may or may not be merged into .= text in an earlier step, I assume transitivity). I could change the macro d= efinition to explicitly declare __TEXT,__const, but that would still put th= e compiler-emitted data in the wrong section. Does Xcode provide anything r= emotely similar to GNU linker scripts which we can use to move the section?=

Please also note that .rodata is used for Xco= de-based toolchains already (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 th= e compiler and .rodata with RX permissions from NASM, because ".rodata" onl= y has a semantic meaning for ELF and Mach-O outputs, but not for PE/COFF.
If you wan= t something to be read only for Xcode/clang you are better off putting it i= n the __TEXT section [3]. The __TEXT section is read only and for X64 can n= ot even contain relocations.
Well, this kind of = is an issue. We would need to introduce an arbitrary constraint on the relo= cation part that holds only for Xcode-based toolchains. Does the compiler e= mit an error when data in __TEXT,__const is targeted by a relocation?
The Xcode linker emits a fatal error on X64 for a rel= ocation in the __TEXT section, everything needs to be RIP relative and the = compiler does that 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.

It is a physics problem we can=E2=80=99t fix, so I end up w= riting some patches to fix other peoples assembler from time to time. The C= I building with Xcode helps with this a lot.
(I think all open ends of the ot= her threads are in here too, so let's drop them and go on only here?)

Right, ok, thanks!

Also see above regarding compiler-emitted __DATA,__co= nst.

OK so the current nasm `SECT= ION .rodata`[1]  gets mapped to __TEXT,__const[2] for Xcode clang, and= this is done by nasm (I dumped the object file). GenFw and mtoc only run o= n executables, also they tend to be conservative as they need to keep the l= ayout the same and the relative layout between sections the same, but in th= is case it is nasm placing the data in the text section.

So what I=E2=80=99d like to see in the patch is to define RODATA= _SECTION_NAME to match what is actually happening. So for XCODE that would = be `__TEXT,__const` not `.rodata`.
We can do tha= t, but what to do about compiler-emitted __DATA,__const?
Sorry I don=E2=80=99t understand what RODATA_SECTION_NAME has to d= o with the compiler? I thought it was for nasm?
=
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 fix= es where the NASM definitions go, but what about the C definitions? I canno= t test it, as I said, because I don't have an Xcode machine, but let's say = we have a stupid example like this:

volatile UINT32 a;
volatile UINT32 *CONST p = =3D &a;


In t= his case p ends up in a __DATA__,__const section since &a requires a re= location. 


The value of p is constant, = so it can be placed in a constant data section. p points to a global variab= le, so if the compiler does not manage to somehow turn this into relative a= ddressing (let's assume it does not), it needs to generate a relocation. Th= is means the compiler cannot put it in __TEXT,__const, so it has to put it = in __DATA,__const (of course it could put it in other __DATA sections, but = let's assume the compiler agrees this should be read-only). The very same i= ssue 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 canno= t emit __DATA,__const?
<= /blockquote>

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 implementation detail for the compiler, and = we can=E2=80=99t really depend on that?


We should double check what is happening for ELF on x8= 6, ARM, RiskV, etc. and do the same thing. I assume all the tools that gene= rate PE/COFF directly are good with .rodata?
The= y are not, that is the whole point of the patch in its current shape. .roda= ta is valid for ELF and Mach-O, PE/COFF needs .rdata.

I think it is likely as simple= as dumping the EFL object file in objdump or gdb for the given toolchain (= like my Xcode example).

TL;DR It looks to me l= ike nasm does some SECTION translations under the hood to make code portabl= e, and I=E2=80=99d like to make sure we capture those in the new NASM_RODAT= A_SECTION_NAME. If some one is doing a security review having NASM_RODATA_S= ECTION_NAME is going to imply that a .rodata section is being used by that = specific toolchain, and I think that is much worse 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 obvious.
I feel like I'm too tired to get the point. Do you mean you want comment= s whenever this section name is used? Or comments in tools_def?

I think I=E2=80=99d settle for a more descri= ptive commit comment that better defines what the define means like I menti= oned in the other mail.

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, mayb= e it is time to introduce an example comment so at least new things get com= mented? Maybe just the start of a macro list. Relying on "git blame" to fig= ure out simple things is rather awful.

One more thing from = another thread: Yes, the new macro should refer to object file section nami= ng. I want this patch to get object file sections proper and sound. From th= ere on we can fix the linking stage to emit proper and sound executables in= a later patch.


= OK then please refactor the commit message to make it clear that this patch= is to get the correct section in the object files, and work is still need = to get this into executable images. 

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. 

GenFW is part of EDKII BaseTools and mtoc is part of t= he open source CCTOOLS project and both those tools would need to be modifi= ed to create a .rodata section in PE/COFF.

<= div>Thanks,

Andrew Fish

Best rega= rds,
Marvin


Thanks,

Andre= w Fish

Be= st regards,
Marvin

[1] https://github.com/tianocore/edk2/blob/master/UefiCpuPkg/Library/Ba= seUefiCpuLib/X64/InitializeFpu.nasm#L14 <https://github.com/tianocore/edk2/blob/master/U= efiCpuPkg/Library/BaseUefiCpuLib/X64/InitializeFpu.nasm#L14>

[2] $otool -V -s __TEXT __constBuild/OvmfX64/DEBUG_XC= ODE5/X64/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib/OUTPUT/X64/Initia= lizeFpu.obj
Build//OvmfX64/DEBUG_XCODE5/X64/UefiCpuPkg/Librar= y/BaseUefiCpuLib/BaseUefiCpuLib/OUTPUT/X64/InitializeFpu.obj:
Contents of (__TEXT,__const) section
0000001d  7f 03 80= 1f 00 00

$ otool -l Build//OvmfX64/DEBUG_XCOD= E5/X64/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib/OUTPUT/X64/Initiali= zeFpu.obj
Build/OvmfX64/DEBUG_XCODE5/X64/UefiCpuPkg/Library/B= aseUefiCpuLib/BaseUefiCpuLib/OUTPUT/X64/InitializeFpu.obj:
Lo= ad command 0
      cmd LC_SEGME= NT_64
  cmdsize 232
  segna= me
   vmaddr 0x0000000000000000
=    vmsize 0x0000000000000026
  fileo= ff 288
 filesize 38
  maxprot 0x= 00000007
 initprot 0x00000007
  =  nsects 2
    flags 0x0
Section
  sectname __text
 &nb= sp; segname __TEXT
      a= ddr 0x0000000000000000
      si= ze 0x000000000000001d
    offset 288
     align 2^0 (1)
 &= nbsp;  reloff 328
    nreloc 2<= br class=3D"">     flags 0x80000500
=  reserved1 0
 reserved2 0
Section
  sectname __const
   seg= name __TEXT
      addr 0x000000= 000000001d
      size 0x0000000= 000000006
    offset 320
&n= bsp;    align 2^0 (1)
   &= nbsp;reloff 0
    nreloc 0
=      flags 0x00000000
 reserved= 1 0
 reserved2 0
Load command 1
     cmd LC_SYMTAB
 cmdsi= ze 24
  symoff 344
   = nsyms 3
  stroff 392
 strsize 63=

Thanks,

Andrew F= ish


Thanks for your notes and insight!

B= est regards,
Marvin


[1]
"For compatibility with other Unix platforms, the foll= owing standard names are also supported:
[...]
= .rodata  =3D __DATA,__const data
[...]
If = the .rodata section contains no relocations, it is instead put into the __T= EXT,__const section unless this section has already been specified explicit= ly."
https://www.nasm.us/xdoc/2.13.01/html/nasmdoc7.html = <https://www.nasm.us/xdoc/2.13.01/html/nasmdoc7.html>

[1] otool -lh Dxe= Core.dll
...
Load command 1
 = ;     cmd LC_SEGMENT_64
  = cmdsize 312
  segname __DATA
 &n= bsp; vmaddr 0x000000000002b000
   vmsize = 0x0000000000147000
  fileoff 180224
&= nbsp;filesize 8192
  maxprot 0x00000003
 initprot 0x00000003
   nsects 3
    flags 0x0
Section
  sectname __const
   segname = __DATA
      addr 0x00000000000= 2b000
      size 0x000000000000= 0718
    offset 180224
&nbs= p;    align 2^4 (16)
   &n= bsp;reloff 0
    nreloc 0
&= nbsp;    flags 0x00000000
 reserved1= 0
 reserved2 0
Section
&nbs= p; sectname __data
   segname __DATA
      addr 0x000000000002b720
      size 0x00000000000014f0
    offset 182048
  &nb= sp;  align 2^4 (16)
    reloff = 0
    nreloc 0
  =    flags 0x00000000
 reserved1 0
 reserved2 0
Section
  sec= tname __bss
   segname __DATA
&n= bsp;     addr 0x000000000002cc10
&nb= sp;     size 0x0000000000144e11
&nbs= p;   offset 0
     al= ign 2^4 (16)
    reloff 0
&= nbsp;   nreloc 0
     = ;flags 0x00000001
 reserved1 0
 reser= ved2 0
=E2=80=A6

[2] https://opensource.apple.com/source/cctools/cctools-698/= efitools/mtoc.c.auto.html <https://ope= nsource.apple.com/source/cctools/cctools-698/efitools/mtoc.c.auto.html&= gt;

[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
    flag= s 0x0
Section
  sectname __text
   segname __TEXT
   &= nbsp;  addr 0x0000000000000240
   &n= bsp;  size 0x000000000002489f
   &nb= sp;offset 1184
     align 2^3 (8)    reloff 0
  &nbs= p; nreloc 0
     flags 0x800004= 00
 reserved1 0
 reserved2 0
Section
  sectname __cstring
&n= bsp;  segname __TEXT
     =  addr 0x0000000000024ae0
     &= nbsp;size 0x000000000000496d
    offset 1= 50848
     align 2^4 (16)
    reloff 0
   &nbs= p;nreloc 0
     flags 0x00000002
 reserved1 0
 reserved2 0
= Section
  sectname __ustring
 &n= bsp; segname __TEXT
      = addr 0x000000000002944e
      s= ize 0x0000000000000048
    offset 169646<= br class=3D"">     align 2^1 (2)
&nb= sp;   reloff 0
    nreloc = 0
     flags 0x00000000
 reserved1 0
 reserved2 0
Section  sectname __const
   s= egname __TEXT
      addr 0x0000= 0000000294a0
      size 0x00000= 00000000448
    offset 169728
     align 2^4 (16)
  &= nbsp; reloff 0
    nreloc 0
     flags 0x00000000
 re= served1 0
 reserved2 0

Than= ks,

Andrew Fish

<= blockquote type=3D"cite" class=3D"">
  DEBUG_XCODE5= _IA32_CC_FLAGS   =3D -arch i386 -c -g -Os     = ;  -Wall -Werror -include AutoGen.h -funsigned-char -fno-stack-pr= otector -fno-builtin -fshort-wchar -fasm-blocks -mdynamic-no-pic -mno-impli= cit-float -mms-bitfields -msoft-float -Wno-unused-parameter -Wno-missing-br= aces -Wno-missing-field-initializers -Wno-tautological-compare -Wno-sign-co= mpare -Wno-varargs -ftrap-function=3Dundefined_behavior_has_been_optimized_= away_by_clang $(PLATFORM_FLAGS)

@@ -3003,7 +30= 03,7 @@ RELEASE_XCODE5_X64_DLINK_FLAGS      =3D -a= rch x86_64 -u _$(IMAGE_ENTRY_POINT) -e _
  DEBUG_XC= ODE5_X64_ASM_FLAGS  =3D -arch x86_64 -g

&= nbsp; NOOPT_XCODE5_X64_ASM_FLAGS  =3D -arch x86_64 -g

RELEASE_XCODE5_X64_ASM_FLAGS  =3D -arch x86_64

-      *_XCODE5_X64_NASM_F= LAGS =3D -f macho64

+     =  *_XCODE5_X64_NASM_FLAGS =3D -f macho64 -DRODATA_SECTION_NAME=3D.rodat= a

*_XCODE5_*_PP_FLAGS     =     =3D -E -x assembler-with-cpp -include AutoGen.h

*_XCODE5_*_VFRPP_FLAGS     &n= bsp;=3D -x c -E -P -DVFRCOMPILE -include $(MODULE_NAME)StrDefs.h



-- 
2.31.1














--Apple-Mail=_35E7B06B-247A-4C4F-B5BA-8D3C5E101C5B--