[edk2-devel] [PATCH 1/1] OvmfPkg: Fix SMM/RT driver section alignment for XCODE5/CLANGPDB

Laszlo Ersek lersek at redhat.com
Mon Mar 30 11:37:22 UTC 2020


On 03/29/20 15:21, Vitaly Cheptsov wrote:
> REF: https://bugzilla.tianocore.org/show_bug.cgi?id=2642
> 
> This patch resolves the problem of using memory protection
> attributes when OVMF firmware is compiled with XCODE5 and CLANGPDB.
> 
> CC: Andrew Fish <afish at apple.com>
> CC: Laszlo Ersek <lersek at redhat.com>
> CC: Marvin Häuser <mhaeuser at outlook.de>
> Signed-off-by: Vitaly Cheptsov <vit9696 at protonmail.com>
> ---
>  OvmfPkg/OvmfPkgIa32.dsc    | 6 ++++--
>  OvmfPkg/OvmfPkgIa32X64.dsc | 6 ++++--
>  OvmfPkg/OvmfPkgX64.dsc     | 6 ++++--
>  OvmfPkg/OvmfXen.dsc        | 8 ++++++--
>  4 files changed, 18 insertions(+), 8 deletions(-)

This patch is an update on TianoCore#559 / commit 01e9597540fa
("OvmfPkg: Add XCODE5 statements to fix build break", 2017-05-19).

I'd like Mike and/or Liming to ACK this patch (I don't use either XCODE
or CLANGPDB, and the patches related to those toolchains seem to have
come from Liming and Mike mainly).

Afterwards, I'm happy to push this patch:

Acked-by: Laszlo Ersek <lersek at redhat.com>

Thanks
Laszlo


> diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc
> index 19728f20b3..0aba200c2d 100644
> --- a/OvmfPkg/OvmfPkgIa32.dsc
> +++ b/OvmfPkg/OvmfPkgIa32.dsc
> @@ -80,14 +80,16 @@ [BuildOptions]
>  
>  [BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
>    GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000
> -  XCODE:*_*_*_DLINK_FLAGS =
> +  XCODE:*_*_*_DLINK_FLAGS = -seg1addr 0x1000 -segalign 0x1000
> +  XCODE:*_*_*_MTOC_FLAGS = -align 0x1000
>    CLANGPDB:*_*_*_DLINK_FLAGS = /ALIGN:4096
>  
>  # Force PE/COFF sections to be aligned at 4KB boundaries to support page level
>  # protection of DXE_SMM_DRIVER/SMM_CORE modules
>  [BuildOptions.common.EDKII.DXE_SMM_DRIVER, BuildOptions.common.EDKII.SMM_CORE]
>    GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000
> -  XCODE:*_*_*_DLINK_FLAGS =
> +  XCODE:*_*_*_DLINK_FLAGS = -seg1addr 0x1000 -segalign 0x1000
> +  XCODE:*_*_*_MTOC_FLAGS = -align 0x1000
>    CLANGPDB:*_*_*_DLINK_FLAGS = /ALIGN:4096
>  
>  ################################################################################
> diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc
> index 3c0c229e3a..eca70d64c3 100644
> --- a/OvmfPkg/OvmfPkgIa32X64.dsc
> +++ b/OvmfPkg/OvmfPkgIa32X64.dsc
> @@ -85,14 +85,16 @@ [BuildOptions]
>  
>  [BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
>    GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000
> -  XCODE:*_*_*_DLINK_FLAGS =
> +  XCODE:*_*_*_DLINK_FLAGS = -seg1addr 0x1000 -segalign 0x1000
> +  XCODE:*_*_*_MTOC_FLAGS = -align 0x1000
>    CLANGPDB:*_*_*_DLINK_FLAGS = /ALIGN:4096
>  
>  # Force PE/COFF sections to be aligned at 4KB boundaries to support page level
>  # protection of DXE_SMM_DRIVER/SMM_CORE modules
>  [BuildOptions.common.EDKII.DXE_SMM_DRIVER, BuildOptions.common.EDKII.SMM_CORE]
>    GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000
> -  XCODE:*_*_*_DLINK_FLAGS =
> +  XCODE:*_*_*_DLINK_FLAGS = -seg1addr 0x1000 -segalign 0x1000
> +  XCODE:*_*_*_MTOC_FLAGS = -align 0x1000
>    CLANGPDB:*_*_*_DLINK_FLAGS = /ALIGN:4096
>  
>  ################################################################################
> diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc
> index f6c1d8d228..676d0ed9a6 100644
> --- a/OvmfPkg/OvmfPkgX64.dsc
> +++ b/OvmfPkg/OvmfPkgX64.dsc
> @@ -85,14 +85,16 @@ [BuildOptions]
>  
>  [BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
>    GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000
> -  XCODE:*_*_*_DLINK_FLAGS =
> +  XCODE:*_*_*_DLINK_FLAGS = -seg1addr 0x1000 -segalign 0x1000
> +  XCODE:*_*_*_MTOC_FLAGS = -align 0x1000
>    CLANGPDB:*_*_*_DLINK_FLAGS = /ALIGN:4096
>  
>  # Force PE/COFF sections to be aligned at 4KB boundaries to support page level
>  # protection of DXE_SMM_DRIVER/SMM_CORE modules
>  [BuildOptions.common.EDKII.DXE_SMM_DRIVER, BuildOptions.common.EDKII.SMM_CORE]
>    GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000
> -  XCODE:*_*_*_DLINK_FLAGS =
> +  XCODE:*_*_*_DLINK_FLAGS = -seg1addr 0x1000 -segalign 0x1000
> +  XCODE:*_*_*_MTOC_FLAGS = -align 0x1000
>    CLANGPDB:*_*_*_DLINK_FLAGS = /ALIGN:4096
>  
>  ################################################################################
> diff --git a/OvmfPkg/OvmfXen.dsc b/OvmfPkg/OvmfXen.dsc
> index 5751ff1f03..783bac3e8b 100644
> --- a/OvmfPkg/OvmfXen.dsc
> +++ b/OvmfPkg/OvmfXen.dsc
> @@ -82,13 +82,17 @@ [BuildOptions]
>  
>  [BuildOptions.common.EDKII.DXE_RUNTIME_DRIVER]
>    GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000
> -  XCODE:*_*_*_DLINK_FLAGS =
> +  XCODE:*_*_*_DLINK_FLAGS = -seg1addr 0x1000 -segalign 0x1000
> +  XCODE:*_*_*_MTOC_FLAGS = -align 0x1000
> +  CLANGPDB:*_*_*_DLINK_FLAGS = /ALIGN:4096
>  
>  # Force PE/COFF sections to be aligned at 4KB boundaries to support page level
>  # protection of DXE_SMM_DRIVER/SMM_CORE modules
>  [BuildOptions.common.EDKII.DXE_SMM_DRIVER, BuildOptions.common.EDKII.SMM_CORE]
>    GCC:*_*_*_DLINK_FLAGS = -z common-page-size=0x1000
> -  XCODE:*_*_*_DLINK_FLAGS =
> +  XCODE:*_*_*_DLINK_FLAGS = -seg1addr 0x1000 -segalign 0x1000
> +  XCODE:*_*_*_MTOC_FLAGS = -align 0x1000
> +  CLANGPDB:*_*_*_DLINK_FLAGS = /ALIGN:4096
>  
>  ################################################################################
>  #
> 


-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#56625): https://edk2.groups.io/g/devel/message/56625
Mute This Topic: https://groups.io/mt/72629399/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-





More information about the edk2-devel-archive mailing list