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 <af...@apple.com>
CC: Laszlo Ersek <ler...@redhat.com>
CC: Marvin Häuser <mhaeu...@outlook.de>
Signed-off-by: Vitaly Cheptsov <vit9...@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(-)

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

 

 
################################################################################

 #

-- 
2.24.1 (Apple Git-126)


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

View/Reply Online (#56559): https://edk2.groups.io/g/devel/message/56559
Mute This Topic: https://groups.io/mt/72629399/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to