Got you, I need verify this change with native GCC tool chain. After verified, then I will help check it in.
Thanks Feng From: Andrew Fish [mailto:af...@apple.com] Sent: Wednesday, January 16, 2013 13:36 To: edk2-devel@lists.sourceforge.net Subject: Re: [edk2] [Patch] MdeModulePkg: Fix Xcode assembly issue On Jan 15, 2013, at 9:20 PM, "Tian, Feng" <feng.t...@intel.com<mailto:feng.t...@intel.com>> wrote: Hi, Andrew Which case will have to do this change? If the file format needs a relocation entry, what it will impact? It breaks Xcode for X64. "as" -arch x86_64 -g -o /Users/fish/work/edk2TOT/Build/OvmfX64/DEBUG_XCLANG/X64/OvmfPkg/Library/LoadLinuxLib/LoadLinuxLib/OUTPUT/X64/JumpToKernel.obj -I/Users/fish/work/edk2TOT/OvmfPkg/Library/LoadLinuxLib/X64 -I/Users/fish/work/edk2TOT/OvmfPkg/Library/LoadLinuxLib -I/Users/fish/work/edk2TOT/Build/OvmfX64/DEBUG_XCLANG/X64/OvmfPkg/Library/LoadLinuxLib/LoadLinuxLib/DEBUG -I/Users/fish/work/edk2TOT/MdePkg -I/Users/fish/work/edk2TOT/MdePkg/Include -I/Users/fish/work/edk2TOT/MdePkg/Include/X64 -I/Users/fish/work/edk2TOT/OvmfPkg -I/Users/fish/work/edk2TOT/OvmfPkg/Include /Users/fish/work/edk2TOT/Build/OvmfX64/DEBUG_XCLANG/X64/OvmfPkg/Library/LoadLinuxLib/LoadLinuxLib/OUTPUT/X64/JumpToKernel.iii /Users/fish/work/edk2TOT/Build/OvmfX64/DEBUG_XCLANG/X64/OvmfPkg/Library/LoadLinuxLib/LoadLinuxLib/OUTPUT/X64/JumpToKernel.iii:34:32-bit absolute addressing is not supported for x86-64 /Users/fish/work/edk2TOT/Build/OvmfX64/DEBUG_XCLANG/X64/OvmfPkg/Library/LoadLinuxLib/LoadLinuxLib/OUTPUT/X64/JumpToKernel.iii:34:cannot do signed 4 byte relocation The Xcode assembler is more focused on supporting the complier than humans writing assembler, so not all the features are support. If you think about it a 64-bit address is quite large. A %RIP relative address can be encoded in a much smaller space lea 20(%rip), %eax can be encoded in a much smaller instruction and it does not take up a relocation in the PE/COFF image. So I think clang does %RIP relative addressing for X64 vs. encoding 64-bit absolute addressees. Thanks, Andrew Fish Thanks Feng From: Andrew Fish [mailto:af...@apple.com<http://apple.com>] Sent: Wednesday, January 16, 2013 05:58 To: edk2-devel@lists.sourceforge.net<mailto:edk2-devel@lists.sourceforge.net> Subject: [edk2] [Patch] MdeModulePkg: Fix Xcode assembly issue Dear MdeModulePkg maintainer, Please review this patch that is required to make this file assemble and link with Xcode. It replaces absolute addressing that requires a relocation entry with PC relative addressing that does not require a relocation entry. Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: af...@apple.com<mailto:af...@apple.com> svn diff --diff-cmd diff Universal/Acpi/BootScriptExecutorDxe/X64/S3Asm.S Index: Universal/Acpi/BootScriptExecutorDxe/X64/S3Asm.S =================================================================== --- Universal/Acpi/BootScriptExecutorDxe/X64/S3Asm.S (revision 14050) +++ Universal/Acpi/BootScriptExecutorDxe/X64/S3Asm.S (working copy) @@ -18,14 +18,14 @@ ASM_PFX(AsmTransferControl): # rcx S3WakingVector :DWORD # rdx AcpiLowMemoryBase :DWORD - lea _AsmTransferControl_al_0000, %eax + lea _AsmTransferControl_al_0000(%rip), %eax movq $0x2800000000, %r8 orq %r8, %rax pushq %rax shrd $20, %ecx, %ebx andl $0x0f, %ecx movw %cx, %bx - movl %ebx, jmp_addr + movl %ebx, jmp_addr(%rip) lret _AsmTransferControl_al_0000: .byte 0x0b8, 0x30, 0 # mov ax, 30h as selector @@ -124,7 +124,7 @@ popq %rcx popq %rax # restore all volatile registers jnz L1 - jmpq *ASM_PFX(mOriginalHandler) + jmpq *ASM_PFX(mOriginalHandler)(%rip) L1: addq $0x08, %rsp # skip error code for PF iretq Andrew Fish ------------------------------------------------------------------------------ Master Java SE, Java EE, Eclipse, Spring, Hibernate, JavaScript, jQuery and much more. Keep your Java skills current with LearnJavaNow - 200+ hours of step-by-step video tutorials by Java experts. SALE $49.99 this month only -- learn more at: http://p.sf.net/sfu/learnmore_122612 _______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net<mailto:edk2-devel@lists.sourceforge.net> https://lists.sourceforge.net/lists/listinfo/edk2-devel
------------------------------------------------------------------------------ Master Java SE, Java EE, Eclipse, Spring, Hibernate, JavaScript, jQuery and much more. Keep your Java skills current with LearnJavaNow - 200+ hours of step-by-step video tutorials by Java experts. SALE $49.99 this month only -- learn more at: http://p.sf.net/sfu/learnmore_122612
_______________________________________________ edk2-devel mailing list edk2-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/edk2-devel