The local variable PpiArray[10] is declared in middle of the SEC module _ModuleEntryPoint(). When building for XCODE5 with optimizations enabled, this results in corruption and an exception. The fix is to move the declaration of PpiArray[10] to the standard location at the beginning of the function so the storage for this local variable is allocated for the entire lifetime of the function.
Cc: Jordan Justen <jordan.l.jus...@intel.com> Cc: Ray Ni <ray...@intel.com> Cc: Michael D Kinney <michael.d.kin...@intel.com> Signed-off-by: Andrew Fish <af...@apple.com> --- EmulatorPkg/Sec/Sec.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/EmulatorPkg/Sec/Sec.c b/EmulatorPkg/Sec/Sec.c index 701032233b..b734d2bb87 100644 --- a/EmulatorPkg/Sec/Sec.c +++ b/EmulatorPkg/Sec/Sec.c @@ -75,6 +75,7 @@ _ModuleEntryPoint ( EFI_PEI_PPI_DESCRIPTOR *SecPpiList; UINTN SecReseveredMemorySize; UINTN Index; + EFI_PEI_PPI_DESCRIPTOR PpiArray[10]; EMU_MAGIC_PAGE()->PpiList = PpiList; ProcessLibraryConstructorList (); @@ -104,16 +105,13 @@ _ModuleEntryPoint ( SecCoreData->PeiTemporaryRamBase = (VOID *)((UINTN)SecCoreData->PeiTemporaryRamBase + SecReseveredMemorySize); SecCoreData->PeiTemporaryRamSize -= SecReseveredMemorySize; #else - { - // - // When I subtrack from SecCoreData->PeiTemporaryRamBase PEI Core crashes? Either there is a bug - // or I don't understand temp RAM correctly? - // - EFI_PEI_PPI_DESCRIPTOR PpiArray[10]; + // + // When I subtrack from SecCoreData->PeiTemporaryRamBase PEI Core crashes? Either there is a bug + // or I don't understand temp RAM correctly? + // - SecPpiList = &PpiArray[0]; - ASSERT (sizeof (PpiArray) >= SecReseveredMemorySize); - } + SecPpiList = &PpiArray[0]; + ASSERT (sizeof (PpiArray) >= SecReseveredMemorySize); #endif // Copy existing list, and append our entries. CopyMem (SecPpiList, PpiList, sizeof (EFI_PEI_PPI_DESCRIPTOR) * Index); -- 2.21.0.windows.1 -=-=-=-=-=-=-=-=-=-=-=- Groups.io Links: You receive all messages sent to this group. View/Reply Online (#45767): https://edk2.groups.io/g/devel/message/45767 Mute This Topic: https://groups.io/mt/32894354/21656 Group Owner: devel+ow...@edk2.groups.io Unsubscribe: https://edk2.groups.io/g/devel/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-