Laszlo:
  New changes:

1.       Yes. nasm is listed first in BUILDRULEORDER so nasm source file will 
be used.

3.       The files in MdePkg are auto converted. Most of the files in other 
packages manually are updated. They are updated based on the auto converted 
version.

 Verification

1.       I compile .asm and .nasm source, and use VS dumpbin tool to dump the 
obj file to compare the disassembly code.

  Yes. I give the example here for window users. Most linux user doesn't need 
to configure NASM_PREFIX, because nasm is in system PATH.

Thanks
Liming
From: Laszlo Ersek [mailto:ler...@redhat.com]
Sent: Saturday, June 18, 2016 5:51 AM
To: Gao, Liming <liming....@intel.com>; edk2-de...@ml01.01.org
Cc: Justen, Jordan L <jordan.l.jus...@intel.com>
Subject: Re: [edk2] [Patch 000/351] Convert EDK II core packages to NASM for 
IA32/X64

On 06/16/16 03:46, Liming Gao wrote:
> These patches are available in https://github.com/lgao4/edk2.git nasm-v1.
> The nasm-v1 branch sha1 is 42bec457c575b6cb7c9fc1730cbea263ffce7b1c
>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Liming Gao
> Signed-off-by: Jordan Justen
>
> These patches base on previous patches in
> http://thread.gmane.org/gmane.comp.bios.tianocore.devel/10977.
> New changes in these patches includes:
> 1. Keep ASM, GAS and NASM all. User can configure BUILDRULEORDER to specify
> which one will be used.

The current catch-all rule seems to be

Conf/tools_def.template:*_*_*_*_BUILDRULEORDER = nasm asm Asm ASM S s

I guess that should continue working for me, right?

> 2. Add NASM in new modules from UefiCpuPkg, IntelFsp2Pkg and 
> IntelFsp2WrapperPkg.
> 3. Use 16bit and 32bit assembly code to replace hard code db.

This last step looks pretty error prone -- was this automated, or
converted manually?

> The done test includes:
> 1. Verify the output obj file from ASM and NASM to make sure the output obj
> have the same disassembly code.

OTOH, binary comparison should make it pretty safe.

> 2. Verify OvmfIa32X64 boot to Shell on VS2015x86.
> 3. Verify OVMF X64 when booting to arch linux, and with S3 suspend/resume.
>
> These patches convert these package to use NASM for IA32 & X64
> * MdePkg
> * MdeModulePkg
> * IntelFrameworkModulePkg
> * UefiCpuPkg
> * SourceLevelDebugPkg
> * PcAtChipsetPkg
> * IntelFsp2Pkg
> * IntelFsp2WrapperPkg
>
> Package maintainers: Could you help review and verify your package? If you 
> find
> any issues, please let us know.

I'm adding this to my TODO list. Hopefully I can play a little with this
next week.

Just to make sure, the above BUILDRULEORDER should ensure that the new
NASM files will be utilized in my build, right?

> Notes: these patches will cause NASM compiler to be required for all IA32 and 
> X64
> toolchains with the default tool configuration.
> NASM compiler can be downloaded from http://www.nasm.us/
> After download it, please configure NASM_PREFIX env to point to its directory.
> For example, I place nasm.exe in C:\nasm directory, then set 
> NASM_PREFIX=C:\nasm\

(I think this advice is Windows-specific; for me the "nasm" binary is
simply on PATH -- /usr/bin/nasm.)

Thanks!
Laszlo
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to