[edk2] Undefined symbols AsmCpuid, AsmReadCr0 etc. when building OvmfPkgX64 on FreeBSD

Rebecca Cran rebecca at bluestop.org
Sat Dec 22 14:19:11 PST 2018


While the RELEASE build of OvmfPkgX64 works fine, the DEBUG build is failing with undefined symbols AsmCpuid etc. when building on my FreeBSD 13-CURRENT system.
I’m trying to build git revision 559a07d84e5af3db09ae91844e4cb924b8f60668 (from Thu Dec 13 16:48:44 2018 -0700).
I’m building with gcc 7.4, running the command:

build -p OvmfPkg/OvmfPkgX64.dsc -t GCC5 -b DEBUG -a X64

The last few lines of output are:


"gcc" -o /home/bcran/workspace/edk2/Build/OvmfX64/DEBUG_GCC5/X64/IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe/DEBUG/Ps2KeyboardDxe.dll -nostdlib -Wl,-n,-q,--gc-sections -z common-page-size=0x40 -Wl,--entry,_ModuleEntryPoint -u _ModuleEntryPoint -Wl,-Map,/home/bcran/workspace/edk2/Build/OvmfX64/DEBUG_GCC5/X64/IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe/DEBUG/Ps2KeyboardDxe.map,--whole-archive -Wl,-melf_x86_64,--oformat=elf64-x86-64,-pie -flto -Os -Wl,--start-group,@/home/bcran/workspace/edk2/Build/OvmfX64/DEBUG_GCC5/X64/IntelFrameworkModulePkg/Bus/Isa/Ps2KeyboardDxe/Ps2keyboardDxe/OUTPUT/static_library_files.lst,--end-group -g -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror -Wno-array-bounds -ffunction-sections -fdata-sections -include AutoGen.h -fno-common -DSTRING_ARRAY_NAME=Ps2KeyboardDxeStrings -m64 -fno-stack-protector "-DEFIAPI=__attribute__((ms_abi))" -maccumulate-outgoing-args -mno-red-zone -Wno-address -mcmodel=small -fpie -fno-asynchronous-unwind-tables -Wno-address -flto -DUSING_LTO -Os -mno-mmx -mno-sse -D DISABLE_NEW_DEPRECATED_INTERFACES -Wl,--defsym=PECOFF_HEADER_SIZE=0x228 -Wl,--script=/home/bcran/workspace/edk2/BaseTools/Scripts/GccBase.lds -Wno-error
Building ... /home/bcran/workspace/edk2/PcAtChipsetPkg/IsaAcpiDxe/IsaAcpi.inf [X64]
make: Nothing to be done for 'tbuild'.
Building ... /home/bcran/workspace/edk2/MdeModulePkg/Library/FrameBufferBltLib/FrameBufferBltLib.inf [X64]
Building ... /home/bcran/workspace/edk2/MdeModulePkg/Universal/MemoryTest/NullMemoryTestDxe/NullMemoryTestDxe.inf [X64]
make: Nothing to be done for 'tbuild'.
make: Nothing to be done for 'tbuild'.
make: Nothing to be done for 'tbuild'.
Building ... /home/bcran/workspace/edk2/MdeModulePkg/Library/CustomizedDisplayLib/CustomizedDisplayLib.inf [X64]
/tmp//ccVNNewx.ltrans0.ltrans.o: In function `GetMemEncryptionAddressMask':
Building ... /home/bcran/workspace/edk2/MdeModulePkg/Universal/HiiDatabaseDxe/HiiDatabaseDxe.inf [X64]
/home/bcran/workspace/edk2/OvmfPkg/Library/BaseMemEncryptSevLib/X64/VirtualMemory.c:57: undefined reference to `AsmCpuid'
/tmp//ccVNNewx.ltrans0.ltrans.o: In function `WriteBackInvalidateDataCacheRange':
/home/bcran/workspace/edk2/MdePkg/Library/BaseCacheMaintenanceLib/X86Cache.c:141: undefined reference to `AsmCpuid'
/home/bcran/workspace/edk2/MdePkg/Library/BaseCacheMaintenanceLib/X86Cache.c:143: undefined reference to `AsmWbinvd'
/home/bcran/workspace/edk2/MdePkg/Library/BaseCacheMaintenanceLib/X86Cache.c:160: undefined reference to `AsmFlushCacheLine'
make: Nothing to be done for 'tbuild'.
/tmp//ccVNNewx.ltrans0.ltrans.o: In function `IsReadOnlyPageWriteProtected':
make: Nothing to be done for 'tbuild'.
/home/bcran/workspace/edk2/OvmfPkg/Library/BaseMemEncryptSevLib/X64/VirtualMemory.c:521: undefined reference to `AsmReadCr0'
/tmp//ccVNNewx.ltrans0.ltrans.o: In function `DisableReadOnlyPageWriteProtect':
/home/bcran/workspace/edk2/OvmfPkg/Library/BaseMemEncryptSevLib/X64/VirtualMemory.c:534: undefined reference to `AsmReadCr0'
Building ... /home/bcran/workspace/edk2/MdeModulePkg/Bus/Pci/NvmExpressDxe/NvmExpressDxe.inf [X64]
/home/bcran/workspace/edk2/OvmfPkg/Library/BaseMemEncryptSevLib/X64/VirtualMemory.c:534: undefined reference to `AsmWriteCr0'
/tmp//ccVNNewx.ltrans0.ltrans.o: In function `SetMemoryEncDec':
/home/bcran/workspace/edk2/OvmfPkg/Library/BaseMemEncryptSevLib/X64/VirtualMemory.c:655: undefined reference to `AsmReadCr3'
/tmp//ccVNNewx.ltrans0.ltrans.o: In function `EnableReadOnlyPageWriteProtect':
/home/bcran/workspace/edk2/OvmfPkg/Library/BaseMemEncryptSevLib/X64/VirtualMemory.c:545: undefined reference to `AsmReadCr0'
/home/bcran/workspace/edk2/OvmfPkg/Library/BaseMemEncryptSevLib/X64/VirtualMemory.c:545: undefined reference to `AsmWriteCr0'
/tmp//ccVNNewx.ltrans0.ltrans.o: In function `InternalMemEncryptSevIsEnabled':
/home/bcran/workspace/edk2/OvmfPkg/Library/BaseMemEncryptSevLib/MemEncryptSevLibInternal.c:52: undefined reference to `AsmCpuid'
/home/bcran/workspace/edk2/OvmfPkg/Library/BaseMemEncryptSevLib/MemEncryptSevLibInternal.c:57: undefined reference to `AsmCpuid'
/tmp//ccVNNewx.ltrans0.ltrans.o: In function `AsmReadMsr32':
/home/bcran/workspace/edk2/MdePkg/Library/BaseLib/X86Msr.c:39: undefined reference to `AsmReadMsr64'
collect2: error: ld returned 1 exit status
make: *** [GNUmakefile:397: /home/bcran/workspace/edk2/Build/OvmfX64/DEBUG_GCC5/X64/OvmfPkg/AmdSevDxe/AmdSevDxe/DEBUG/AmdSevDxe.dll] Error 1


— 
Rebecca


More information about the edk2-devel mailing list