Hi Olivier,
I've just noticed that the upstream EDK2 repository for the FVP AEMv8 model is broken when built with Linaro GCC 13.12 onwards.
The error I see is:
UEFI firmware (version built at 14:54:24 on Feb 21 2014) add-symbol-file /linaro/uefi/master/upstream/edk2.git/Build/ArmVExpress-FVP-AArch64/DEBUG_ARMGCC/AARCH64/ArmPlatformPkg/PrePi/PeiMPCore/DEBUG/ArmPlatformPrePiMPCore.dll 0x88000780 Decompress Failed - Not Found
ASSERT_EFI_ERROR (Status = Not Found) ASSERT /linaro/uefi/master/upstream/edk2.git/ArmPlatformPkg/PrePi/PrePi.c(194): !EFI_ERROR (Status)
I've tracked the bug as far as function "FfsProcessSection" [1] where at line 373, it calls into function "ExtractGuidedSectionDecode" [2] which then calls into "SavedData->ExtractDecodeHandlerTable [Index]". At that point, I can't work out where it goes.
I can "fix" the problem if I re-org the variables at the top of FfsProcessSection so that DstBuffer is at the start of the declarations. That is obviously not a fix. But it will probably hint at why the subsequent code is broken.
Cheers, Ryan
[1] EmbeddedPkg/Library/PrePiLib/FwVol.c, line 285 [2] EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.c:166