From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from rn-mailsvcp-ppex-lapp14.apple.com (rn-mailsvcp-ppex-lapp14.apple.com [17.179.253.33]) by mx.groups.io with SMTP id smtpd.web09.1552.1628632737393769516 for ; Tue, 10 Aug 2021 14:58:57 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@apple.com header.s=20180706 header.b=K65zcjee; spf=pass (domain: apple.com, ip: 17.179.253.33, mailfrom: afish@apple.com) Received: from pps.filterd (rn-mailsvcp-ppex-lapp14.rno.apple.com [127.0.0.1]) by rn-mailsvcp-ppex-lapp14.rno.apple.com (8.16.1.2/8.16.1.2) with SMTP id 17ALwQZ5007347; Tue, 10 Aug 2021 14:58:42 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apple.com; h=content-type : mime-version : subject : from : in-reply-to : date : cc : content-transfer-encoding : message-id : references : to; s=20180706; bh=YVVJHa+1Eg/z+VKdULxhzI64uP6r2qxSGzhlTOtud/0=; b=K65zcjeejrTDHBg+sTpAxTtTwtRYHbnjTx5F2IMjCEOwoTXbt9MmEUdCDavYUfvt6ccn A94BVvb9yNBsod0Na5fjobF2rlG1jvEf95uptCgjDwRBgtRNLUVHrUHrggEDFgY/Izcl usSwENphbJFmhWMBlC8eUsyhlJXer7fNAVHHKj8e6d1V73zc33iKrxTb77go6qRgKe4J jgR7JvOLhMLIbKDLADRwi1o4H7DFFfMqpF1VSOZ7oxqHZDFZ7ERgY8V2oGFVAxootDI3 xXxBwp83ZPAVhzcipA/zYb20eOn5vi25fN0mqvkDMttbC17xVw/o5gg/Tl7NAPV9LGeF EA== Received: from rn-mailsvcp-mta-lapp02.rno.apple.com (rn-mailsvcp-mta-lapp02.rno.apple.com [10.225.203.150]) by rn-mailsvcp-ppex-lapp14.rno.apple.com with ESMTP id 3a9q2a16yy-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Tue, 10 Aug 2021 14:58:42 -0700 Received: from rn-mailsvcp-mmp-lapp03.rno.apple.com (rn-mailsvcp-mmp-lapp03.rno.apple.com [17.179.253.16]) 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 <0QXN00OLM91R7H60@rn-mailsvcp-mta-lapp02.rno.apple.com>; Tue, 10 Aug 2021 14:58:39 -0700 (PDT) Received: from process_milters-daemon.rn-mailsvcp-mmp-lapp03.rno.apple.com by rn-mailsvcp-mmp-lapp03.rno.apple.com (Oracle Communications Messaging Server 8.1.0.9.20210415 64bit (built Apr 15 2021)) id <0QXN00P008UBG900@rn-mailsvcp-mmp-lapp03.rno.apple.com>; Tue, 10 Aug 2021 14:58:39 -0700 (PDT) X-Va-A: X-Va-T-CD: cc354bcf01ea39de908abab4e73c9ec0 X-Va-E-CD: f4d0bb655782ab825c7a9328fb164ddf X-Va-R-CD: c72241e6c7ad74ea4fd9f173994aebfa X-Va-CD: 0 X-Va-ID: 2fcf0db4-fd00-4b11-8819-b9610bfe3f78 X-V-A: X-V-T-CD: cc354bcf01ea39de908abab4e73c9ec0 X-V-E-CD: f4d0bb655782ab825c7a9328fb164ddf X-V-R-CD: c72241e6c7ad74ea4fd9f173994aebfa X-V-CD: 0 X-V-ID: 0e59e07f-a8a0-47f3-bdca-e8183dc866d1 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.391,18.0.790 definitions=2021-08-10_08:2021-08-10,2021-08-10 signatures=0 Received: from [17.235.63.152] (unknown [17.235.63.152]) by rn-mailsvcp-mmp-lapp03.rno.apple.com (Oracle Communications Messaging Server 8.1.0.9.20210415 64bit (built Apr 15 2021)) with ESMTPSA id <0QXN00FCU91M2X00@rn-mailsvcp-mmp-lapp03.rno.apple.com>; Tue, 10 Aug 2021 14:58:38 -0700 (PDT) MIME-version: 1.0 (Mac OS X Mail 14.0 \(3654.20.0.2.1\)) Subject: Re: [edk2-devel] [PATCH v2 1/2] BaseTools: Define the read-only data section name per toolchain From: "Andrew Fish" In-reply-to: <215befc7-a214-7c1d-4bba-94442d3f56aa@posteo.de> Date: Tue, 10 Aug 2021 14:58:33 -0700 Cc: Bob Feng , Liming Gao , Yuwei Chen , Vitaly Cheptsov Message-id: <347E6A0A-EFD9-4CA4-BBD3-67F4714747F6@apple.com> 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> To: devel@edk2.groups.io, mhaeuser@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-10_08:2021-08-10,2021-08-10 signatures=0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: quoted-printable > On Aug 10, 2021, at 2:30 PM, Marvin H=C3=A4user wrot= e: >=20 > On 10/08/2021 21:35, Andrew Fish via groups.io wrote: >>=20 >>=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 wrote= : >>>>=20 >>>>=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 permissions >>>>> 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 appropriate >>>>> 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/tools= _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 /Z= d >>>>>=20 >>>>> NOOPT_VS2008_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Z= d /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_SECTI= ON_NAME=3D.rdata >>>>>=20 >>>>> +RELEASE_VS2008_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECTION_= NAME=3D.rdata >>>>>=20 >>>>> +NOOPT_VS2008_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_SECTI= ON_NAME=3D.rdata >>>>>=20 >>>>>=20 >>>>>=20 >>>>> DEBUG_VS2008_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_VS2008_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 >>>>> @@ -495,9 +495,9 @@ NOOPT_VS2008_X64_CC_FLAGS =3D /nologo /c /W= X /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_SECTION= _NAME=3D.rdata >>>>>=20 >>>>> +RELEASE_VS2008_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTION_NA= ME=3D.rdata >>>>>=20 >>>>> +NOOPT_VS2008_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SECTION= _NAME=3D.rdata >>>>>=20 >>>>>=20 >>>>>=20 >>>>> DEBUG_VS2008_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:400= 1 /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 /DEBUG >>>>>=20 >>>>> RELEASE_VS2008_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:400= 1 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SEC= TION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTE= M:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.data >>>>>=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_SECT= ION_NAME=3D.rdata >>>>>=20 >>>>> +RELEASE_VS2008x86_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECTION= _NAME=3D.rdata >>>>>=20 >>>>> +NOOPT_VS2008x86_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_SECT= ION_NAME=3D.rdata >>>>>=20 >>>>>=20 >>>>>=20 >>>>> DEBUG_VS2008x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:= 4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdat= a,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT= _SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>=20 >>>>> RELEASE_VS2008x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /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) /SUBSY= STEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.d= ata >>>>>=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_SECT= ION_NAME=3D.rdata >>>>>=20 >>>>> +RELEASE_VS2008x86_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTION= _NAME=3D.rdata >>>>>=20 >>>>> +NOOPT_VS2008x86_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SECT= ION_NAME=3D.rdata >>>>>=20 >>>>>=20 >>>>>=20 >>>>> DEBUG_VS2008x86_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 >>>>>=20 >>>>> RELEASE_VS2008x86_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) /SUBSY= STEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.d= ata >>>>>=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 /Z= d >>>>>=20 >>>>> NOOPT_VS2010_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Z= d /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_SECTI= ON_NAME=3D.rdata >>>>>=20 >>>>> +RELEASE_VS2010_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECTION_= NAME=3D.rdata >>>>>=20 >>>>> +NOOPT_VS2010_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_SECTI= ON_NAME=3D.rdata >>>>>=20 >>>>>=20 >>>>>=20 >>>>> DEBUG_VS2010_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_VS2010_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 >>>>> @@ -720,9 +720,9 @@ NOOPT_VS2010_X64_CC_FLAGS =3D /nologo /c /W= X /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_SECTION= _NAME=3D.rdata >>>>>=20 >>>>> +RELEASE_VS2010_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTION_NA= ME=3D.rdata >>>>>=20 >>>>> +NOOPT_VS2010_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SECTION= _NAME=3D.rdata >>>>>=20 >>>>>=20 >>>>>=20 >>>>> DEBUG_VS2010_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:400= 1 /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 /DEBUG >>>>>=20 >>>>> RELEASE_VS2010_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:400= 1 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SEC= TION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTE= M:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.data >>>>>=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_SECT= ION_NAME=3D.rdata >>>>>=20 >>>>> +RELEASE_VS2010x86_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECTION= _NAME=3D.rdata >>>>>=20 >>>>> +NOOPT_VS2010x86_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_SECT= ION_NAME=3D.rdata >>>>>=20 >>>>>=20 >>>>>=20 >>>>> DEBUG_VS2010x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:= 4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdat= a,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT= _SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>=20 >>>>> RELEASE_VS2010x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /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) /SUBSY= STEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.d= ata >>>>>=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_SECT= ION_NAME=3D.rdata >>>>>=20 >>>>> +RELEASE_VS2010x86_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTION= _NAME=3D.rdata >>>>>=20 >>>>> +NOOPT_VS2010x86_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SECT= ION_NAME=3D.rdata >>>>>=20 >>>>>=20 >>>>>=20 >>>>> DEBUG_VS2010x86_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 >>>>>=20 >>>>> RELEASE_VS2010x86_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) /SUBSY= STEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.d= ata >>>>>=20 >>>>> @@ -913,9 +913,9 @@ NOOPT_VS2012_IA32_CC_FLAGS =3D /nologo /ar= ch:IA32 /c /WX /GS- /W4 /Gs32768 >>>>> RELEASE_VS2012_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Z= d >>>>>=20 >>>>> NOOPT_VS2012_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Z= d /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_SECTI= ON_NAME=3D.rdata >>>>>=20 >>>>> +RELEASE_VS2012_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECTION_= NAME=3D.rdata >>>>>=20 >>>>> +NOOPT_VS2012_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_SECTI= ON_NAME=3D.rdata >>>>>=20 >>>>>=20 >>>>>=20 >>>>> DEBUG_VS2012_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_VS2012_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 >>>>> @@ -945,9 +945,9 @@ NOOPT_VS2012_X64_CC_FLAGS =3D /nologo /c /W= X /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_SECTION= _NAME=3D.rdata >>>>>=20 >>>>> +RELEASE_VS2012_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTION_NA= ME=3D.rdata >>>>>=20 >>>>> +NOOPT_VS2012_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SECTION= _NAME=3D.rdata >>>>>=20 >>>>>=20 >>>>>=20 >>>>> DEBUG_VS2012_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:400= 1 /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 /DEBUG >>>>>=20 >>>>> RELEASE_VS2012_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:400= 1 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SEC= TION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTE= M:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.data >>>>>=20 >>>>> @@ -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 >>>>>=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_SECT= ION_NAME=3D.rdata >>>>>=20 >>>>> +RELEASE_VS2012x86_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECTION= _NAME=3D.rdata >>>>>=20 >>>>> +NOOPT_VS2012x86_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_SECT= ION_NAME=3D.rdata >>>>>=20 >>>>>=20 >>>>>=20 >>>>> DEBUG_VS2012x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:= 4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdat= a,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT= _SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>=20 >>>>> RELEASE_VS2012x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /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) /SUBSY= STEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.d= ata >>>>>=20 >>>>> @@ -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 >>>>>=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_SECT= ION_NAME=3D.rdata >>>>>=20 >>>>> +RELEASE_VS2012x86_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTION= _NAME=3D.rdata >>>>>=20 >>>>> +NOOPT_VS2012x86_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SECT= ION_NAME=3D.rdata >>>>>=20 >>>>>=20 >>>>>=20 >>>>> DEBUG_VS2012x86_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 >>>>>=20 >>>>> RELEASE_VS2012x86_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) /SUBSY= STEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.d= ata >>>>>=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 /Z= d >>>>>=20 >>>>> NOOPT_VS2013_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Z= d /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_SECTI= ON_NAME=3D.rdata >>>>>=20 >>>>> +RELEASE_VS2013_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECTION_= NAME=3D.rdata >>>>>=20 >>>>> +NOOPT_VS2013_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_SECTI= ON_NAME=3D.rdata >>>>>=20 >>>>>=20 >>>>>=20 >>>>> DEBUG_VS2013_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_VS2013_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 >>>>> @@ -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_SECTION= _NAME=3D.rdata >>>>>=20 >>>>> +RELEASE_VS2013_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTION_NA= ME=3D.rdata >>>>>=20 >>>>> +NOOPT_VS2013_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SECTION= _NAME=3D.rdata >>>>>=20 >>>>>=20 >>>>>=20 >>>>> DEBUG_VS2013_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:400= 1 /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 /DEBUG >>>>>=20 >>>>> RELEASE_VS2013_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:400= 1 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SEC= TION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTE= M:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.data >>>>>=20 >>>>> @@ -1249,9 +1249,9 @@ NOOPT_VS2013x86_IA32_CC_FLAGS =3D /nologo = /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_SECT= ION_NAME=3D.rdata >>>>>=20 >>>>> +RELEASE_VS2013x86_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECTION= _NAME=3D.rdata >>>>>=20 >>>>> +NOOPT_VS2013x86_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_SECT= ION_NAME=3D.rdata >>>>>=20 >>>>>=20 >>>>>=20 >>>>> DEBUG_VS2013x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:= 4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdat= a,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT= _SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>=20 >>>>> RELEASE_VS2013x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /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) /SUBSY= STEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.d= ata >>>>>=20 >>>>> @@ -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 >>>>>=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_SECT= ION_NAME=3D.rdata >>>>>=20 >>>>> +RELEASE_VS2013x86_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTION= _NAME=3D.rdata >>>>>=20 >>>>> +NOOPT_VS2013x86_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SECT= ION_NAME=3D.rdata >>>>>=20 >>>>>=20 >>>>>=20 >>>>> 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 >>>>>=20 >>>>> RELEASE_VS2013x86_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) /SUBSY= STEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.d= ata >>>>>=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 /Z= d >>>>>=20 >>>>> NOOPT_VS2015_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Z= d /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_SECTI= ON_NAME=3D.rdata >>>>>=20 >>>>> +RELEASE_VS2015_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECTION_= NAME=3D.rdata >>>>>=20 >>>>> +NOOPT_VS2015_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_SECTI= ON_NAME=3D.rdata >>>>>=20 >>>>>=20 >>>>>=20 >>>>> DEBUG_VS2015_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_VS2015_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 >>>>> @@ -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_SECTION= _NAME=3D.rdata >>>>>=20 >>>>> +RELEASE_VS2015_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTION_NA= ME=3D.rdata >>>>>=20 >>>>> +NOOPT_VS2015_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SECTION= _NAME=3D.rdata >>>>>=20 >>>>>=20 >>>>>=20 >>>>> DEBUG_VS2015_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:400= 1 /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 /DEBUG >>>>>=20 >>>>> RELEASE_VS2015_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:400= 1 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SEC= TION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTE= M:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.data >>>>>=20 >>>>> @@ -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 >>>>>=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_SECT= ION_NAME=3D.rdata >>>>>=20 >>>>> +RELEASE_VS2015x86_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECTION= _NAME=3D.rdata >>>>>=20 >>>>> +NOOPT_VS2015x86_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_SECT= ION_NAME=3D.rdata >>>>>=20 >>>>>=20 >>>>>=20 >>>>> DEBUG_VS2015x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:= 4001 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdat= a,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT= _SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>=20 >>>>> RELEASE_VS2015x86_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /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) /SUBSY= STEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.d= ata >>>>>=20 >>>>> @@ -1508,9 +1508,9 @@ NOOPT_VS2015x86_X64_CC_FLAGS =3D /nologo = /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_SECT= ION_NAME=3D.rdata >>>>>=20 >>>>> +RELEASE_VS2015x86_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTION= _NAME=3D.rdata >>>>>=20 >>>>> +NOOPT_VS2015x86_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SECT= ION_NAME=3D.rdata >>>>>=20 >>>>>=20 >>>>>=20 >>>>> DEBUG_VS2015x86_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 >>>>>=20 >>>>> RELEASE_VS2015x86_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) /SUBSY= STEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.d= ata >>>>>=20 >>>>> @@ -1586,9 +1586,9 @@ NOOPT_VS2017_IA32_CC_FLAGS =3D /nologo /ar= ch:IA32 /c /WX /GS- /W4 /Gs32768 /D >>>>> RELEASE_VS2017_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Zd >>>>>=20 >>>>> NOOPT_VS2017_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Zd = /Zi >>>>>=20 >>>>>=20 >>>>>=20 >>>>> - DEBUG_VS2017_IA32_NASM_FLAGS =3D -Ox -f win32 -g >>>>>=20 >>>>> -RELEASE_VS2017_IA32_NASM_FLAGS =3D -Ox -f win32 >>>>>=20 >>>>> -NOOPT_VS2017_IA32_NASM_FLAGS =3D -O0 -f win32 -g >>>>>=20 >>>>> + DEBUG_VS2017_IA32_NASM_FLAGS =3D -Ox -f win32 -g -DRODATA_SECTION= _NAME=3D.rdata >>>>>=20 >>>>> +RELEASE_VS2017_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECTION_NA= ME=3D.rdata >>>>>=20 >>>>> +NOOPT_VS2017_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_SECTION= _NAME=3D.rdata >>>>>=20 >>>>>=20 >>>>>=20 >>>>> DEBUG_VS2017_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 >>>>>=20 >>>>> RELEASE_VS2017_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:400= 1 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SEC= TION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTE= M:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.data >>>>>=20 >>>>> @@ -1616,9 +1616,9 @@ NOOPT_VS2017_X64_CC_FLAGS =3D /nologo /c = /WX /GS- /W4 /Gs32768 /D UNICODE /G >>>>> RELEASE_VS2017_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd >>>>>=20 >>>>> NOOPT_VS2017_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd /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_SECTION= _NAME=3D.rdata >>>>>=20 >>>>> +RELEASE_VS2017_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTION_NA= ME=3D.rdata >>>>>=20 >>>>> +NOOPT_VS2017_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SECTION= _NAME=3D.rdata >>>>>=20 >>>>>=20 >>>>>=20 >>>>> DEBUG_VS2017_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:400= 1 /IGNORE:4281 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SEC= TION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTE= M:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>=20 >>>>> RELEASE_VS2017_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:400= 1 /IGNORE:4281 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:= .xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POI= NT) /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 /ar= ch:IA32 /c /WX /GS- /W4 /Gs32768 /D >>>>> RELEASE_VS2019_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Zd >>>>>=20 >>>>> NOOPT_VS2019_IA32_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /coff /Zd = /Zi >>>>>=20 >>>>>=20 >>>>>=20 >>>>> - DEBUG_VS2019_IA32_NASM_FLAGS =3D -Ox -f win32 -g >>>>>=20 >>>>> -RELEASE_VS2019_IA32_NASM_FLAGS =3D -Ox -f win32 >>>>>=20 >>>>> -NOOPT_VS2019_IA32_NASM_FLAGS =3D -O0 -f win32 -g >>>>>=20 >>>>> + DEBUG_VS2019_IA32_NASM_FLAGS =3D -Ox -f win32 -g -DRODATA_SECTION= _NAME=3D.rdata >>>>>=20 >>>>> +RELEASE_VS2019_IA32_NASM_FLAGS =3D -Ox -f win32 -DRODATA_SECTION_NA= ME=3D.rdata >>>>>=20 >>>>> +NOOPT_VS2019_IA32_NASM_FLAGS =3D -O0 -f win32 -g -DRODATA_SECTION= _NAME=3D.rdata >>>>>=20 >>>>>=20 >>>>>=20 >>>>> DEBUG_VS2019_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 >>>>>=20 >>>>> RELEASE_VS2019_IA32_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:400= 1 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SEC= TION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTE= M:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=3D.data >>>>>=20 >>>>> @@ -1774,9 +1774,9 @@ NOOPT_VS2019_X64_CC_FLAGS =3D /nologo /c = /WX /GS- /W4 /Gs32768 /D UNICODE /G >>>>> RELEASE_VS2019_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd >>>>>=20 >>>>> NOOPT_VS2019_X64_ASM_FLAGS =3D /nologo /c /WX /W3 /Cx /Zd /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_SECTION= _NAME=3D.rdata >>>>>=20 >>>>> +RELEASE_VS2019_X64_NASM_FLAGS =3D -Ox -f win64 -DRODATA_SECTION_NA= ME=3D.rdata >>>>>=20 >>>>> +NOOPT_VS2019_X64_NASM_FLAGS =3D -O0 -f win64 -g -DRODATA_SECTION= _NAME=3D.rdata >>>>>=20 >>>>>=20 >>>>>=20 >>>>> DEBUG_VS2019_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:400= 1 /IGNORE:4281 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:.xdata,D /SEC= TION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTE= M:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG >>>>>=20 >>>>> RELEASE_VS2019_X64_DLINK_FLAGS =3D /NOLOGO /NODEFAULTLIB /IGNORE:400= 1 /IGNORE:4281 /IGNORE:4254 /OPT:REF /OPT:ICF=3D10 /MAP /ALIGN:32 /SECTION:= .xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POI= NT) /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_NAME= =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 -W= no-unused-but-set-variable >>>>>=20 >>>>> @@ -2058,7 +2058,7 @@ RELEASE_GCC48_IA32_CC_FLAGS =3D DEF(GCC48= _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_NAME= =3D.rodata >>>>>=20 >>>>>=20 >>>>>=20 >>>>> DEBUG_GCC48_X64_CC_FLAGS =3D DEF(GCC48_X64_CC_FLAGS) -Os >>>>>=20 >>>>> RELEASE_GCC48_X64_CC_FLAGS =3D DEF(GCC48_X64_CC_FLAGS) -Os -Wno= -unused-but-set-variable >>>>>=20 >>>>> @@ -2170,7 +2170,7 @@ RELEASE_GCC48_AARCH64_CC_FLAGS =3D DEF(GCC48_= AARCH64_CC_FLAGS) -Wno-unused-but-s >>>>> *_GCC49_IA32_DLINK2_FLAGS =3D DEF(GCC49_IA32_DLINK2_FLAGS) >>>>>=20 >>>>> *_GCC49_IA32_RC_FLAGS =3D DEF(GCC_IA32_RC_FLAGS) >>>>>=20 >>>>> *_GCC49_IA32_OBJCOPY_FLAGS =3D >>>>>=20 >>>>> -*_GCC49_IA32_NASM_FLAGS =3D -f elf32 >>>>>=20 >>>>> +*_GCC49_IA32_NASM_FLAGS =3D -f elf32 -DRODATA_SECTION_NAME= =3D.rodata >>>>>=20 >>>>>=20 >>>>>=20 >>>>> DEBUG_GCC49_IA32_CC_FLAGS =3D DEF(GCC49_IA32_CC_FLAGS) -Os >>>>>=20 >>>>> RELEASE_GCC49_IA32_CC_FLAGS =3D DEF(GCC49_IA32_CC_FLAGS) -Os -W= no-unused-but-set-variable -Wno-unused-const-variable >>>>>=20 >>>>> @@ -2198,7 +2198,7 @@ RELEASE_GCC49_IA32_CC_FLAGS =3D DEF(GCC49= _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_NAME= =3D.rodata >>>>>=20 >>>>>=20 >>>>>=20 >>>>> DEBUG_GCC49_X64_CC_FLAGS =3D DEF(GCC49_X64_CC_FLAGS) -Os >>>>>=20 >>>>> RELEASE_GCC49_X64_CC_FLAGS =3D DEF(GCC49_X64_CC_FLAGS) -Os -Wno= -unused-but-set-variable -Wno-unused-const-variable >>>>>=20 >>>>> @@ -2316,7 +2316,7 @@ RELEASE_GCC49_AARCH64_DLINK_XIPFLAGS =3D -z com= mon-page-size=3D0x20 >>>>> *_GCC5_IA32_DLINK2_FLAGS =3D DEF(GCC5_IA32_DLINK2_FLAGS) -no-= pie >>>>>=20 >>>>> *_GCC5_IA32_RC_FLAGS =3D DEF(GCC_IA32_RC_FLAGS) >>>>>=20 >>>>> *_GCC5_IA32_OBJCOPY_FLAGS =3D >>>>>=20 >>>>> -*_GCC5_IA32_NASM_FLAGS =3D -f elf32 >>>>>=20 >>>>> +*_GCC5_IA32_NASM_FLAGS =3D -f elf32 -DRODATA_SECTION_NAME= =3D.rodata >>>>>=20 >>>>>=20 >>>>>=20 >>>>> DEBUG_GCC5_IA32_CC_FLAGS =3D DEF(GCC5_IA32_CC_FLAGS) -flto -O= s >>>>>=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_I= A32_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_NAME= =3D.rodata >>>>>=20 >>>>>=20 >>>>>=20 >>>>> DEBUG_GCC5_X64_CC_FLAGS =3D DEF(GCC5_X64_CC_FLAGS) -flto -DU= SING_LTO -Os >>>>>=20 >>>>> DEBUG_GCC5_X64_DLINK_FLAGS =3D DEF(GCC5_X64_DLINK_FLAGS) -flto = -Os >>>>>=20 >>>>> @@ -2589,7 +2589,7 @@ DEFINE CLANG38_ALL_CC_FLAGS =3D DEF(GCC= 48_ALL_CC_FLAGS) DEF(CLANG38_WARNIN >>>>> *_CLANG38_IA32_ASM_FLAGS =3D DEF(GCC5_ASM_FLAGS) -m32 -mar= ch=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_NA= ME=3D.rodata >>>>>=20 >>>>> *_CLANG38_IA32_PP_FLAGS =3D DEF(GCC_PP_FLAGS) DEF(CLANG38= _IA32_TARGET) >>>>>=20 >>>>> *_CLANG38_IA32_ASLPP_FLAGS =3D DEF(GCC_ASLPP_FLAGS) DEF(CLAN= G38_IA32_TARGET) >>>>>=20 >>>>> *_CLANG38_IA32_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) DEF(CLAN= G38_IA32_TARGET) >>>>>=20 >>>>> @@ -2626,7 +2626,7 @@ NOOPT_CLANG38_IA32_DLINK2_FLAGS =3D DEF(GCC= 5_IA32_DLINK2_FLAGS) -O0 >>>>> *_CLANG38_X64_ASM_FLAGS =3D DEF(GCC5_ASM_FLAGS) -m64 DEF(C= LANG38_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_NAM= E=3D.rodata >>>>>=20 >>>>> *_CLANG38_X64_PP_FLAGS =3D DEF(GCC_PP_FLAGS) DEF(CLANG38_= X64_TARGET) >>>>>=20 >>>>> *_CLANG38_X64_ASLPP_FLAGS =3D DEF(GCC_ASLPP_FLAGS) DEF(CLANG= 38_X64_TARGET) >>>>>=20 >>>>> *_CLANG38_X64_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) DEF(CLANG= 38_X64_TARGET) >>>>>=20 >>>>> @@ -2777,7 +2777,7 @@ DEFINE CLANGPDB_ALL_CC_FLAGS =3D DEF(GC= C48_ALL_CC_FLAGS) DEF(CLANGPDB_WARN >>>>> *_CLANGPDB_IA32_ASLCC_FLAGS =3D DEF(GCC_ASLCC_FLAGS) -m32 -f= no-lto DEF(CLANGPDB_IA32_TARGET) >>>>>=20 >>>>> *_CLANGPDB_IA32_ASM_FLAGS =3D DEF(GCC_ASM_FLAGS) -m32 -mar= ch=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_N= AME=3D.rdata >>>>>=20 >>>>> *_CLANGPDB_IA32_PP_FLAGS =3D DEF(GCC_PP_FLAGS) DEF(CLANGP= DB_IA32_TARGET) >>>>>=20 >>>>> *_CLANGPDB_IA32_ASLPP_FLAGS =3D DEF(GCC_ASLPP_FLAGS) DEF(CLA= NGPDB_IA32_TARGET) >>>>>=20 >>>>> *_CLANGPDB_IA32_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) DEF(CLA= NGPDB_IA32_TARGET) >>>>>=20 >>>>> @@ -2811,7 +2811,7 @@ NOOPT_CLANGPDB_IA32_DLINK2_FLAGS =3D >>>>> *_CLANGPDB_X64_ASLCC_FLAGS =3D DEF(GCC_ASLCC_FLAGS) -m64 -fn= o-lto DEF(CLANGPDB_X64_TARGET) >>>>>=20 >>>>> *_CLANGPDB_X64_ASM_FLAGS =3D DEF(GCC_ASM_FLAGS) -m64 DEF(C= LANGPDB_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_NA= ME=3D.rdata >>>>>=20 >>>>> *_CLANGPDB_X64_PP_FLAGS =3D DEF(GCC_PP_FLAGS) DEF(CLANGPD= B_X64_TARGET) >>>>>=20 >>>>> *_CLANGPDB_X64_ASLPP_FLAGS =3D DEF(GCC_ASLPP_FLAGS) DEF(CLAN= GPDB_X64_TARGET) >>>>>=20 >>>>> *_CLANGPDB_X64_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) DEF(CLAN= GPDB_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_SECTION= _NAME=3D.rodata >>>>>=20 >>>>> *_CLANGDWARF_IA32_PP_FLAGS =3D DEF(GCC_PP_FLAGS) DEF(CLAN= G38_IA32_TARGET) >>>>>=20 >>>>> *_CLANGDWARF_IA32_ASLPP_FLAGS =3D DEF(GCC_ASLPP_FLAGS) DEF(C= LANG38_IA32_TARGET) >>>>>=20 >>>>> *_CLANGDWARF_IA32_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) DEF(C= LANG38_IA32_TARGET) >>>>>=20 >>>>> @@ -2914,7 +2914,7 @@ NOOPT_CLANGDWARF_IA32_DLINK2_FLAGS =3D DEF(= CLANGDWARF_IA32_DLINK2_FLAGS) -O0 - >>>>> *_CLANGDWARF_X64_ASM_FLAGS =3D DEF(GCC5_ASM_FLAGS) -m64 DE= F(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_SECTION_= NAME=3D.rodata >>>>>=20 >>>>> *_CLANGDWARF_X64_PP_FLAGS =3D DEF(GCC_PP_FLAGS) DEF(CLANG= 38_X64_TARGET) >>>>>=20 >>>>> *_CLANGDWARF_X64_ASLPP_FLAGS =3D DEF(GCC_ASLPP_FLAGS) DEF(CL= ANG38_X64_TARGET) >>>>>=20 >>>>> *_CLANGDWARF_X64_VFRPP_FLAGS =3D DEF(GCC_VFRPP_FLAGS) DEF(CL= ANG38_X64_TARGET) >>>>>=20 >>>>> @@ -2985,7 +2985,7 @@ RELEASE_XCODE5_IA32_DLINK_FLAGS =3D -arch = 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_NAME= =3D.rodata >>>>>=20 >>>>>=20 >>>>>=20 >>>>=20 >>>> An EFI Mach-O file does not contain a .rodata section. A Mach-O contai= ns a __DATA segment that is broken up into sections. For a typical EFI imag= e there are __const, __data, __bss sections in the __DATA segment [1]. >>>=20 >>> Yes, and ".rodata" is almost a synonym for "__DATA,__const", with a sma= ll exception [1]. Maybe it'd be clearer if the macro was renamed to "NASM_R= ODATA_SECTION_NAME", to indicate this is not just a "raw" name, but NASM gi= ves it a semantic meaning? >>>=20 >>>>=20 >>>> The mtoc [2] tool used to convert mach-O to PE/COFF converts the entir= e __DATA segment (__const, __data, and __bss) into the .data section. Thus = adding any kind of new data section is a no-op at best. >>>=20 >>> This is a part I missed, because I do not have an Xcode toolchain at ha= nd, so thanks for investigating. However this, in my opinion, is a flaw wit= h Mach-O/mtoc and not with my patch. It seems like the only difference betw= een __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 n= ot even for ELF, but I'm not too familiar with it), thus the logical PE/COF= F 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, bu= t that would still put the compiler-emitted data in the wrong section. Does= Xcode provide anything remotely similar to GNU linker scripts which we can= use to move the section? >>>=20 >>> Please also note that .rodata is used for Xcode-based toolchains alread= y (in fact, all toolchains, and this is the issue), I'm not regressing anyt= hing. I just expected it to work fine as-is. This patch mainly fixed PE/COF= F-based toolchains, which get both .rdata from the compiler and .rodata wit= h RX permissions from NASM, because ".rodata" only has a semantic meaning f= or ELF and Mach-O outputs, but not for PE/COFF. >>>=20 >>>>=20 >>>> If you want something to be read only for Xcode/clang you are better o= ff putting it in the __TEXT section [3]. The __TEXT section is read only an= d for X64 can not even contain relocations. >>>=20 >>> Well, this kind of is an issue. We would need to introduce an arbitrary= constraint on the relocation part that holds only for Xcode-based toolchai= ns. Does the compiler emit an error when data in __TEXT,__const is targeted= by a relocation? >>=20 >> The Xcode linker emits a fatal error on X64 for a relocation in the __TE= XT 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. >=20 > Good, thanks for confirming! Still, this would be a bit of an awkward con= straints for Xcode only. >=20 It is a physics problem we can=E2=80=99t fix, so I end up writing some patc= hes to fix other peoples assembler from time to time. The CI building with = Xcode helps with this a lot. >>=20 >>> Also see above regarding compiler-emitted __DATA,__const. >>>=20 >>=20 >> OK so the current nasm `SECTION .rodata`[1] gets mapped to __TEXT,__con= st[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 conservative = as they need to keep the layout the same and the relative layout between se= ctions the same, but in this case it is nasm placing the data in the text s= ection. >>=20 >> 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 `__TE= XT,__const` not `.rodata`. >=20 > 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 th= e compiler? I thought it was for nasm? >=20 >> We should double check what is happening for ELF on x86, ARM, RiskV, etc= . and do the same thing. I assume all the tools that generate PE/COFF direc= tly are good with .rodata? >=20 > 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 objdump= or gdb for the given toolchain (like my Xcode example). >>=20 >> TL;DR It looks to me like nasm does some SECTION translations under the = hood to make code portable, and I=E2=80=99d like to make sure we capture th= ose in the new NASM_RODATA_SECTION_NAME. If some one is doing a security re= view having NASM_RODATA_SECTION_NAME is going to imply that a .rodata secti= on 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 bet= ter off explaining what is really happening, since it is not very obvious. >=20 > I feel like I'm too tired to get the point. Do you mean you want comments= 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 bette= r defines what the define means like I mentioned in the other mail.=20 Thanks, Andrew Fish > Best regards, > Marvin >=20 >>=20 >> [1] https://github.com/tianocore/edk2/blob/master/UefiCpuPkg/Library/Bas= eUefiCpuLib/X64/InitializeFpu.nasm#L14 >>=20 >> [2] $otool -V -s __TEXT __constBuild/OvmfX64/DEBUG_XCODE5/X64/UefiCpuPkg= /Library/BaseUefiCpuLib/BaseUefiCpuLib/OUTPUT/X64/InitializeFpu.obj >> Build//OvmfX64/DEBUG_XCODE5/X64/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUe= fiCpuLib/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/BaseUefiCp= uLib/BaseUefiCpuLib/OUTPUT/X64/InitializeFpu.obj >> Build/OvmfX64/DEBUG_XCODE5/X64/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUef= iCpuLib/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 na= mes are also supported: >>> [...] >>> .rodata =3D __DATA,__const data >>> [...] >>> If the .rodata section contains no relocations, it is instead put into = the __TEXT,__const section unless this section has already been specified e= xplicitly." >>> https://www.nasm.us/xdoc/2.13.01/html/nasmdoc7.html >>>=20 >>>>=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/m= toc.c.auto.html =20 >>>>=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 >>>>>=20 >>>>> DEBUG_XCODE5_IA32_CC_FLAGS =3D -arch i386 -c -g -Os -Wall -= Werror -include AutoGen.h -funsigned-char -fno-stack-protector -fno-builtin= -fshort-wchar -fasm-blocks -mdynamic-no-pic -mno-implicit-float -mms-bitfi= elds -msoft-float -Wno-unused-parameter -Wno-missing-braces -Wno-missing-fi= eld-initializers -Wno-tautological-compare -Wno-sign-compare -Wno-varargs -= ftrap-function=3Dundefined_behavior_has_been_optimized_away_by_clang $(PLAT= FORM_FLAGS) >>>>>=20 >>>>> @@ -3003,7 +3003,7 @@ RELEASE_XCODE5_X64_DLINK_FLAGS =3D -arch x= 86_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 Aut= oGen.h >>>>>=20 >>>>> *_XCODE5_*_VFRPP_FLAGS =3D -x c -E -P -DVFRCOMPILE -include $(MO= DULE_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