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

2018-12-26 Thread Laszlo Ersek
On 12/22/18 23:19, Rebecca Cran via edk2-devel wrote:
> 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 

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

2018-12-22 Thread Rebecca Cran via edk2-devel
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
___