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 <[email protected]> wrote:

> OK
>
> -----Original Message-----
> From: Gao, Liming
> Sent: Tuesday, August 18, 2015 10:48 AM
> To: Yao, Jiewen; Michael Zimmermann; [email protected]
> 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; [email protected]
> 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:[email protected]] On Behalf Of
> Gao, Liming
> Sent: Tuesday, August 18, 2015 10:39 AM
> To: Michael Zimmermann; [email protected]
> 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:[email protected]] On Behalf Of
> Michael Zimmermann
> Sent: Sunday, August 16, 2015 12:32 PM
> To: [email protected]
> 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
> [email protected]
> https://lists.01.org/mailman/listinfo/edk2-devel
> _______________________________________________
> edk2-devel mailing list
> [email protected]
> https://lists.01.org/mailman/listinfo/edk2-devel
>
_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to