e274122 OvmfPkg: restrict XenPlatformLib to BdsDxe in the IA32, IA32X64, X64 DSCs

Authored and Committed by lersek 3 years ago
    OvmfPkg: restrict XenPlatformLib to BdsDxe in the IA32, IA32X64, X64 DSCs
    
    The "OvmfPkg/Library/PlatformBootManagerLib/PlatformBootManagerLib.inf"
    library instance is used in the following platform DSC files in edk2:
    
      OvmfPkg/OvmfPkgIa32.dsc
      OvmfPkg/OvmfPkgIa32X64.dsc
      OvmfPkg/OvmfPkgX64.dsc
      OvmfPkg/OvmfXen.dsc
    
    The Xen customizations are very light-weight in this
    PlatformBootManagerLib instance. Isolating them statically, for the sake
    of the first three DSC files, would save negligible binary code size, and
    would likely worsen code complexity (by way of introducing new internal
    interfaces) or blow up source code size (by duplicating almost the entire
    lib instance source code). So for now, keep this one bit of Xen dynamism
    even on QEMU.
    
    However, because it's only PlatformBootManagerLib now that uses
    XenPlatformLib (for the above-stated enlightenment), restrict the
    XenPlatformLib class resolution in the first three DSC files to the only
    DXE driver that consumes PlatformBootManagerLib (and therefore
    XenPlatformLib): BdsDxe. This will cause a build failure later if someone
    attempts to call a XenPlatformLib API (that is, tries to re-introduce Xen
    enlightenment) in a different module in these non-Xen DSC files.
    
    Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
    Cc: Jordan Justen <jordan.l.justen@intel.com>
    Cc: Philippe Mathieu-Daudé <philmd@redhat.com>
    Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=2122
    Signed-off-by: Laszlo Ersek <lersek@redhat.com>
    
        
file modified
+1 -1
file modified
+1 -1
file modified
+1 -1