[edk2] [PATCH 4/4] ShellPkg: remove superfluous TimerLib resolution

Laszlo Ersek posted 4 patches 6 years, 10 months ago
[edk2] [PATCH 4/4] ShellPkg: remove superfluous TimerLib resolution
Posted by Laszlo Ersek 6 years, 10 months ago
TimerLib had to be resolved in commit 5ab97a64b51c ("ShellPkg/bcfg: Add
Shell Spec 2.2 modification functionality", 2017-03-01) because:

- the BCFG command started making calls to UefiBootManagerLib
  (EfiBootManagerVariableToLoadOption(),
  EfiBootManagerLoadOptionToVariable(), EfiBootManagerFreeLoadOption()),

- and "MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf"
  depended on TimerLib.

Because TimerLib is platform-specific, but "ShellPkg/ShellPkg.dsc" is
meant to produce a UEFI shell binary that is platform-independent (see
"ShellBinPkg/ReadMe.txt"), we resolved TimerLib to
"BaseTimerLibNullTemplate.inf". (TimerLib functionality was never actually
needed on UefiBootManagerLib code paths that were exercised by the shell /
BCFG.)

Thanks to the last patch, UefiBootManagerLib no longer depends on
TimerLib, thus we can drop the TimerLib resolution entirely.

Cc: Jaben Carsey <jaben.carsey@intel.com>
Cc: Ruiyu Ni <ruiyu.ni@intel.com>
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
---
 ShellPkg/ShellPkg.dsc | 1 -
 1 file changed, 1 deletion(-)

diff --git a/ShellPkg/ShellPkg.dsc b/ShellPkg/ShellPkg.dsc
index 29f537641285..1c923f585149 100644
--- a/ShellPkg/ShellPkg.dsc
+++ b/ShellPkg/ShellPkg.dsc
@@ -58,7 +58,6 @@ [LibraryClasses.common]
 
   UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf
   HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
-  TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
   PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
   DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
   DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
-- 
2.14.1.3.gb7cf6e02401b

_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel
Re: [edk2] [PATCH 4/4] ShellPkg: remove superfluous TimerLib resolution
Posted by Ni, Ruiyu 6 years, 10 months ago
On 2/12/2018 9:45 PM, Laszlo Ersek wrote:
> TimerLib had to be resolved in commit 5ab97a64b51c ("ShellPkg/bcfg: Add
> Shell Spec 2.2 modification functionality", 2017-03-01) because:
> 
> - the BCFG command started making calls to UefiBootManagerLib
>    (EfiBootManagerVariableToLoadOption(),
>    EfiBootManagerLoadOptionToVariable(), EfiBootManagerFreeLoadOption()),
> 
> - and "MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf"
>    depended on TimerLib.
> 
> Because TimerLib is platform-specific, but "ShellPkg/ShellPkg.dsc" is
> meant to produce a UEFI shell binary that is platform-independent (see
> "ShellBinPkg/ReadMe.txt"), we resolved TimerLib to
> "BaseTimerLibNullTemplate.inf". (TimerLib functionality was never actually
> needed on UefiBootManagerLib code paths that were exercised by the shell /
> BCFG.)
> 
> Thanks to the last patch, UefiBootManagerLib no longer depends on
> TimerLib, thus we can drop the TimerLib resolution entirely.
> 
> Cc: Jaben Carsey <jaben.carsey@intel.com>
> Cc: Ruiyu Ni <ruiyu.ni@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.1
> Signed-off-by: Laszlo Ersek <lersek@redhat.com>
> ---
>   ShellPkg/ShellPkg.dsc | 1 -
>   1 file changed, 1 deletion(-)
> 
> diff --git a/ShellPkg/ShellPkg.dsc b/ShellPkg/ShellPkg.dsc
> index 29f537641285..1c923f585149 100644
> --- a/ShellPkg/ShellPkg.dsc
> +++ b/ShellPkg/ShellPkg.dsc
> @@ -58,7 +58,6 @@ [LibraryClasses.common]
>   
>     UefiBootManagerLib|MdeModulePkg/Library/UefiBootManagerLib/UefiBootManagerLib.inf
>     HobLib|MdePkg/Library/DxeHobLib/DxeHobLib.inf
> -  TimerLib|MdePkg/Library/BaseTimerLibNullTemplate/BaseTimerLibNullTemplate.inf
>     PerformanceLib|MdePkg/Library/BasePerformanceLibNull/BasePerformanceLibNull.inf
>     DxeServicesTableLib|MdePkg/Library/DxeServicesTableLib/DxeServicesTableLib.inf
>     DxeServicesLib|MdePkg/Library/DxeServicesLib/DxeServicesLib.inf
> 
Very great clean up.
Reviewed-by: Ruiyu Ni <ruiyu.ni@intel.com>

-- 
Thanks,
Ray
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.01.org
https://lists.01.org/mailman/listinfo/edk2-devel