From: "Ard Biesheuvel" <ardb@kernel.org>
To: devel@edk2.groups.io, quic_rcran@quicinc.com
Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>,
Jiewen Yao <jiewen.yao@intel.com>,
Jordan Justen <jordan.l.justen@intel.com>,
Gerd Hoffmann <kraxel@redhat.com>
Subject: Re: [edk2-devel] OvmfPkgX64: PlatformInitLib.lib(IntelTdx.obj): in function `ValidateHobList': undefined reference to `memcpy' (CLANG38 NOOPT)
Date: Thu, 22 Sep 2022 23:32:37 +0200 [thread overview]
Message-ID: <CAMj1kXG3ha-1WVO43aRzRBEiDKXkfwqX0Lns4Ve=DAxOv5osEQ@mail.gmail.com> (raw)
In-Reply-To: <79e3b3db-3ceb-e184-6138-80aa195c1347@quicinc.com>
On Thu, 22 Sept 2022 at 23:12, Rebecca Cran <quic_rcran@quicinc.com> wrote:
>
> I just noticed that edk2 master seems broken when building OvmfPkgX64.dsc with -t CLANG38 -b NOOPT (using Debian clang version 11.0.1-2).
>
> "clang" -o
> /home/rcran/src/upstream/uefi/edk2/Build/OvmfX64/NOOPT_CLANG38/X64/MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe/DEBUG/DiskIoDxe.dll
> -nostdlib -Wl,-n,-q,--gc-sections -z common-page-size=0x40
> -Wl,--entry,_ModuleEntryPoint -u _ModuleEntryPoint
> -Wl,-Map,/home/rcran/src/upstream/uefi/edk2/Build/OvmfX64/NOOPT_CLANG38/X64/MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe/DEBUG/DiskIoDxe.map,--whole-archive
> -Wl,-O0 -Wl,-melf_x86_64 -Wl,--oformat=elf64-x86-64 -Wl,-pie
> -mcmodel=small
> -Wl,--start-group,@/home/rcran/src/upstream/uefi/edk2/Build/OvmfX64/NOOPT_CLANG38/X64/MdeModulePkg/Universal/Disk/DiskIoDxe/DiskIoDxe/OUTPUT/static_library_files.lst,--end-group
> -g -Os -fshort-wchar -fno-builtin -fno-strict-aliasing -Wall -Werror
> -Wno-array-bounds -include AutoGen.h -fno-common -ffunction-sections
> -fdata-sections -DSTRING_ARRAY_NAME=DiskIoDxeStrings
> -Wno-parentheses-equality -Wno-tautological-compare
> -Wno-tautological-constant-out-of-range-compare -Wno-empty-body
> -Wno-unused-const-variable -Wno-varargs -Wno-unknown-warning-option
> -Wno-unused-but-set-variable -Wno-unused-const-variable
> -fno-stack-protector -mms-bitfields -Wno-address
> -Wno-shift-negative-value -Wno-unknown-pragmas
> -Wno-incompatible-library-redeclaration -fno-asynchronous-unwind-tables
> -mno-sse -mno-mmx -msoft-float -mno-implicit-float
> -ftrap-function=undefined_behavior_has_been_optimized_away_by_clang
> -funsigned-char -fno-ms-extensions -Wno-null-dereference -m64
> "-DEFIAPI=__attribute__((ms_abi))" -mno-red-zone -mcmodel=small -fpie
> -O0 -target x86_64-pc-linux-gnu -g -mno-mmx -mno-sse -D
> DISABLE_NEW_DEPRECATED_INTERFACES -D TDX_GUEST_SUPPORTED -D
> ENABLE_MD5_DEPRECATED_INTERFACES -Wl,--defsym=PECOFF_HEADER_SIZE=0x228
> -Wl,--script=/home/rcran/src/upstream/uefi/edk2/BaseTools/Scripts/GccBase.lds
> -Wno-error -O0
> /usr/bin/ld:
> /home/rcran/src/upstream/uefi/edk2/Build/OvmfX64/NOOPT_CLANG38/X64/OvmfPkg/Library/PlatformInitLib/PlatformInitLib/OUTPUT/PlatformInitLib.lib(IntelTdx.obj):
> in function `ValidateHobList':
> /home/rcran/src/upstream/uefi/edk2/OvmfPkg/Library/PlatformInitLib/IntelTdx.c:191:
> undefined reference to `memcpy'
>
Hello Rebecca,
This appears to be due to the use of initializers for the arrays.
Could you please check if the patch below makes the issue go away?
diff --git a/OvmfPkg/Library/PlatformInitLib/IntelTdx.c
b/OvmfPkg/Library/PlatformInitLib/IntelTdx.c
index c6d7c8bb6e0e..0e0e13343b16 100644
--- a/OvmfPkg/Library/PlatformInitLib/IntelTdx.c
+++ b/OvmfPkg/Library/PlatformInitLib/IntelTdx.c
@@ -153,7 +153,7 @@ BOOLEAN
EFIAPI
IsInValidList (
IN UINT32 Value,
- IN UINT32 *ValidList,
+ IN CONST UINT32 *ValidList,
IN UINT32 ValidListLength
)
{
@@ -188,7 +188,7 @@ ValidateHobList (
)
{
EFI_PEI_HOB_POINTERS Hob;
- UINT32 EFI_BOOT_MODE_LIST[] = {
+ STATIC CONST UINT32 EFI_BOOT_MODE_LIST[] = {
BOOT_WITH_FULL_CONFIGURATION,
BOOT_WITH_MINIMAL_CONFIGURATION,
BOOT_ASSUMING_NO_CONFIGURATION_CHANGES,
@@ -203,7 +203,7 @@ ValidateHobList (
BOOT_IN_RECOVERY_MODE
};
- UINT32 EFI_RESOURCE_TYPE_LIST[] = {
+ STATIC CONST UINT32 EFI_RESOURCE_TYPE_LIST[] = {
EFI_RESOURCE_SYSTEM_MEMORY,
EFI_RESOURCE_MEMORY_MAPPED_IO,
EFI_RESOURCE_IO,
next prev parent reply other threads:[~2022-09-22 21:32 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-22 21:07 OvmfPkgX64: PlatformInitLib.lib(IntelTdx.obj): in function `ValidateHobList': undefined reference to `memcpy' (CLANG38 NOOPT) Rebecca Cran
2022-09-22 21:32 ` Ard Biesheuvel [this message]
2022-09-22 22:52 ` [edk2-devel] " Rebecca Cran
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAMj1kXG3ha-1WVO43aRzRBEiDKXkfwqX0Lns4Ve=DAxOv5osEQ@mail.gmail.com' \
--to=devel@edk2.groups.io \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox