public inbox for devel@edk2.groups.io
 help / color / mirror / Atom feed
From: "Laszlo Ersek" <lersek@redhat.com>
To: devel@edk2.groups.io, kraxel@redhat.com
Cc: Jiewen Yao <jiewen.yao@intel.com>,
	Ard Biesheuvel <ardb+tianocore@kernel.org>,
	Michael Roth <michael.roth@amd.com>,
	Erdem Aktas <erdemaktas@google.com>, Min Xu <min.m.xu@intel.com>,
	Tom Lendacky <thomas.lendacky@amd.com>,
	Oliver Steffen <osteffen@redhat.com>
Subject: Re: [edk2-devel] [PATCH 04/11] OvmfPkg: Shell*.inc: allow building without network support
Date: Thu, 25 Jan 2024 14:53:34 +0100	[thread overview]
Message-ID: <8912261d-3e64-fa48-5927-b40c6ec9709b@redhat.com> (raw)
In-Reply-To: <20240124163802.2160303-5-kraxel@redhat.com>

On 1/24/24 17:37, Gerd Hoffmann wrote:
> Add NETWORK_ENABLE conditionals for the components
> which need network support.
> 
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> ---
>  OvmfPkg/Include/Dsc/ShellComponents.dsc.inc | 4 ++++
>  OvmfPkg/Include/Fdf/ShellDxe.fdf.inc        | 2 ++
>  2 files changed, 6 insertions(+)
> 
> diff --git a/OvmfPkg/Include/Dsc/ShellComponents.dsc.inc b/OvmfPkg/Include/Dsc/ShellComponents.dsc.inc
> index 1a3a349a9de5..248b4b454b70 100644
> --- a/OvmfPkg/Include/Dsc/ShellComponents.dsc.inc
> +++ b/OvmfPkg/Include/Dsc/ShellComponents.dsc.inc
> @@ -5,6 +5,7 @@
>  !if $(BUILD_SHELL) == TRUE
>  
>  !if $(TOOL_CHAIN_TAG) != "XCODE5"
> +!if $(NETWORK_ENABLE) == TRUE
>    ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf {
>      <PcdsFixedAtBuild>
>        gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
> @@ -13,6 +14,7 @@
>      <PcdsFixedAtBuild>
>        gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE
>    }
> +!endif
>    ShellPkg/DynamicCommand/VariablePolicyDynamicCommand/VariablePolicyDynamicCommand.inf {
>      <PcdsFixedAtBuild>
>        gEfiShellPkgTokenSpaceGuid.PcdShellLibAutoInitialize|FALSE

(1) This will prevent testing those code paths in these utilities that deal with *not finding* the underlying networking protocols. That's an argument against this hunk.

However, we already have something similar in place, for UefiShellNetwork2CommandsLib and NETWORK_IP6_ENABLE. So, for consistency's sake, this hunk does seem justified. OK.

(2) Further verification:

- if NETWORK_ENABLE is false, then none of the networking stack is built (see NetworkPkg/NetworkComponents.dsc.inc), and then we don't need these utilities.

- if NETWORK_ENABLE is true, then *at least one* of the IPv4 and IPv6 stacks will be available (see NetworkPkg/NetworkDefines.dsc.inc), and then these utilities should be functional.

OK.

> @@ -32,7 +34,9 @@
>        NULL|ShellPkg/Library/UefiShellDriver1CommandsLib/UefiShellDriver1CommandsLib.inf
>        NULL|ShellPkg/Library/UefiShellDebug1CommandsLib/UefiShellDebug1CommandsLib.inf
>        NULL|ShellPkg/Library/UefiShellInstall1CommandsLib/UefiShellInstall1CommandsLib.inf
> +!if $(NETWORK_ENABLE) == TRUE
>        NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
> +!endif
>  !if $(NETWORK_IP6_ENABLE) == TRUE
>        NULL|ShellPkg/Library/UefiShellNetwork2CommandsLib/UefiShellNetwork2CommandsLib.inf
>  !endif

(3) This looks incorrect. The Network1 command set is related to IPv4, so we should check NETWORK_IP4_ENABLE.

More precisely, the conditionals should look like

!if $(NETWORK_ENABLE) == TRUE
!if $(NETWORK_IP4_ENABLE) == TRUE
      NULL|ShellPkg/Library/UefiShellNetwork1CommandsLib/UefiShellNetwork1CommandsLib.inf
!endif
!if $(NETWORK_IP6_ENABLE) == TRUE
      NULL|ShellPkg/Library/UefiShellNetwork2CommandsLib/UefiShellNetwork2CommandsLib.inf
!endif
!endif

(Meaning that the extant NETWORK_IP6_ENABLE check isn't fully correct either.)


> diff --git a/OvmfPkg/Include/Fdf/ShellDxe.fdf.inc b/OvmfPkg/Include/Fdf/ShellDxe.fdf.inc
> index 0935f06fa368..6536c30c5413 100644
> --- a/OvmfPkg/Include/Fdf/ShellDxe.fdf.inc
> +++ b/OvmfPkg/Include/Fdf/ShellDxe.fdf.inc
> @@ -5,8 +5,10 @@
>  !if $(BUILD_SHELL) == TRUE
>  
>  !if $(TOOL_CHAIN_TAG) != "XCODE5"
> +!if $(NETWORK_ENABLE) == TRUE
>  INF  ShellPkg/DynamicCommand/TftpDynamicCommand/TftpDynamicCommand.inf
>  INF  ShellPkg/DynamicCommand/HttpDynamicCommand/HttpDynamicCommand.inf
> +!endif
>  INF  OvmfPkg/LinuxInitrdDynamicShellCommand/LinuxInitrdDynamicShellCommand.inf
>  !endif
>  

Seems OK.

Laszlo



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#114404): https://edk2.groups.io/g/devel/message/114404
Mute This Topic: https://groups.io/mt/103935345/7686176
Group Owner: devel+owner@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/leave/12367111/7686176/1913456212/xyzzy [rebecca@openfw.io]
-=-=-=-=-=-=-=-=-=-=-=-



  reply	other threads:[~2024-01-25 13:53 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-01-24 16:37 [edk2-devel] [PATCH 00/11] OvmfPkg: tweak shell builds Gerd Hoffmann
2024-01-24 16:37 ` [edk2-devel] [PATCH 01/11] OvmfPkg: add ShellComponents.dsc.inc Gerd Hoffmann
2024-01-25 11:49   ` Laszlo Ersek
2024-01-24 16:37 ` [edk2-devel] [PATCH 02/11] OvmfPkg: add ShellLibs.dsc.inc Gerd Hoffmann
2024-01-25 13:14   ` Laszlo Ersek
2024-01-26 13:59     ` Gerd Hoffmann
2024-01-29 11:25       ` Laszlo Ersek
2024-01-29 12:25         ` Gerd Hoffmann
2024-01-29 12:40           ` Laszlo Ersek
2024-01-24 16:37 ` [edk2-devel] [PATCH 03/11] OvmfPkg: add ShellDxe.fdf.inc Gerd Hoffmann
2024-01-25 13:21   ` Laszlo Ersek
2024-01-24 16:37 ` [edk2-devel] [PATCH 04/11] OvmfPkg: Shell*.inc: allow building without network support Gerd Hoffmann
2024-01-25 13:53   ` Laszlo Ersek [this message]
2024-01-24 16:37 ` [edk2-devel] [PATCH 05/11] OvmfPkg: ShellDxe.fdf.inc: add VariablePolicyDynamicCommand to FV Gerd Hoffmann
2024-01-25 16:46   ` Laszlo Ersek
2024-01-24 16:37 ` [edk2-devel] [PATCH 06/11] OvmfPkg: switch OvmfPkgIa32 to new shell include files Gerd Hoffmann
2024-01-25 16:56   ` Laszlo Ersek
2024-01-24 16:37 ` [edk2-devel] [PATCH 07/11] OvmfPkg: switch OvmfPkgIa32X64 " Gerd Hoffmann
2024-01-25 16:57   ` Laszlo Ersek
2024-01-24 16:37 ` [edk2-devel] [PATCH 08/11] OvmfPkg: switch AmdSevX64 " Gerd Hoffmann
2024-01-25 17:02   ` Laszlo Ersek
2024-02-14 14:24     ` Gerd Hoffmann
2024-01-24 16:38 ` [edk2-devel] [PATCH 09/11] OvmfPkg: switch IntelTdxX64 " Gerd Hoffmann
2024-01-25 17:04   ` Laszlo Ersek
2024-01-24 16:38 ` [edk2-devel] [PATCH 10/11] OvmfPkg: switch MicrovmX64 " Gerd Hoffmann
2024-01-25 17:05   ` Laszlo Ersek
2024-01-24 16:38 ` [edk2-devel] [PATCH 11/11] OvmfPkg/CI: copy shell to virtual drive Gerd Hoffmann
2024-01-25 17:07   ` Laszlo Ersek
2024-01-25  3:09 ` [edk2-devel] [PATCH 00/11] OvmfPkg: tweak shell builds Yao, Jiewen

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=8912261d-3e64-fa48-5927-b40c6ec9709b@redhat.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