> On Aug 10, 2021, at 2:24 PM, Marvin Häuser <mhaeu...@posteo.de> wrote:
>
> On 10/08/2021 21:49, Andrew Fish wrote:
>> I forgot I have an Ubuntu VM so we can take a look at an ELF to PE/COFF
>> toolchain example ….
>>
>> So it looks like nasm[1] “does the right thing”(tm) and places a .rodata
>> section in the object file….
>>
>> But it looks like GenFw[2] smashed the .rodata section into .data section
>> when it translated to PE/COFF. This was the issue I was worried about….
>>
>> Actually I should probably look at the ELF executable too[3]. Yikes no
>> .rodata in the ELF. So it looks likely that the linker scripts are smashing
>> .rodata into .data.
>
> They smash it into .text, as linked in the other mail [1].
Sorry I get way to much email…..
> This is fine honestly, just I want some toggle that decides consistently for
> all toolchains what to do (merge into .text or let it live as a separate
> section). But that'd be a task for another patch.
>
I’m still trying to wrap my head around the definition of the nasm
RODATA_SECTION_NAME. Do we want it to track what ends up in the object file,
the native executable, or the PE/COFF?
It seems like it is tracking the object file. If that is the case we can just
fix the XCODE changes to use `__TEXT,__const`and all the toolchains would be
consistent.
I’d like to see the commit message reworked to better define what is going on.
RODATA_SECTION_NAME tracks what end up object file, and PE/COFF results are
controlled by the linker script/GenFw or mtoc.
Thanks,
Andrew Fish
> Best regards,
> Marvin
>
>
> [1]
> https://github.com/tianocore/edk2/blob/d02dbb53cd78de799e6afaa237e98771fb5148db/BaseTools/Scripts/GccBase.lds#L25
>
>> So there may be multiple issues with ELF toolchains that need to change to
>> end up with a .rodata in the PE/COFF.
>>
>> [1]$ objdump -fh
>> Build/OvmfX64/DEBUG_GCC5/X64/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib/OUTPUT/X64/InitializeFpu.obj
>>
>> Build/OvmfX64/DEBUG_GCC5/X64/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib/OUTPUT/X64/InitializeFpu.obj:
>> file format elf64-x86-64
>> architecture: i386:x86-64, flags 0x00000011:
>> HAS_RELOC, HAS_SYMS
>> start address 0x0000000000000000
>>
>> Sections:
>> Idx Name Size VMA LMA File off Algn
>> 0 .rodata 00000006 0000000000000000 0000000000000000 00000200
>> 2**2
>> CONTENTS, ALLOC, LOAD, READONLY, DATA
>> 1 .text 0000001d 0000000000000000 0000000000000000 00000210
>> 2**4
>> CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
>>
>>
>>
>> [2]$ objdump -fh
>> Build/OvmfX64/DEBUG_GCC5/X64/UefiCpuPkg/CpuDxe/CpuDxe/DEBUG/CpuDxe.efi
>>
>> Build/OvmfX64/DEBUG_GCC5/X64/UefiCpuPkg/CpuDxe/CpuDxe/DEBUG/CpuDxe.efi:
>> file format pei-x86-64
>> architecture: i386:x86-64, flags 0x0000010b:
>> HAS_RELOC, EXEC_P, HAS_DEBUG, D_PAGED
>> start address 0x0000000000008eb1
>>
>> Sections:
>> Idx Name Size VMA LMA File off Algn
>> 0 .text 0000ff80 0000000000000240 0000000000000240 00000240
>> 2**4
>> CONTENTS, ALLOC, LOAD, READONLY, CODE
>> 1 .data 00000540 00000000000101c0 00000000000101c0 000101c0
>> 2**4
>> CONTENTS, ALLOC, LOAD, DATA
>> 2 .reloc 00000080 0000000000010700 0000000000010700 00010700
>> 2**2
>> CONTENTS, ALLOC, LOAD, READONLY, DATA
>>
>> [3] $ objdump -fh
>> Build/OvmfX64/DEBUG_GCC5/X64/UefiCpuPkg/CpuDxe/CpuDxe/DEBUG/CpuDxe.dll
>>
>> Build/OvmfX64/DEBUG_GCC5/X64/UefiCpuPkg/CpuDxe/CpuDxe/DEBUG/CpuDxe.dll:
>> file format elf64-x86-64
>> architecture: i386:x86-64, flags 0x00000013:
>> HAS_RELOC, EXEC_P, HAS_SYMS
>> start address 0x0000000000008eb1
>>
>> Sections:
>> Idx Name Size VMA LMA File off Algn
>> 0 .text 0000ff46 0000000000000240 0000000000000240 000000c0
>> 2**6
>> CONTENTS, ALLOC, LOAD, RELOC, READONLY, CODE
>> 1 .data 00000490 00000000000101c0 00000000000101c0 00010040
>> 2**6
>> CONTENTS, ALLOC, LOAD, RELOC, DATA
>> 2 .rela 000004f8 0000000000010680 0000000000010680 000104d0
>> 2**3
>> CONTENTS, READONLY
>> 3 .build-id 00000024 0000000000010b78 0000000000010b78 000109c8
>> 2**2
>> CONTENTS, READONLY
>> 4 .gnu_debuglink 00000014 0000000000000000 0000000000000000 000109ec
>> 2**2
>> CONTENTS, READONLY
>>
>>
>>
>> Thanks,
>>
>> Andrew Fish
>>
>>> On Aug 10, 2021, at 12:35 PM, Andrew Fish via groups.io <http://groups.io>
>>> <afish=apple....@groups.io <mailto:afish=apple....@groups.io>> wrote:
>>>
>>>
>>>
>>>> On Aug 10, 2021, at 1:27 AM, Marvin Häuser <mhaeu...@posteo.de
>>>> <mailto:mhaeu...@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äuser <mhaeu...@posteo.de
>>>>>> <mailto:mhaeu...@posteo.de> <mailto:mhaeu...@posteo.de
>>>>>> <mailto:mhaeu...@posteo.de>>> wrote:
>>>>>>
>>>>>> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=3318
>>>>>> <https://bugzilla.tianocore.org/show_bug.cgi?id=3318>
>>>>>> <https://bugzilla.tianocore.org/show_bug.cgi?id=3318
>>>>>> <https://bugzilla.tianocore.org/show_bug.cgi?id=3318>>
>>>>>>
>>>>>> 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.
>>>>>>
>>>>>> Cc: Bob Feng <bob.c.f...@intel.com <mailto:bob.c.f...@intel.com>
>>>>>> <mailto:bob.c.f...@intel.com <mailto:bob.c.f...@intel.com>>>
>>>>>> Cc: Liming Gao <gaolim...@byosoft.com.cn
>>>>>> <mailto:gaolim...@byosoft.com.cn> <mailto:gaolim...@byosoft.com.cn
>>>>>> <mailto:gaolim...@byosoft.com.cn>>>
>>>>>> Cc: Yuwei Chen <yuwei.c...@intel.com <mailto:yuwei.c...@intel.com>
>>>>>> <mailto:yuwei.c...@intel.com <mailto:yuwei.c...@intel.com>>>
>>>>>> Cc: Vitaly Cheptsov <vit9...@protonmail.com
>>>>>> <mailto:vit9...@protonmail.com> <mailto:vit9...@protonmail.com
>>>>>> <mailto:vit9...@protonmail.com>>>
>>>>>> Signed-off-by: Marvin Häuser <mhaeu...@posteo.de
>>>>>> <mailto:mhaeu...@posteo.de> <mailto:mhaeu...@posteo.de
>>>>>> <mailto:mhaeu...@posteo.de>>>
>>>>>> ---
>>>>>> BaseTools/Conf/tools_def.template | 172 ++++++++++----------
>>>>>> 1 file changed, 86 insertions(+), 86 deletions(-)
>>>>>>
>>>>>> 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 = /nologo /c /WX
>>>>>> /GS- /W4 /Gs32768 /D UNICODE
>>>>>> RELEASE_VS2008_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd
>>>>>>
>>>>>> NOOPT_VS2008_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
>>>>>>
>>>>>>
>>>>>>
>>>>>> - DEBUG_VS2008_IA32_NASM_FLAGS = -Ox -f win32 -g
>>>>>>
>>>>>> -RELEASE_VS2008_IA32_NASM_FLAGS = -Ox -f win32
>>>>>>
>>>>>> -NOOPT_VS2008_IA32_NASM_FLAGS = -O0 -f win32 -g
>>>>>>
>>>>>> + DEBUG_VS2008_IA32_NASM_FLAGS = -Ox -f win32 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +RELEASE_VS2008_IA32_NASM_FLAGS = -Ox -f win32
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +NOOPT_VS2008_IA32_NASM_FLAGS = -O0 -f win32 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_VS2008_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D
>>>>>> /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
>>>>>>
>>>>>> RELEASE_VS2008_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D
>>>>>> /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER
>>>>>> /MERGE:.rdata=.data
>>>>>>
>>>>>> @@ -495,9 +495,9 @@ NOOPT_VS2008_X64_CC_FLAGS = /nologo /c /WX
>>>>>> /GS- /W4 /Gs32768 /D UNICODE /G
>>>>>> RELEASE_VS2008_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
>>>>>>
>>>>>> NOOPT_VS2008_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
>>>>>>
>>>>>>
>>>>>>
>>>>>> - DEBUG_VS2008_X64_NASM_FLAGS = -Ox -f win64 -g
>>>>>>
>>>>>> -RELEASE_VS2008_X64_NASM_FLAGS = -Ox -f win64
>>>>>>
>>>>>> -NOOPT_VS2008_X64_NASM_FLAGS = -O0 -f win64 -g
>>>>>>
>>>>>> + DEBUG_VS2008_X64_NASM_FLAGS = -Ox -f win64 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +RELEASE_VS2008_X64_NASM_FLAGS = -Ox -f win64
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +NOOPT_VS2008_X64_NASM_FLAGS = -O0 -f win64 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_VS2008_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D
>>>>>> /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
>>>>>>
>>>>>> RELEASE_VS2008_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D
>>>>>> /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER
>>>>>> /MERGE:.rdata=.data
>>>>>>
>>>>>> @@ -574,9 +574,9 @@ NOOPT_VS2008x86_IA32_CC_FLAGS = /nologo /c /WX
>>>>>> /GS- /W4 /Gs32768 /D UNICODE
>>>>>> RELEASE_VS2008x86_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd
>>>>>>
>>>>>> NOOPT_VS2008x86_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
>>>>>>
>>>>>>
>>>>>>
>>>>>> - DEBUG_VS2008x86_IA32_NASM_FLAGS = -Ox -f win32 -g
>>>>>>
>>>>>> -RELEASE_VS2008x86_IA32_NASM_FLAGS = -Ox -f win32
>>>>>>
>>>>>> -NOOPT_VS2008x86_IA32_NASM_FLAGS = -O0 -f win32 -g
>>>>>>
>>>>>> + DEBUG_VS2008x86_IA32_NASM_FLAGS = -Ox -f win32 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +RELEASE_VS2008x86_IA32_NASM_FLAGS = -Ox -f win32
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +NOOPT_VS2008x86_IA32_NASM_FLAGS = -O0 -f win32 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_VS2008x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D
>>>>>> /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
>>>>>>
>>>>>> RELEASE_VS2008x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D
>>>>>> /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER
>>>>>> /MERGE:.rdata=.data
>>>>>>
>>>>>> @@ -605,9 +605,9 @@ NOOPT_VS2008x86_X64_CC_FLAGS = /nologo /c /WX
>>>>>> /GS- /W4 /Gs32768 /D UNICODE
>>>>>> RELEASE_VS2008x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
>>>>>>
>>>>>> NOOPT_VS2008x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
>>>>>>
>>>>>>
>>>>>>
>>>>>> - DEBUG_VS2008x86_X64_NASM_FLAGS = -Ox -f win64 -g
>>>>>>
>>>>>> -RELEASE_VS2008x86_X64_NASM_FLAGS = -Ox -f win64
>>>>>>
>>>>>> -NOOPT_VS2008x86_X64_NASM_FLAGS = -O0 -f win64 -g
>>>>>>
>>>>>> + DEBUG_VS2008x86_X64_NASM_FLAGS = -Ox -f win64 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +RELEASE_VS2008x86_X64_NASM_FLAGS = -Ox -f win64
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +NOOPT_VS2008x86_X64_NASM_FLAGS = -O0 -f win64 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_VS2008x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D
>>>>>> /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
>>>>>>
>>>>>> RELEASE_VS2008x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D
>>>>>> /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER
>>>>>> /MERGE:.rdata=.data
>>>>>>
>>>>>> @@ -688,9 +688,9 @@ NOOPT_VS2010_IA32_CC_FLAGS = /nologo /c /WX
>>>>>> /GS- /W4 /Gs32768 /D UNICODE
>>>>>> RELEASE_VS2010_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd
>>>>>>
>>>>>> NOOPT_VS2010_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
>>>>>>
>>>>>>
>>>>>>
>>>>>> - DEBUG_VS2010_IA32_NASM_FLAGS = -Ox -f win32 -g
>>>>>>
>>>>>> -RELEASE_VS2010_IA32_NASM_FLAGS = -Ox -f win32
>>>>>>
>>>>>> -NOOPT_VS2010_IA32_NASM_FLAGS = -O0 -f win32 -g
>>>>>>
>>>>>> + DEBUG_VS2010_IA32_NASM_FLAGS = -Ox -f win32 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +RELEASE_VS2010_IA32_NASM_FLAGS = -Ox -f win32
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +NOOPT_VS2010_IA32_NASM_FLAGS = -O0 -f win32 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_VS2010_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D
>>>>>> /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
>>>>>>
>>>>>> RELEASE_VS2010_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D
>>>>>> /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER
>>>>>> /MERGE:.rdata=.data
>>>>>>
>>>>>> @@ -720,9 +720,9 @@ NOOPT_VS2010_X64_CC_FLAGS = /nologo /c /WX
>>>>>> /GS- /W4 /Gs32768 /D UNICODE /G
>>>>>> RELEASE_VS2010_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
>>>>>>
>>>>>> NOOPT_VS2010_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
>>>>>>
>>>>>>
>>>>>>
>>>>>> - DEBUG_VS2010_X64_NASM_FLAGS = -Ox -f win64 -g
>>>>>>
>>>>>> -RELEASE_VS2010_X64_NASM_FLAGS = -Ox -f win64
>>>>>>
>>>>>> -NOOPT_VS2010_X64_NASM_FLAGS = -O0 -f win64 -g
>>>>>>
>>>>>> + DEBUG_VS2010_X64_NASM_FLAGS = -Ox -f win64 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +RELEASE_VS2010_X64_NASM_FLAGS = -Ox -f win64
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +NOOPT_VS2010_X64_NASM_FLAGS = -O0 -f win64 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_VS2010_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D
>>>>>> /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
>>>>>>
>>>>>> RELEASE_VS2010_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D
>>>>>> /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER
>>>>>> /MERGE:.rdata=.data
>>>>>>
>>>>>> @@ -799,9 +799,9 @@ NOOPT_VS2010x86_IA32_CC_FLAGS = /nologo /c /WX
>>>>>> /GS- /W4 /Gs32768 /D UNICODE
>>>>>> RELEASE_VS2010x86_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd
>>>>>>
>>>>>> NOOPT_VS2010x86_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
>>>>>>
>>>>>>
>>>>>>
>>>>>> - DEBUG_VS2010x86_IA32_NASM_FLAGS = -Ox -f win32 -g
>>>>>>
>>>>>> -RELEASE_VS2010x86_IA32_NASM_FLAGS = -Ox -f win32
>>>>>>
>>>>>> -NOOPT_VS2010x86_IA32_NASM_FLAGS = -O0 -f win32 -g
>>>>>>
>>>>>> + DEBUG_VS2010x86_IA32_NASM_FLAGS = -Ox -f win32 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +RELEASE_VS2010x86_IA32_NASM_FLAGS = -Ox -f win32
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +NOOPT_VS2010x86_IA32_NASM_FLAGS = -O0 -f win32 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_VS2010x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D
>>>>>> /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
>>>>>>
>>>>>> RELEASE_VS2010x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D
>>>>>> /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER
>>>>>> /MERGE:.rdata=.data
>>>>>>
>>>>>> @@ -831,9 +831,9 @@ NOOPT_VS2010x86_X64_CC_FLAGS = /nologo /c /WX
>>>>>> /GS- /W4 /Gs32768 /D UNICODE
>>>>>> RELEASE_VS2010x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
>>>>>>
>>>>>> NOOPT_VS2010x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
>>>>>>
>>>>>>
>>>>>>
>>>>>> - DEBUG_VS2010x86_X64_NASM_FLAGS = -Ox -f win64 -g
>>>>>>
>>>>>> -RELEASE_VS2010x86_X64_NASM_FLAGS = -Ox -f win64
>>>>>>
>>>>>> -NOOPT_VS2010x86_X64_NASM_FLAGS = -O0 -f win64 -g
>>>>>>
>>>>>> + DEBUG_VS2010x86_X64_NASM_FLAGS = -Ox -f win64 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +RELEASE_VS2010x86_X64_NASM_FLAGS = -Ox -f win64
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +NOOPT_VS2010x86_X64_NASM_FLAGS = -O0 -f win64 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_VS2010x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D
>>>>>> /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
>>>>>>
>>>>>> RELEASE_VS2010x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D
>>>>>> /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER
>>>>>> /MERGE:.rdata=.data
>>>>>>
>>>>>> @@ -913,9 +913,9 @@ NOOPT_VS2012_IA32_CC_FLAGS = /nologo
>>>>>> /arch:IA32 /c /WX /GS- /W4 /Gs32768
>>>>>> RELEASE_VS2012_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd
>>>>>>
>>>>>> NOOPT_VS2012_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
>>>>>>
>>>>>>
>>>>>>
>>>>>> - DEBUG_VS2012_IA32_NASM_FLAGS = -Ox -f win32 -g
>>>>>>
>>>>>> -RELEASE_VS2012_IA32_NASM_FLAGS = -Ox -f win32
>>>>>>
>>>>>> -NOOPT_VS2012_IA32_NASM_FLAGS = -O0 -f win32 -g
>>>>>>
>>>>>> + DEBUG_VS2012_IA32_NASM_FLAGS = -Ox -f win32 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +RELEASE_VS2012_IA32_NASM_FLAGS = -Ox -f win32
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +NOOPT_VS2012_IA32_NASM_FLAGS = -O0 -f win32 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_VS2012_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D
>>>>>> /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
>>>>>>
>>>>>> RELEASE_VS2012_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D
>>>>>> /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER
>>>>>> /MERGE:.rdata=.data
>>>>>>
>>>>>> @@ -945,9 +945,9 @@ NOOPT_VS2012_X64_CC_FLAGS = /nologo /c /WX
>>>>>> /GS- /W4 /Gs32768 /D UNICODE /G
>>>>>> RELEASE_VS2012_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
>>>>>>
>>>>>> NOOPT_VS2012_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
>>>>>>
>>>>>>
>>>>>>
>>>>>> - DEBUG_VS2012_X64_NASM_FLAGS = -Ox -f win64 -g
>>>>>>
>>>>>> -RELEASE_VS2012_X64_NASM_FLAGS = -Ox -f win64
>>>>>>
>>>>>> -NOOPT_VS2012_X64_NASM_FLAGS = -O0 -f win64 -g
>>>>>>
>>>>>> + DEBUG_VS2012_X64_NASM_FLAGS = -Ox -f win64 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +RELEASE_VS2012_X64_NASM_FLAGS = -Ox -f win64
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +NOOPT_VS2012_X64_NASM_FLAGS = -O0 -f win64 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_VS2012_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D
>>>>>> /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
>>>>>>
>>>>>> RELEASE_VS2012_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D
>>>>>> /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER
>>>>>> /MERGE:.rdata=.data
>>>>>>
>>>>>> @@ -1024,9 +1024,9 @@ NOOPT_VS2012x86_IA32_CC_FLAGS = /nologo
>>>>>> /arch:IA32 /c /WX /GS- /W4 /Gs32768
>>>>>> RELEASE_VS2012x86_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd
>>>>>>
>>>>>> NOOPT_VS2012x86_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
>>>>>>
>>>>>>
>>>>>>
>>>>>> - DEBUG_VS2012x86_IA32_NASM_FLAGS = -Ox -f win32 -g
>>>>>>
>>>>>> -RELEASE_VS2012x86_IA32_NASM_FLAGS = -Ox -f win32
>>>>>>
>>>>>> -NOOPT_VS2012x86_IA32_NASM_FLAGS = -O0 -f win32 -g
>>>>>>
>>>>>> + DEBUG_VS2012x86_IA32_NASM_FLAGS = -Ox -f win32 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +RELEASE_VS2012x86_IA32_NASM_FLAGS = -Ox -f win32
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +NOOPT_VS2012x86_IA32_NASM_FLAGS = -O0 -f win32 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_VS2012x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D
>>>>>> /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
>>>>>>
>>>>>> RELEASE_VS2012x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D
>>>>>> /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER
>>>>>> /MERGE:.rdata=.data
>>>>>>
>>>>>> @@ -1056,9 +1056,9 @@ NOOPT_VS2012x86_X64_CC_FLAGS = /nologo /c
>>>>>> /WX /GS- /W4 /Gs32768 /D UNICODE
>>>>>> RELEASE_VS2012x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
>>>>>>
>>>>>> NOOPT_VS2012x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
>>>>>>
>>>>>>
>>>>>>
>>>>>> - DEBUG_VS2012x86_X64_NASM_FLAGS = -Ox -f win64 -g
>>>>>>
>>>>>> -RELEASE_VS2012x86_X64_NASM_FLAGS = -Ox -f win64
>>>>>>
>>>>>> -NOOPT_VS2012x86_X64_NASM_FLAGS = -O0 -f win64 -g
>>>>>>
>>>>>> + DEBUG_VS2012x86_X64_NASM_FLAGS = -Ox -f win64 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +RELEASE_VS2012x86_X64_NASM_FLAGS = -Ox -f win64
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +NOOPT_VS2012x86_X64_NASM_FLAGS = -O0 -f win64 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_VS2012x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D
>>>>>> /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
>>>>>>
>>>>>> RELEASE_VS2012x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D
>>>>>> /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER
>>>>>> /MERGE:.rdata=.data
>>>>>>
>>>>>> @@ -1138,9 +1138,9 @@ NOOPT_VS2013_IA32_CC_FLAGS = /nologo
>>>>>> /arch:IA32 /c /WX /GS- /W4 /Gs32768
>>>>>> RELEASE_VS2013_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd
>>>>>>
>>>>>> NOOPT_VS2013_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
>>>>>>
>>>>>>
>>>>>>
>>>>>> - DEBUG_VS2013_IA32_NASM_FLAGS = -Ox -f win32 -g
>>>>>>
>>>>>> -RELEASE_VS2013_IA32_NASM_FLAGS = -Ox -f win32
>>>>>>
>>>>>> -NOOPT_VS2013_IA32_NASM_FLAGS = -O0 -f win32 -g
>>>>>>
>>>>>> + DEBUG_VS2013_IA32_NASM_FLAGS = -Ox -f win32 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +RELEASE_VS2013_IA32_NASM_FLAGS = -Ox -f win32
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +NOOPT_VS2013_IA32_NASM_FLAGS = -O0 -f win32 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_VS2013_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D
>>>>>> /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
>>>>>>
>>>>>> RELEASE_VS2013_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D
>>>>>> /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER
>>>>>> /MERGE:.rdata=.data
>>>>>>
>>>>>> @@ -1170,9 +1170,9 @@ NOOPT_VS2013_X64_CC_FLAGS = /nologo /c /WX
>>>>>> /GS- /W4 /Gs32768 /D UNICODE /G
>>>>>> RELEASE_VS2013_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
>>>>>>
>>>>>> NOOPT_VS2013_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
>>>>>>
>>>>>>
>>>>>>
>>>>>> - DEBUG_VS2013_X64_NASM_FLAGS = -Ox -f win64 -g
>>>>>>
>>>>>> -RELEASE_VS2013_X64_NASM_FLAGS = -Ox -f win64
>>>>>>
>>>>>> -NOOPT_VS2013_X64_NASM_FLAGS = -O0 -f win64 -g
>>>>>>
>>>>>> + DEBUG_VS2013_X64_NASM_FLAGS = -Ox -f win64 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +RELEASE_VS2013_X64_NASM_FLAGS = -Ox -f win64
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +NOOPT_VS2013_X64_NASM_FLAGS = -O0 -f win64 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_VS2013_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D
>>>>>> /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
>>>>>>
>>>>>> RELEASE_VS2013_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D
>>>>>> /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER
>>>>>> /MERGE:.rdata=.data
>>>>>>
>>>>>> @@ -1249,9 +1249,9 @@ NOOPT_VS2013x86_IA32_CC_FLAGS = /nologo
>>>>>> /arch:IA32 /c /WX /GS- /W4 /Gs32768
>>>>>> RELEASE_VS2013x86_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd
>>>>>>
>>>>>> NOOPT_VS2013x86_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
>>>>>>
>>>>>>
>>>>>>
>>>>>> - DEBUG_VS2013x86_IA32_NASM_FLAGS = -Ox -f win32 -g
>>>>>>
>>>>>> -RELEASE_VS2013x86_IA32_NASM_FLAGS = -Ox -f win32
>>>>>>
>>>>>> -NOOPT_VS2013x86_IA32_NASM_FLAGS = -O0 -f win32 -g
>>>>>>
>>>>>> + DEBUG_VS2013x86_IA32_NASM_FLAGS = -Ox -f win32 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +RELEASE_VS2013x86_IA32_NASM_FLAGS = -Ox -f win32
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +NOOPT_VS2013x86_IA32_NASM_FLAGS = -O0 -f win32 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_VS2013x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D
>>>>>> /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
>>>>>>
>>>>>> RELEASE_VS2013x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D
>>>>>> /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER
>>>>>> /MERGE:.rdata=.data
>>>>>>
>>>>>> @@ -1281,9 +1281,9 @@ NOOPT_VS2013x86_X64_CC_FLAGS = /nologo /c
>>>>>> /WX /GS- /W4 /Gs32768 /D UNICODE
>>>>>> RELEASE_VS2013x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
>>>>>>
>>>>>> NOOPT_VS2013x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
>>>>>>
>>>>>>
>>>>>>
>>>>>> - DEBUG_VS2013x86_X64_NASM_FLAGS = -Ox -f win64 -g
>>>>>>
>>>>>> -RELEASE_VS2013x86_X64_NASM_FLAGS = -Ox -f win64
>>>>>>
>>>>>> -NOOPT_VS2013x86_X64_NASM_FLAGS = -O0 -f win64 -g
>>>>>>
>>>>>> + DEBUG_VS2013x86_X64_NASM_FLAGS = -Ox -f win64 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +RELEASE_VS2013x86_X64_NASM_FLAGS = -Ox -f win64
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +NOOPT_VS2013x86_X64_NASM_FLAGS = -O0 -f win64 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_VS2013x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D
>>>>>> /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
>>>>>>
>>>>>> RELEASE_VS2013x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D
>>>>>> /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER
>>>>>> /MERGE:.rdata=.data
>>>>>>
>>>>>> @@ -1364,9 +1364,9 @@ NOOPT_VS2015_IA32_CC_FLAGS = /nologo
>>>>>> /arch:IA32 /c /WX /GS- /W4 /Gs32768
>>>>>> RELEASE_VS2015_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd
>>>>>>
>>>>>> NOOPT_VS2015_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
>>>>>>
>>>>>>
>>>>>>
>>>>>> - DEBUG_VS2015_IA32_NASM_FLAGS = -Ox -f win32 -g
>>>>>>
>>>>>> -RELEASE_VS2015_IA32_NASM_FLAGS = -Ox -f win32
>>>>>>
>>>>>> -NOOPT_VS2015_IA32_NASM_FLAGS = -O0 -f win32 -g
>>>>>>
>>>>>> + DEBUG_VS2015_IA32_NASM_FLAGS = -Ox -f win32 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +RELEASE_VS2015_IA32_NASM_FLAGS = -Ox -f win32
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +NOOPT_VS2015_IA32_NASM_FLAGS = -O0 -f win32 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_VS2015_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D
>>>>>> /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
>>>>>>
>>>>>> RELEASE_VS2015_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D
>>>>>> /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER
>>>>>> /MERGE:.rdata=.data
>>>>>>
>>>>>> @@ -1396,9 +1396,9 @@ NOOPT_VS2015_X64_CC_FLAGS = /nologo /c /WX
>>>>>> /GS- /W4 /Gs32768 /D UNICODE /G
>>>>>> RELEASE_VS2015_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
>>>>>>
>>>>>> NOOPT_VS2015_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
>>>>>>
>>>>>>
>>>>>>
>>>>>> - DEBUG_VS2015_X64_NASM_FLAGS = -Ox -f win64 -g
>>>>>>
>>>>>> -RELEASE_VS2015_X64_NASM_FLAGS = -Ox -f win64
>>>>>>
>>>>>> -NOOPT_VS2015_X64_NASM_FLAGS = -O0 -f win64 -g
>>>>>>
>>>>>> + DEBUG_VS2015_X64_NASM_FLAGS = -Ox -f win64 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +RELEASE_VS2015_X64_NASM_FLAGS = -Ox -f win64
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +NOOPT_VS2015_X64_NASM_FLAGS = -O0 -f win64 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_VS2015_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D
>>>>>> /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
>>>>>>
>>>>>> RELEASE_VS2015_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D
>>>>>> /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER
>>>>>> /MERGE:.rdata=.data
>>>>>>
>>>>>> @@ -1476,9 +1476,9 @@ NOOPT_VS2015x86_IA32_CC_FLAGS = /nologo
>>>>>> /arch:IA32 /c /WX /GS- /W4 /Gs32768
>>>>>> RELEASE_VS2015x86_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd
>>>>>>
>>>>>> NOOPT_VS2015x86_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
>>>>>>
>>>>>>
>>>>>>
>>>>>> - DEBUG_VS2015x86_IA32_NASM_FLAGS = -Ox -f win32 -g
>>>>>>
>>>>>> -RELEASE_VS2015x86_IA32_NASM_FLAGS = -Ox -f win32
>>>>>>
>>>>>> -NOOPT_VS2015x86_IA32_NASM_FLAGS = -O0 -f win32 -g
>>>>>>
>>>>>> + DEBUG_VS2015x86_IA32_NASM_FLAGS = -Ox -f win32 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +RELEASE_VS2015x86_IA32_NASM_FLAGS = -Ox -f win32
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +NOOPT_VS2015x86_IA32_NASM_FLAGS = -O0 -f win32 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_VS2015x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D
>>>>>> /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
>>>>>>
>>>>>> RELEASE_VS2015x86_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D
>>>>>> /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER
>>>>>> /MERGE:.rdata=.data
>>>>>>
>>>>>> @@ -1508,9 +1508,9 @@ NOOPT_VS2015x86_X64_CC_FLAGS = /nologo /c
>>>>>> /WX /GS- /W4 /Gs32768 /D UNICODE
>>>>>> RELEASE_VS2015x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
>>>>>>
>>>>>> NOOPT_VS2015x86_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
>>>>>>
>>>>>>
>>>>>>
>>>>>> - DEBUG_VS2015x86_X64_NASM_FLAGS = -Ox -f win64 -g
>>>>>>
>>>>>> -RELEASE_VS2015x86_X64_NASM_FLAGS = -Ox -f win64
>>>>>>
>>>>>> -NOOPT_VS2015x86_X64_NASM_FLAGS = -O0 -f win64 -g
>>>>>>
>>>>>> + DEBUG_VS2015x86_X64_NASM_FLAGS = -Ox -f win64 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +RELEASE_VS2015x86_X64_NASM_FLAGS = -Ox -f win64
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +NOOPT_VS2015x86_X64_NASM_FLAGS = -O0 -f win64 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_VS2015x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D
>>>>>> /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
>>>>>>
>>>>>> RELEASE_VS2015x86_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D
>>>>>> /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER
>>>>>> /MERGE:.rdata=.data
>>>>>>
>>>>>> @@ -1586,9 +1586,9 @@ NOOPT_VS2017_IA32_CC_FLAGS = /nologo
>>>>>> /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D
>>>>>> RELEASE_VS2017_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd
>>>>>>
>>>>>> NOOPT_VS2017_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
>>>>>>
>>>>>>
>>>>>>
>>>>>> - DEBUG_VS2017_IA32_NASM_FLAGS = -Ox -f win32 -g
>>>>>>
>>>>>> -RELEASE_VS2017_IA32_NASM_FLAGS = -Ox -f win32
>>>>>>
>>>>>> -NOOPT_VS2017_IA32_NASM_FLAGS = -O0 -f win32 -g
>>>>>>
>>>>>> + DEBUG_VS2017_IA32_NASM_FLAGS = -Ox -f win32 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +RELEASE_VS2017_IA32_NASM_FLAGS = -Ox -f win32
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +NOOPT_VS2017_IA32_NASM_FLAGS = -O0 -f win32 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_VS2017_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D
>>>>>> /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
>>>>>>
>>>>>> RELEASE_VS2017_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D
>>>>>> /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER
>>>>>> /MERGE:.rdata=.data
>>>>>>
>>>>>> @@ -1616,9 +1616,9 @@ NOOPT_VS2017_X64_CC_FLAGS = /nologo /c /WX
>>>>>> /GS- /W4 /Gs32768 /D UNICODE /G
>>>>>> RELEASE_VS2017_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
>>>>>>
>>>>>> NOOPT_VS2017_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
>>>>>>
>>>>>>
>>>>>>
>>>>>> - DEBUG_VS2017_X64_NASM_FLAGS = -Ox -f win64 -g
>>>>>>
>>>>>> -RELEASE_VS2017_X64_NASM_FLAGS = -Ox -f win64
>>>>>>
>>>>>> -NOOPT_VS2017_X64_NASM_FLAGS = -O0 -f win64 -g
>>>>>>
>>>>>> + DEBUG_VS2017_X64_NASM_FLAGS = -Ox -f win64 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +RELEASE_VS2017_X64_NASM_FLAGS = -Ox -f win64
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +NOOPT_VS2017_X64_NASM_FLAGS = -O0 -f win64 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_VS2017_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /IGNORE:4281 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D
>>>>>> /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
>>>>>>
>>>>>> RELEASE_VS2017_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /IGNORE:4281 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32
>>>>>> /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL
>>>>>> /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER
>>>>>> /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data
>>>>>>
>>>>>> @@ -1744,9 +1744,9 @@ NOOPT_VS2019_IA32_CC_FLAGS = /nologo
>>>>>> /arch:IA32 /c /WX /GS- /W4 /Gs32768 /D
>>>>>> RELEASE_VS2019_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd
>>>>>>
>>>>>> NOOPT_VS2019_IA32_ASM_FLAGS = /nologo /c /WX /W3 /Cx /coff /Zd /Zi
>>>>>>
>>>>>>
>>>>>>
>>>>>> - DEBUG_VS2019_IA32_NASM_FLAGS = -Ox -f win32 -g
>>>>>>
>>>>>> -RELEASE_VS2019_IA32_NASM_FLAGS = -Ox -f win32
>>>>>>
>>>>>> -NOOPT_VS2019_IA32_NASM_FLAGS = -O0 -f win32 -g
>>>>>>
>>>>>> + DEBUG_VS2019_IA32_NASM_FLAGS = -Ox -f win32 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +RELEASE_VS2019_IA32_NASM_FLAGS = -Ox -f win32
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +NOOPT_VS2019_IA32_NASM_FLAGS = -O0 -f win32 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_VS2019_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D /SECTION:.pdata,D
>>>>>> /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
>>>>>>
>>>>>> RELEASE_VS2019_IA32_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D
>>>>>> /SECTION:.pdata,D /MACHINE:X86 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER
>>>>>> /MERGE:.rdata=.data
>>>>>>
>>>>>> @@ -1774,9 +1774,9 @@ NOOPT_VS2019_X64_CC_FLAGS = /nologo /c /WX
>>>>>> /GS- /W4 /Gs32768 /D UNICODE /G
>>>>>> RELEASE_VS2019_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd
>>>>>>
>>>>>> NOOPT_VS2019_X64_ASM_FLAGS = /nologo /c /WX /W3 /Cx /Zd /Zi
>>>>>>
>>>>>>
>>>>>>
>>>>>> - DEBUG_VS2019_X64_NASM_FLAGS = -Ox -f win64 -g
>>>>>>
>>>>>> -RELEASE_VS2019_X64_NASM_FLAGS = -Ox -f win64
>>>>>>
>>>>>> -NOOPT_VS2019_X64_NASM_FLAGS = -O0 -f win64 -g
>>>>>>
>>>>>> + DEBUG_VS2019_X64_NASM_FLAGS = -Ox -f win64 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +RELEASE_VS2019_X64_NASM_FLAGS = -Ox -f win64
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> +NOOPT_VS2019_X64_NASM_FLAGS = -O0 -f win64 -g
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_VS2019_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /IGNORE:4281 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32 /SECTION:.xdata,D
>>>>>> /SECTION:.pdata,D /Machine:X64 /LTCG /DLL /ENTRY:$(IMAGE_ENTRY_POINT)
>>>>>> /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER /SAFESEH:NO /BASE:0 /DRIVER /DEBUG
>>>>>>
>>>>>> RELEASE_VS2019_X64_DLINK_FLAGS = /NOLOGO /NODEFAULTLIB /IGNORE:4001
>>>>>> /IGNORE:4281 /IGNORE:4254 /OPT:REF /OPT:ICF=10 /MAP /ALIGN:32
>>>>>> /SECTION:.xdata,D /SECTION:.pdata,D /Machine:X64 /LTCG /DLL
>>>>>> /ENTRY:$(IMAGE_ENTRY_POINT) /SUBSYSTEM:EFI_BOOT_SERVICE_DRIVER
>>>>>> /SAFESEH:NO /BASE:0 /DRIVER /MERGE:.rdata=.data
>>>>>>
>>>>>> @@ -2030,7 +2030,7 @@ DEFINE GCC_PP_FLAGS = -E -x
>>>>>> assembler-with-cpp -include A
>>>>>> *_GCC48_IA32_DLINK2_FLAGS = DEF(GCC48_IA32_DLINK2_FLAGS)
>>>>>>
>>>>>> *_GCC48_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS)
>>>>>>
>>>>>> *_GCC48_IA32_OBJCOPY_FLAGS =
>>>>>>
>>>>>> -*_GCC48_IA32_NASM_FLAGS = -f elf32
>>>>>>
>>>>>> +*_GCC48_IA32_NASM_FLAGS = -f elf32
>>>>>> -DRODATA_SECTION_NAME=.rodata
>>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_GCC48_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS) -Os
>>>>>>
>>>>>> RELEASE_GCC48_IA32_CC_FLAGS = DEF(GCC48_IA32_CC_FLAGS) -Os
>>>>>> -Wno-unused-but-set-variable
>>>>>>
>>>>>> @@ -2058,7 +2058,7 @@ RELEASE_GCC48_IA32_CC_FLAGS =
>>>>>> DEF(GCC48_IA32_CC_FLAGS) -Os -Wno-unused-but
>>>>>> *_GCC48_X64_DLINK2_FLAGS = DEF(GCC48_X64_DLINK2_FLAGS)
>>>>>>
>>>>>> *_GCC48_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS)
>>>>>>
>>>>>> *_GCC48_X64_OBJCOPY_FLAGS =
>>>>>>
>>>>>> -*_GCC48_X64_NASM_FLAGS = -f elf64
>>>>>>
>>>>>> +*_GCC48_X64_NASM_FLAGS = -f elf64
>>>>>> -DRODATA_SECTION_NAME=.rodata
>>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_GCC48_X64_CC_FLAGS = DEF(GCC48_X64_CC_FLAGS) -Os
>>>>>>
>>>>>> RELEASE_GCC48_X64_CC_FLAGS = DEF(GCC48_X64_CC_FLAGS) -Os
>>>>>> -Wno-unused-but-set-variable
>>>>>>
>>>>>> @@ -2170,7 +2170,7 @@ RELEASE_GCC48_AARCH64_CC_FLAGS =
>>>>>> DEF(GCC48_AARCH64_CC_FLAGS) -Wno-unused-but-s
>>>>>> *_GCC49_IA32_DLINK2_FLAGS = DEF(GCC49_IA32_DLINK2_FLAGS)
>>>>>>
>>>>>> *_GCC49_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS)
>>>>>>
>>>>>> *_GCC49_IA32_OBJCOPY_FLAGS =
>>>>>>
>>>>>> -*_GCC49_IA32_NASM_FLAGS = -f elf32
>>>>>>
>>>>>> +*_GCC49_IA32_NASM_FLAGS = -f elf32
>>>>>> -DRODATA_SECTION_NAME=.rodata
>>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_GCC49_IA32_CC_FLAGS = DEF(GCC49_IA32_CC_FLAGS) -Os
>>>>>>
>>>>>> RELEASE_GCC49_IA32_CC_FLAGS = DEF(GCC49_IA32_CC_FLAGS) -Os
>>>>>> -Wno-unused-but-set-variable -Wno-unused-const-variable
>>>>>>
>>>>>> @@ -2198,7 +2198,7 @@ RELEASE_GCC49_IA32_CC_FLAGS =
>>>>>> DEF(GCC49_IA32_CC_FLAGS) -Os -Wno-unused-but
>>>>>> *_GCC49_X64_DLINK2_FLAGS = DEF(GCC49_X64_DLINK2_FLAGS)
>>>>>>
>>>>>> *_GCC49_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS)
>>>>>>
>>>>>> *_GCC49_X64_OBJCOPY_FLAGS =
>>>>>>
>>>>>> -*_GCC49_X64_NASM_FLAGS = -f elf64
>>>>>>
>>>>>> +*_GCC49_X64_NASM_FLAGS = -f elf64
>>>>>> -DRODATA_SECTION_NAME=.rodata
>>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_GCC49_X64_CC_FLAGS = DEF(GCC49_X64_CC_FLAGS) -Os
>>>>>>
>>>>>> RELEASE_GCC49_X64_CC_FLAGS = DEF(GCC49_X64_CC_FLAGS) -Os
>>>>>> -Wno-unused-but-set-variable -Wno-unused-const-variable
>>>>>>
>>>>>> @@ -2316,7 +2316,7 @@ RELEASE_GCC49_AARCH64_DLINK_XIPFLAGS = -z
>>>>>> common-page-size=0x20
>>>>>> *_GCC5_IA32_DLINK2_FLAGS = DEF(GCC5_IA32_DLINK2_FLAGS) -no-pie
>>>>>>
>>>>>> *_GCC5_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS)
>>>>>>
>>>>>> *_GCC5_IA32_OBJCOPY_FLAGS =
>>>>>>
>>>>>> -*_GCC5_IA32_NASM_FLAGS = -f elf32
>>>>>>
>>>>>> +*_GCC5_IA32_NASM_FLAGS = -f elf32
>>>>>> -DRODATA_SECTION_NAME=.rodata
>>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_GCC5_IA32_CC_FLAGS = DEF(GCC5_IA32_CC_FLAGS) -flto -Os
>>>>>>
>>>>>> DEBUG_GCC5_IA32_DLINK_FLAGS = DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto
>>>>>> -Os -Wl,-m,elf_i386,--oformat=elf32-i386
>>>>>>
>>>>>> @@ -2348,7 +2348,7 @@ RELEASE_GCC5_IA32_DLINK_FLAGS =
>>>>>> DEF(GCC5_IA32_X64_DLINK_FLAGS) -flto -Os -Wl,
>>>>>> *_GCC5_X64_DLINK2_FLAGS = DEF(GCC5_X64_DLINK2_FLAGS)
>>>>>>
>>>>>> *_GCC5_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS)
>>>>>>
>>>>>> *_GCC5_X64_OBJCOPY_FLAGS =
>>>>>>
>>>>>> -*_GCC5_X64_NASM_FLAGS = -f elf64
>>>>>>
>>>>>> +*_GCC5_X64_NASM_FLAGS = -f elf64
>>>>>> -DRODATA_SECTION_NAME=.rodata
>>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_GCC5_X64_CC_FLAGS = DEF(GCC5_X64_CC_FLAGS) -flto
>>>>>> -DUSING_LTO -Os
>>>>>>
>>>>>> DEBUG_GCC5_X64_DLINK_FLAGS = DEF(GCC5_X64_DLINK_FLAGS) -flto -Os
>>>>>>
>>>>>> @@ -2589,7 +2589,7 @@ DEFINE CLANG38_ALL_CC_FLAGS =
>>>>>> DEF(GCC48_ALL_CC_FLAGS) DEF(CLANG38_WARNIN
>>>>>> *_CLANG38_IA32_ASM_FLAGS = DEF(GCC5_ASM_FLAGS) -m32
>>>>>> -march=i386 DEF(CLANG38_IA32_TARGET)
>>>>>>
>>>>>> *_CLANG38_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS)
>>>>>>
>>>>>> *_CLANG38_IA32_OBJCOPY_FLAGS =
>>>>>>
>>>>>> -*_CLANG38_IA32_NASM_FLAGS = -f elf32
>>>>>>
>>>>>> +*_CLANG38_IA32_NASM_FLAGS = -f elf32
>>>>>> -DRODATA_SECTION_NAME=.rodata
>>>>>>
>>>>>> *_CLANG38_IA32_PP_FLAGS = DEF(GCC_PP_FLAGS)
>>>>>> DEF(CLANG38_IA32_TARGET)
>>>>>>
>>>>>> *_CLANG38_IA32_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS)
>>>>>> DEF(CLANG38_IA32_TARGET)
>>>>>>
>>>>>> *_CLANG38_IA32_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS)
>>>>>> DEF(CLANG38_IA32_TARGET)
>>>>>>
>>>>>> @@ -2626,7 +2626,7 @@ NOOPT_CLANG38_IA32_DLINK2_FLAGS =
>>>>>> DEF(GCC5_IA32_DLINK2_FLAGS) -O0
>>>>>> *_CLANG38_X64_ASM_FLAGS = DEF(GCC5_ASM_FLAGS) -m64
>>>>>> DEF(CLANG38_X64_TARGET)
>>>>>>
>>>>>> *_CLANG38_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS)
>>>>>>
>>>>>> *_CLANG38_X64_OBJCOPY_FLAGS =
>>>>>>
>>>>>> -*_CLANG38_X64_NASM_FLAGS = -f elf64
>>>>>>
>>>>>> +*_CLANG38_X64_NASM_FLAGS = -f elf64
>>>>>> -DRODATA_SECTION_NAME=.rodata
>>>>>>
>>>>>> *_CLANG38_X64_PP_FLAGS = DEF(GCC_PP_FLAGS)
>>>>>> DEF(CLANG38_X64_TARGET)
>>>>>>
>>>>>> *_CLANG38_X64_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS)
>>>>>> DEF(CLANG38_X64_TARGET)
>>>>>>
>>>>>> *_CLANG38_X64_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS)
>>>>>> DEF(CLANG38_X64_TARGET)
>>>>>>
>>>>>> @@ -2777,7 +2777,7 @@ DEFINE CLANGPDB_ALL_CC_FLAGS =
>>>>>> DEF(GCC48_ALL_CC_FLAGS) DEF(CLANGPDB_WARN
>>>>>> *_CLANGPDB_IA32_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m32
>>>>>> -fno-lto DEF(CLANGPDB_IA32_TARGET)
>>>>>>
>>>>>> *_CLANGPDB_IA32_ASM_FLAGS = DEF(GCC_ASM_FLAGS) -m32
>>>>>> -march=i386 DEF(CLANGPDB_IA32_TARGET)
>>>>>>
>>>>>> *_CLANGPDB_IA32_OBJCOPY_FLAGS =
>>>>>>
>>>>>> -*_CLANGPDB_IA32_NASM_FLAGS = -f win32
>>>>>>
>>>>>> +*_CLANGPDB_IA32_NASM_FLAGS = -f win32
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> *_CLANGPDB_IA32_PP_FLAGS = DEF(GCC_PP_FLAGS)
>>>>>> DEF(CLANGPDB_IA32_TARGET)
>>>>>>
>>>>>> *_CLANGPDB_IA32_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS)
>>>>>> DEF(CLANGPDB_IA32_TARGET)
>>>>>>
>>>>>> *_CLANGPDB_IA32_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS)
>>>>>> DEF(CLANGPDB_IA32_TARGET)
>>>>>>
>>>>>> @@ -2811,7 +2811,7 @@ NOOPT_CLANGPDB_IA32_DLINK2_FLAGS =
>>>>>> *_CLANGPDB_X64_ASLCC_FLAGS = DEF(GCC_ASLCC_FLAGS) -m64 -fno-lto
>>>>>> DEF(CLANGPDB_X64_TARGET)
>>>>>>
>>>>>> *_CLANGPDB_X64_ASM_FLAGS = DEF(GCC_ASM_FLAGS) -m64
>>>>>> DEF(CLANGPDB_X64_TARGET)
>>>>>>
>>>>>> *_CLANGPDB_X64_OBJCOPY_FLAGS =
>>>>>>
>>>>>> -*_CLANGPDB_X64_NASM_FLAGS = -f win64
>>>>>>
>>>>>> +*_CLANGPDB_X64_NASM_FLAGS = -f win64
>>>>>> -DRODATA_SECTION_NAME=.rdata
>>>>>>
>>>>>> *_CLANGPDB_X64_PP_FLAGS = DEF(GCC_PP_FLAGS)
>>>>>> DEF(CLANGPDB_X64_TARGET)
>>>>>>
>>>>>> *_CLANGPDB_X64_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS)
>>>>>> DEF(CLANGPDB_X64_TARGET)
>>>>>>
>>>>>> *_CLANGPDB_X64_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS)
>>>>>> DEF(CLANGPDB_X64_TARGET)
>>>>>>
>>>>>> @@ -2878,7 +2878,7 @@ DEFINE CLANGDWARF_X64_DLINK2_FLAGS =
>>>>>> -Wl,--defsym=PECOFF_HEADER_SIZE=0x22
>>>>>> *_CLANGDWARF_IA32_ASM_FLAGS = DEF(GCC5_ASM_FLAGS) -m32
>>>>>> -march=i386 DEF(CLANG38_IA32_TARGET)
>>>>>>
>>>>>> *_CLANGDWARF_IA32_RC_FLAGS = DEF(GCC_IA32_RC_FLAGS)
>>>>>>
>>>>>> *_CLANGDWARF_IA32_OBJCOPY_FLAGS =
>>>>>>
>>>>>> -*_CLANGDWARF_IA32_NASM_FLAGS = -f elf32
>>>>>>
>>>>>> +*_CLANGDWARF_IA32_NASM_FLAGS = -f elf32
>>>>>> -DRODATA_SECTION_NAME=.rodata
>>>>>>
>>>>>> *_CLANGDWARF_IA32_PP_FLAGS = DEF(GCC_PP_FLAGS)
>>>>>> DEF(CLANG38_IA32_TARGET)
>>>>>>
>>>>>> *_CLANGDWARF_IA32_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS)
>>>>>> DEF(CLANG38_IA32_TARGET)
>>>>>>
>>>>>> *_CLANGDWARF_IA32_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS)
>>>>>> DEF(CLANG38_IA32_TARGET)
>>>>>>
>>>>>> @@ -2914,7 +2914,7 @@ NOOPT_CLANGDWARF_IA32_DLINK2_FLAGS =
>>>>>> DEF(CLANGDWARF_IA32_DLINK2_FLAGS) -O0 -
>>>>>> *_CLANGDWARF_X64_ASM_FLAGS = DEF(GCC5_ASM_FLAGS) -m64
>>>>>> DEF(CLANG38_X64_TARGET)
>>>>>>
>>>>>> *_CLANGDWARF_X64_RC_FLAGS = DEF(GCC_X64_RC_FLAGS)
>>>>>>
>>>>>> *_CLANGDWARF_X64_OBJCOPY_FLAGS =
>>>>>>
>>>>>> -*_CLANGDWARF_X64_NASM_FLAGS = -f elf64
>>>>>>
>>>>>> +*_CLANGDWARF_X64_NASM_FLAGS = -f elf64
>>>>>> -DRODATA_SECTION_NAME=.rodata
>>>>>>
>>>>>> *_CLANGDWARF_X64_PP_FLAGS = DEF(GCC_PP_FLAGS)
>>>>>> DEF(CLANG38_X64_TARGET)
>>>>>>
>>>>>> *_CLANGDWARF_X64_ASLPP_FLAGS = DEF(GCC_ASLPP_FLAGS)
>>>>>> DEF(CLANG38_X64_TARGET)
>>>>>>
>>>>>> *_CLANGDWARF_X64_VFRPP_FLAGS = DEF(GCC_VFRPP_FLAGS)
>>>>>> DEF(CLANG38_X64_TARGET)
>>>>>>
>>>>>> @@ -2985,7 +2985,7 @@ RELEASE_XCODE5_IA32_DLINK_FLAGS = -arch i386
>>>>>> -u _$(IMAGE_ENTRY_POINT) -e _$
>>>>>> DEBUG_XCODE5_IA32_ASM_FLAGS = -arch i386 -g
>>>>>>
>>>>>> NOOPT_XCODE5_IA32_ASM_FLAGS = -arch i386 -g
>>>>>>
>>>>>> RELEASE_XCODE5_IA32_ASM_FLAGS = -arch i386
>>>>>>
>>>>>> - *_XCODE5_IA32_NASM_FLAGS = -f macho32
>>>>>>
>>>>>> + *_XCODE5_IA32_NASM_FLAGS = -f macho32
>>>>>> -DRODATA_SECTION_NAME=.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 typical EFI image
>>>>> there are __const, __data, __bss sections in the __DATA segment [1].
>>>>
>>>> Yes, and ".rodata" is almost a synonym for "__DATA,__const", with a small
>>>> exception [1]. Maybe it'd be clearer if the macro was renamed to
>>>> "NASM_RODATA_SECTION_NAME", to indicate this is not just a "raw" name, but
>>>> NASM gives it a semantic meaning?
>>>>
>>>>>
>>>>> The mtoc [2] tool used to 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 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 with
>>>> Mach-O/mtoc and not with my patch. It seems like the only difference
>>>> between __TEXT,__const and __DATA,__const is whether the data is targeted
>>>> 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 definition to explicitly
>>>> declare __TEXT,__const, but that would still put the compiler-emitted data
>>>> in the wrong section. Does Xcode provide anything remotely similar to GNU
>>>> linker scripts which we can use to move the section?
>>>>
>>>> Please also note that .rodata is used for Xcode-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 the compiler and
>>>> .rodata with RX permissions from NASM, because ".rodata" only has a
>>>> semantic meaning for ELF and Mach-O outputs, but not for PE/COFF.
>>>>
>>>>>
>>>>> 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 arbitrary
>>>> constraint on the relocation part that holds only for Xcode-based
>>>> toolchains. Does the compiler emit an error when data in __TEXT,__const is
>>>> targeted 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 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.
>>>
>>>> Also see above regarding compiler-emitted __DATA,__const.
>>>>
>>>
>>> OK so the current nasm `SECTION .rodata`[1] gets mapped to
>>> __TEXT,__const[2] for Xcode clang, and this is done by nasm (I dumped the
>>> object 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 sections the same, but in this case it is nasm placing the
>>> data in the text section.
>>>
>>> So what I’d 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 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 directly are good with .rodata? 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 like nasm does some SECTION translations under the
>>> hood to make code portable, and I’d 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 section is
>>> being used by that specific toolchain, and I think that is much worse than
>>> the current “magic” behavior in nasm. We are much better off explaining
>>> what is really happening, since it is not very obvious.
>>>
>>> [1]
>>> https://github.com/tianocore/edk2/blob/master/UefiCpuPkg/Library/BaseUefiCpuLib/X64/InitializeFpu.nasm#L14
>>>
>>> <https://github.com/tianocore/edk2/blob/master/UefiCpuPkg/Library/BaseUefiCpuLib/X64/InitializeFpu.nasm#L14>
>>>
>>> [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/BaseUefiCpuLib/OUTPUT/X64/InitializeFpu.obj:
>>> Contents of (__TEXT,__const) section
>>> 0000001d 7f 03 80 1f 00 00
>>>
>>> $ otool -l
>>> Build//OvmfX64/DEBUG_XCODE5/X64/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib/OUTPUT/X64/InitializeFpu.obj
>>> Build/OvmfX64/DEBUG_XCODE5/X64/UefiCpuPkg/Library/BaseUefiCpuLib/BaseUefiCpuLib/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
>>>
>>> Thanks,
>>>
>>> Andrew Fish
>>>
>>>
>>>> Thanks for your notes and insight!
>>>>
>>>> Best regards,
>>>> Marvin
>>>>
>>>>
>>>> [1]
>>>> "For compatibility with other Unix platforms, the following standard names
>>>> are also supported:
>>>> [...]
>>>> .rodata = __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
>>>> explicitly."
>>>> 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 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
>>>>> …
>>>>>
>>>>> [2]
>>>>> https://opensource.apple.com/source/cctools/cctools-698/efitools/mtoc.c.auto.html
>>>>>
>>>>> <https://opensource.apple.com/source/cctools/cctools-698/efitools/mtoc.c.auto.html>
>>>>>
>>>>> <https://opensource.apple.com/source/cctools/cctools-698/efitools/mtoc.c.auto.html
>>>>>
>>>>> <https://opensource.apple.com/source/cctools/cctools-698/efitools/mtoc.c.auto.html>>
>>>>>
>>>>>
>>>>> [3] otool more output…
>>>>> 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
>>>>>
>>>>> Thanks,
>>>>>
>>>>> Andrew Fish
>>>>>
>>>>>>
>>>>>>
>>>>>> DEBUG_XCODE5_IA32_CC_FLAGS = -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-bitfields -msoft-float -Wno-unused-parameter
>>>>>> -Wno-missing-braces -Wno-missing-field-initializers
>>>>>> -Wno-tautological-compare -Wno-sign-compare -Wno-varargs
>>>>>> -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang
>>>>>> $(PLATFORM_FLAGS)
>>>>>>
>>>>>> @@ -3003,7 +3003,7 @@ RELEASE_XCODE5_X64_DLINK_FLAGS = -arch x86_64
>>>>>> -u _$(IMAGE_ENTRY_POINT) -e _
>>>>>> DEBUG_XCODE5_X64_ASM_FLAGS = -arch x86_64 -g
>>>>>>
>>>>>> NOOPT_XCODE5_X64_ASM_FLAGS = -arch x86_64 -g
>>>>>>
>>>>>> RELEASE_XCODE5_X64_ASM_FLAGS = -arch x86_64
>>>>>>
>>>>>> - *_XCODE5_X64_NASM_FLAGS = -f macho64
>>>>>>
>>>>>> + *_XCODE5_X64_NASM_FLAGS = -f macho64 -DRODATA_SECTION_NAME=.rodata
>>>>>>
>>>>>> *_XCODE5_*_PP_FLAGS = -E -x assembler-with-cpp -include AutoGen.h
>>>>>>
>>>>>> *_XCODE5_*_VFRPP_FLAGS = -x c -E -P -DVFRCOMPILE -include
>>>>>> $(MODULE_NAME)StrDefs.h
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> 2.31.1
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>
>>>
>>
>
>
>
>
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#79061): https://edk2.groups.io/g/devel/message/79061
Mute This Topic: https://groups.io/mt/84764902/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-