> On May 11, 2016, at 11:45 PM, Meenakshi Aggarwal <[email protected]>
> wrote:
>
> Hi,
>
> I am working on a 64 bit arm based SoC.
>
> I am uprev'ing my edk2 code base to latest master branch:
> Commit id - ce1647fc608e8193b416a08da633019de611199c
>
>
> I am able to compile my code successfully in DEBUG mode but in RELEASE mode I
> am facing following error:
>
>
> Building ...
> /home/tools/meenakshi/edk2/LS2080aRdbPkg/Library/LS2080aPrePi/PeiMPCore.inf
> [AARCH64]
> "aarch64-linux-gnu-ld" -o
> /home/tools/meenakshi/edk2/Build/LS2080aRdb/RELEASE_GCC48/AARCH64/LS2080aRdbPkg/Library/LS2080aPrePi/PeiMPCore/DEBUG/ArmPlatformPrePiMPCore.dll
> --emit-relocs -nostdlib --gc-sections -u _ModuleEntryPoint -e
> _ModuleEntryPoint -Map
> /home/tools/meenakshi/edk2/Build/LS2080aRdb/RELEASE_GCC48/AARCH64/LS2080aRdbPkg/Library/LS2080aPrePi/PeiMPCore/DEBUG/ArmPlatformPrePiMPCore.map
> -z common-page-size=0x20 --start-group
> @/home/tools/meenakshi/edk2/Build/LS2080aRdb/RELEASE_GCC48/AARCH64/LS2080aRdbPkg/Library/LS2080aPrePi/PeiMPCore/OUTPUT/static_library_files.lst
> --end-group
> --script=/home/tools/meenakshi/edk2/BaseTools/Scripts/GccBase.lds
> --defsym=PECOFF_HEADER_SIZE=0x228
> /home/tools/meenakshi/edk2/Build/LS2080aRdb/RELEASE_GCC48/AARCH64/MdePkg/Library/BasePrintLib/BasePrintLib/OUTPUT/BasePrintLib.lib(PrintLib.obj):
> In function `AsciiVSPrint':
> /home/tools/meenakshi/edk2/MdePkg/Library/BasePrintLib/PrintLib.c:415:
> undefined reference to `memcpy'
> /home/tools/meenakshi/edk2/Build/LS2080aRdb/RELEASE_GCC48/AARCH64/EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib/OUTPUT/PrePiExtractGuidedSectionLib.lib(PrePiExtractGuidedSectionLib.obj):
> In function `GetSavedData':
> /home/tools/meenakshi/edk2/EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.c:37:
> undefined reference to `memcpy'
> /home/tools/meenakshi/edk2/Build/LS2080aRdb/RELEASE_GCC48/AARCH64/EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib/OUTPUT/PrePiExtractGuidedSectionLib.lib(PrePiExtractGuidedSectionLib.obj):
> In function `ExtractGuidedSectionLibConstructor':
> /home/tools/meenakshi/edk2/EmbeddedPkg/Library/PrePiExtractGuidedSectionLib/PrePiExtractGuidedSectionLib.c:219:
> undefined reference to `memcpy'
> make: ***
> [/home/tools/meenakshi/edk2/Build/LS2080aRdb/RELEASE_GCC48/AARCH64/LS2080aRdbPkg/Library/LS2080aPrePi/PeiMPCore/DEBUG/ArmPlatformPrePiMPCore.dll]
> Error 1
>
This looks like a bug. The edk2 does not provide memcpy(), and the compiler
will sometime generate a memcpy() call for an assignment that > 64 bits. It
kind of all depends on what the optimizer does.
The error points to a GUID being assigned with =, and sizeof(GUID) == 16.
PRE_PI_EXTRACT_GUIDED_SECTION_DATA *
GetSavedData (
VOID
)
{
EFI_HOB_GUID_TYPE *GuidHob;
GUID SavedDataGuid = PRE_PI_EXTRACT_GUIDED_SECTION_DATA_GUID;
I would guess if you make SavedDataGuid static, or global the issue will go
away.
Thanks,
Andrew Fish
>
> Please help what I am missing in my board package, some header file or
> library or anything else.
> I tried compiling it with both AARCH64 toolchains gcc-4.8 and gcc-4.9, but no
> gain.
>
> Thanks,
> Meenakshi
>
>
> _______________________________________________
> 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