On 9 September 2015 at 17:33, Ard Biesheuvel <ard.biesheu...@linaro.org> wrote:
> On 9 September 2015 at 17:26, Gao, Liming <liming....@intel.com> wrote:
>> Michael:
>>   Do you use the linker script BaseTools/Scripts/GccBase.lds and -z 
>> common-page-size=4096?
>>
>
> Are you building for 32-bit ARM by any chance? That does not have this
> feature wired up yet. I posted a v2 of my series that addresses this
> yesterday.
>

Forgot to paste the link:
http://thread.gmane.org/gmane.comp.bios.edk2.devel/2037


>> From: Michael Zimmermann [mailto:sigmaepsilo...@gmail.com]
>> Sent: Wednesday, September 9, 2015 3:22 PM
>> To: Yao, Jiewen
>> Cc: Gao, Liming; edk2-devel@lists.01.org
>> Subject: Re: [edk2] Section Alignment of elf binaries compiled with 
>> GCC(Linux)
>>
>> Unfortunately I missed the replies but I debugged this problem further and 
>> the Problem is that GenFw set's the alignment based on "sh_addralign" in the 
>> Elf header.
>>
>> The 'common-page-size' flag doesn't change the value of this field though. 
>> what it does change is the Alignment value of the Program Headers:
>> Program Headers:
>>   Type           Offset   VirtAddr   PhysAddr   FileSiz MemSiz  Flg Align
>>   LOAD           0x010000 0x00000000 0x00000000 0x042f8 0x042f8 R E 0x10000
>>   LOAD           0x0142f8 0x000142f8 0x000142f8 0x000d4 0x000f4 RW  0x10000
>>   GNU_STACK      0x000000 0x00000000 0x00000000 0x00000 0x00000 RWE 0x10
>> the section alignment still stays at 0/1/4.
>>
>> On Tue, Aug 18, 2015 at 4:49 AM, Yao, Jiewen 
>> <jiewen....@intel.com<mailto:jiewen....@intel.com>> wrote:
>> OK
>>
>> -----Original Message-----
>> From: Gao, Liming
>> Sent: Tuesday, August 18, 2015 10:48 AM
>> To: Yao, Jiewen; Michael Zimmermann; 
>> edk2-devel@lists.01.org<mailto:edk2-devel@lists.01.org>
>> Subject: RE: [edk2] Section Alignment of elf binaries compiled with 
>> GCC(Linux)
>>
>> Jiewen:
>>   The updated message is useful. I suggest to change error level from 
>> EFI_D_ERROR to EFI_D_INFO.
>>
>> Thanks
>> Liming
>> -----Original Message-----
>> From: Yao, Jiewen
>> Sent: Tuesday, August 18, 2015 10:46 AM
>> To: Gao, Liming; Michael Zimmermann; 
>> edk2-devel@lists.01.org<mailto:edk2-devel@lists.01.org>
>> Subject: RE: [edk2] Section Alignment of elf binaries compiled with 
>> GCC(Linux)
>>
>> Hi
>> How about we update debug message like below:
>>
>> Index: PropertiesTable.c
>> ===================================================================
>> --- PropertiesTable.c   (revision 18191)
>> +++ PropertiesTable.c   (working copy)
>> @@ -1120,7 +1120,7 @@
>>
>>    SetPropertiesTableSectionAlignment (SectionAlignment);
>>    if ((SectionAlignment & (EFI_ACPI_RUNTIME_PAGE_ALLOCATION_ALIGNMENT - 1)) 
>> != 0) {
>> -    DEBUG ((EFI_D_ERROR, "!!!!!!!!  InsertImageRecord - Section 
>> Alignment(0x%x) is not %dK  !!!!!!!!\n",
>> +    DEBUG ((EFI_D_ERROR, "!!!!!!!!  UEFI2.5 PropertiesTable - Runtime 
>> Driver Section Alignment(0x%x) is not %dK  !!!!!!!!\n",
>>        SectionAlignment, EFI_ACPI_RUNTIME_PAGE_ALLOCATION_ALIGNMENT >> 10));
>>      PdbPointer = PeCoffLoaderGetPdbPointer ((VOID*) (UINTN) ImageAddress);
>>      if (PdbPointer != NULL) {
>>
>>
>>
>>
>> -----Original Message-----
>> From: edk2-devel 
>> [mailto:edk2-devel-boun...@lists.01.org<mailto:edk2-devel-boun...@lists.01.org>]
>>  On Behalf Of Gao, Liming
>> Sent: Tuesday, August 18, 2015 10:39 AM
>> To: Michael Zimmermann; 
>> edk2-devel@lists.01.org<mailto:edk2-devel@lists.01.org>
>> Subject: Re: [edk2] Section Alignment of elf binaries compiled with 
>> GCC(Linux)
>>
>> Hi,
>>   This is a warning message that describes the runtime driver alignment is 
>> not 4K.
>>
>>   UEFI PropertiesTable table feature expects all runtime driver alignment is 
>> 4K. When DxeCore loads Runtime driver, it will check its alignment and 
>> report such warning message if it doesn't meet with the alignment. If you 
>> want to enable this feature, you need to make sure all runtime driver at 4K. 
>> If you don't enable it, you can just ignore this message.
>>
>>   To configure runtime driver with 4K alignment, you can modify DSC file to 
>> add the following section.
>> [BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
>>   GCC:  *_*_*_DLINK_FLAGS = -z common-page-size=0x1000
>>   MSFT: *_*_*_DLINK_FLAGS = /ALIGN:4096
>>
>> Thanks
>> Liming
>> -----Original Message-----
>> From: edk2-devel 
>> [mailto:edk2-devel-boun...@lists.01.org<mailto:edk2-devel-boun...@lists.01.org>]
>>  On Behalf Of Michael Zimmermann
>> Sent: Sunday, August 16, 2015 12:32 PM
>> To: edk2-devel@lists.01.org<mailto:edk2-devel@lists.01.org>
>> Subject: [edk2] Section Alignment of elf binaries compiled with GCC(Linux)
>>
>> When booting(a new device I'm currently working on) I get these warnings:
>> !!!!!!!!  InsertImageRecord - Section Alignment(0x20) is not 4K  !!!!!!!!
>>
>> the warning is raised by "MdeModulePkg/Core/Dxe/Misc/PropertiesTable.c" and 
>> when compiling using GCC from Linux, the SectionAlignment is set by 
>> "BaseTools/Source/C/GenFw/Elf32Convert.c".
>>
>> I checked the resulting binaries using "readpe" and indeed they have a 
>> SectionAlignment of 0x20, while the precompiled binaries like Shell.efi have 
>> a Alignment of 0x1000(4K).
>>
>> So, is this a bug of my GCC compiler or of EDK2?
>> _______________________________________________
>> edk2-devel mailing list
>> edk2-devel@lists.01.org<mailto:edk2-devel@lists.01.org>
>> https://lists.01.org/mailman/listinfo/edk2-devel
>> _______________________________________________
>> edk2-devel mailing list
>> edk2-devel@lists.01.org<mailto:edk2-devel@lists.01.org>
>> https://lists.01.org/mailman/listinfo/edk2-devel
>>
>> _______________________________________________
>> edk2-devel mailing list
>> edk2-devel@lists.01.org
>> https://lists.01.org/mailman/listinfo/edk2-devel
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to