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]
-=-=-=-=-=-=-=-=-=-=-=-
next prev parent 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