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 <kra...@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/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: 
https://edk2.groups.io/g/devel/leave/9847357/21656/1706620634/xyzzy 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-


Reply via email to