From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-1.mimecast.com (us-smtp-1.mimecast.com [205.139.110.120]) by mx.groups.io with SMTP id smtpd.web12.1428.1589476389978424938 for ; Thu, 14 May 2020 10:13:10 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=QFllgU+O; spf=pass (domain: redhat.com, ip: 205.139.110.120, mailfrom: lersek@redhat.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1589476389; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=lNfgMav/ctl9H+c21iwjV3dhUNtoN9m0PNF+fibLMYM=; b=QFllgU+Op4tbHNyBNueLD51T1SmVyT74xXdJegQy4yYtp+bkiJOlKTh6TNWVuyVQY+TDJA 2G/olw/lqrtmVOgGqYQzJPL9PnEAGIaRJIGPRFecTIASBW9MsUn0bJRuHAcCWeg36yp3Ft xGsFrVadMMgEM4+hbwlEJsU2lATpr6o= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-262-1KlTVmmNNSKMe0vTh_fjmg-1; Thu, 14 May 2020 13:13:05 -0400 X-MC-Unique: 1KlTVmmNNSKMe0vTh_fjmg-1 Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.phx2.redhat.com [10.5.11.13]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id 962A51899532; Thu, 14 May 2020 17:13:02 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-113-179.ams2.redhat.com [10.36.113.179]) by smtp.corp.redhat.com (Postfix) with ESMTP id 4B4C96FDD2; Thu, 14 May 2020 17:13:00 +0000 (UTC) Subject: Re: [PATCH v2] OvmfPkg: Skip initrd command on Xcode toolchain To: Roman Bolshakov , devel@edk2.groups.io Cc: Cameron Esfahani , LAHAYE Olivier , =?UTF-8?Q?Philippe_Mathieu-Daud=c3=a9?= , Ard Biesheuvel , Liming Gao , Andrew Fish References: <20200514134820.62047-1-r.bolshakov@yadro.com> From: "Laszlo Ersek" Message-ID: <2a0c9b8b-4d03-4367-7540-a3712e22a006@redhat.com> Date: Thu, 14 May 2020 19:12:59 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.9.1 MIME-Version: 1.0 In-Reply-To: <20200514134820.62047-1-r.bolshakov@yadro.com> X-Scanned-By: MIMEDefang 2.79 on 10.5.11.13 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit On 05/14/20 15:48, Roman Bolshakov wrote: > OVMF booting stops with the assert if built with Xcode on macOS: > > Loading driver at 0x0001FAB8000 EntryPoint=0x0001FABF249 LinuxInitrdDynamicShellCommand.efi > InstallProtocolInterface: BC62157E-3E33-4FEC-9920-2D3B36D750DF 1F218398 > ProtectUefiImageCommon - 0x1F218140 > - 0x000000001FAB8000 - 0x0000000000008A60 > > ASSERT_EFI_ERROR (Status = Unsupported) > ASSERT LinuxInitrdDynamicShellCommand.c(378): !EFI_ERROR (Status) > > The assert comes from InitializeHiiPackage() after an attempt to > retrieve HII package list from ImageHandle. > > Xcode still doesn't support HII resource section and > LinuxInitrdDynamicShellCommand depends on it. Likewise 277a3958d93a > ("OvmfPkg: Don't include TftpDynamicCommand in XCODE5 tool chain"), > disable initrd command if built with Xcode toolchain > > Fixes: ec41733cfd10 ("OvmfPkg: add the 'initrd' dynamic shell command") > Cc: Ard Biesheuvel > Cc: Liming Gao > Cc: Andrew Fish > Cc: Laszlo Ersek > Signed-off-by: Roman Bolshakov > --- > OvmfPkg/OvmfPkgIa32.dsc | 2 +- > OvmfPkg/OvmfPkgIa32.fdf | 2 +- > OvmfPkg/OvmfPkgIa32X64.dsc | 2 +- > OvmfPkg/OvmfPkgIa32X64.fdf | 2 +- > OvmfPkg/OvmfPkgX64.dsc | 2 +- > OvmfPkg/OvmfPkgX64.fdf | 2 +- > OvmfPkg/OvmfXen.dsc | 2 +- > OvmfPkg/OvmfXen.fdf | 2 +- > 8 files changed, 8 insertions(+), 8 deletions(-) > > Changes since v1: > - Disabled build and packaging of the command on Xcode toolchain for > all related architectures and platforms (Laszlo) > - Corrected wrong reference in Fixes tag (Laszlo) > > FWIW, I can't really build for IA32X64 arch on macOS: > > $ OvmfPkg/build.sh -a IA32X64 > Initializing workspace > /Users/user/dev/edk2/BaseTools > Loading previous configuration from /Users/user/dev/edk2/Conf/BuildEnv.sh > WORKSPACE: /Users/user/dev/edk2 > EDK_TOOLS_PATH: /Users/user/dev/edk2/BaseTools > CONF_PATH: /Users/user/dev/edk2/Conf > Unsupported processor architecture: IA32X64 > Only IA32 or X64 is supported For passing both the IA32 and X64 arches to the "build" utility, you have to use separate "-a" options, as in: "-a IA32 -a X64". The same seems to apply to the "OvmfPkg/build.sh" wrapper script; see: > -a) > if [[ x"$arg" != x"IA32" && x"$arg" != x"X64" ]]; then > echo Unsupported processor architecture: $arg > echo Only IA32 or X64 is supported > exit 1 > fi > eval ARCH_$arg=yes > ;; followed by: > if [[ "$ARCH_IA32" == "yes" && "$ARCH_X64" == "yes" ]]; then > PROCESSOR=IA32X64 > Processor=Ia32X64 > BUILD_OPTIONS="$BUILD_OPTIONS -a IA32 -a X64" > PLATFORM_BUILD_DIR=Ovmf3264 > BUILD_ROOT_ARCH=X64 For the patch: Reviewed-by: Laszlo Ersek Merged as commit bcf181a33b2e, via . Thanks! Laszlo > > diff --git a/OvmfPkg/OvmfPkgIa32.dsc b/OvmfPkg/OvmfPkgIa32.dsc > index 41ac320296..e54aecdf27 100644 > --- a/OvmfPkg/OvmfPkgIa32.dsc > +++ b/OvmfPkg/OvmfPkgIa32.dsc > @@ -871,11 +871,11 @@ > > gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > } > -!endif > OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf { > > gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > } > +!endif > ShellPkg/Application/Shell/Shell.inf { > > ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf > diff --git a/OvmfPkg/OvmfPkgIa32.fdf b/OvmfPkg/OvmfPkgIa32.fdf > index fd81b6fa8b..e2b759aa8d 100644 > --- a/OvmfPkg/OvmfPkgIa32.fdf > +++ b/OvmfPkg/OvmfPkgIa32.fdf > @@ -290,8 +290,8 @@ INF MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf > > !if $(TOOL_CHAIN_TAG) != "XCODE5" > INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf > -!endif > INF OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf > +!endif > INF ShellPkg/Application/Shell/Shell.inf > > INF MdeModulePkg/Logo/LogoDxe.inf > diff --git a/OvmfPkg/OvmfPkgIa32X64.dsc b/OvmfPkg/OvmfPkgIa32X64.dsc > index c2f11aee2c..c0c8397cb7 100644 > --- a/OvmfPkg/OvmfPkgIa32X64.dsc > +++ b/OvmfPkg/OvmfPkgIa32X64.dsc > @@ -884,11 +884,11 @@ > > gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > } > -!endif > OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf { > > gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > } > +!endif > ShellPkg/Application/Shell/Shell.inf { > > ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf > diff --git a/OvmfPkg/OvmfPkgIa32X64.fdf b/OvmfPkg/OvmfPkgIa32X64.fdf > index f71134a659..bfca1eff9e 100644 > --- a/OvmfPkg/OvmfPkgIa32X64.fdf > +++ b/OvmfPkg/OvmfPkgIa32X64.fdf > @@ -291,8 +291,8 @@ INF MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf > > !if $(TOOL_CHAIN_TAG) != "XCODE5" > INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf > -!endif > INF OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf > +!endif > INF ShellPkg/Application/Shell/Shell.inf > > INF MdeModulePkg/Logo/LogoDxe.inf > diff --git a/OvmfPkg/OvmfPkgX64.dsc b/OvmfPkg/OvmfPkgX64.dsc > index 643e6041ad..22112bcb04 100644 > --- a/OvmfPkg/OvmfPkgX64.dsc > +++ b/OvmfPkg/OvmfPkgX64.dsc > @@ -881,11 +881,11 @@ > > gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > } > -!endif > OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf { > > gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > } > +!endif > ShellPkg/Application/Shell/Shell.inf { > > ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf > diff --git a/OvmfPkg/OvmfPkgX64.fdf b/OvmfPkg/OvmfPkgX64.fdf > index f71134a659..bfca1eff9e 100644 > --- a/OvmfPkg/OvmfPkgX64.fdf > +++ b/OvmfPkg/OvmfPkgX64.fdf > @@ -291,8 +291,8 @@ INF MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf > > !if $(TOOL_CHAIN_TAG) != "XCODE5" > INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf > -!endif > INF OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf > +!endif > INF ShellPkg/Application/Shell/Shell.inf > > INF MdeModulePkg/Logo/LogoDxe.inf > diff --git a/OvmfPkg/OvmfXen.dsc b/OvmfPkg/OvmfXen.dsc > index 143dc6d5a7..3af0ee7054 100644 > --- a/OvmfPkg/OvmfXen.dsc > +++ b/OvmfPkg/OvmfXen.dsc > @@ -675,11 +675,11 @@ > > gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > } > -!endif > OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf { > > gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE > } > +!endif > ShellPkg/Application/Shell/Shell.inf { > > ShellCommandLib|ShellPkg/Library/UefiShellCommandLib/UefiShellCommandLib.inf > diff --git a/OvmfPkg/OvmfXen.fdf b/OvmfPkg/OvmfXen.fdf > index 3c4164a5f5..d9ee14b484 100644 > --- a/OvmfPkg/OvmfXen.fdf > +++ b/OvmfPkg/OvmfXen.fdf > @@ -363,8 +363,8 @@ INF MdeModulePkg/Universal/Disk/UdfDxe/UdfDxe.inf > > !if $(TOOL_CHAIN_TAG) != "XCODE5" > INF ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf > -!endif > INF OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf > +!endif > INF ShellPkg/Application/Shell/Shell.inf > > INF MdeModulePkg/Logo/LogoDxe.inf >