Hi Hao, Jian,

Can you let me know your feedback for this patch, please?
Previous discussion on this patch can be seen at 
https://edk2.groups.io/g/devel/topic/75081484

Regards,

Sami Mujawar

-----Original Message-----
From: devel@edk2.groups.io <devel@edk2.groups.io> On Behalf Of Sami Mujawar via 
groups.io
Sent: 07 July 2020 01:48 PM
To: devel@edk2.groups.io
Cc: Sami Mujawar <sami.muja...@arm.com>; Ard Biesheuvel 
<ard.biesheu...@arm.com>; l...@nuviainc.com; ler...@redhat.com; 
jian.j.w...@intel.com; hao.a...@intel.com; Alexandru Elisei 
<alexandru.eli...@arm.com>; Andre Przywara <andre.przyw...@arm.com>; Matteo 
Carlini <matteo.carl...@arm.com>; Laura Moretta <laura.more...@arm.com>; nd 
<n...@arm.com>
Subject: [edk2-devel] [PATCH v4 07/15] MdeModulePkg: Fix constructor invocation 
ordering

The BaseSerialPortLib16550 library does not implement a constructor. This 
prevents the correct constructor invocation order for dependent libraries.
e.g. A PlatformHookLib (for the Serial Port) may have a dependency on 
retrieving data from a Hob. A Hob library implementation may configure its 
initial state in the HobLib constructor. Since BaseSerialPortLib16550 does not 
implement a constructor, the Basetools do not resolve the correct order for 
constructor invocation.

To fix this, add an empty constructor to the serial port library 
BaseSerialPortLib16550.

Signed-off-by: Sami Mujawar <sami.muja...@arm.com>
Acked-by: Ard Biesheuvel <ard.biesheu...@arm.com>
---

Notes:
    v4:
      - No code change, resending patch with v4 series.               [Sami]
        Ref: https://edk2.groups.io/g/devel/topic/75081484

 MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.c   | 17 
+++++++++++++++++
 MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf |  3 +++
 2 files changed, 20 insertions(+)

diff --git 
a/MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.c 
b/MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.c
index 
9cb50dd80d5634ab2aa6d68bf5ca7fb891463eef..0fd1382ee83c9de09d8250830bd9569056fcee2f
 100644
--- a/MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.c
+++ b/MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550
+++ .c
@@ -4,6 +4,7 @@
   (C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
   Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
   Copyright (c) 2018, AMD Incorporated. All rights reserved.<BR>
+  Copyright (c) 2020, ARM Limited. All rights reserved.
 
   SPDX-License-Identifier: BSD-2-Clause-Patent
 
@@ -1102,3 +1103,19 @@ SerialPortSetAttributes (
   return RETURN_SUCCESS;
 }
 
+/** Base Serial Port 16550 Library Constructor
+
+  @retval RETURN_SUCCESS  Success.
+*/
+EFI_STATUS
+EFIAPI
+BaseSerialPortLib16550 (
+  VOID
+  )
+{
+  // Nothing to do here. This constructor is added to
+  // enable the chain of constructor invocation for
+  // dependent libraries.
+  return RETURN_SUCCESS;
+}
+
diff --git 
a/MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf 
b/MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf
index 
8b4ae3f1d4ee1e2e9a8b81eab4c900541ce8cfb6..92b7a8b7896a305d2ce22589f8a9593618d37bb7
 100644
--- a/MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550.inf
+++ b/MdeModulePkg/Library/BaseSerialPortLib16550/BaseSerialPortLib16550
+++ .inf
@@ -2,6 +2,8 @@
 #  SerialPortLib instance for 16550 UART.
 #
 #  Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
+#  Copyright (c) 2020, ARM Limited. All rights reserved.
+#
 #  SPDX-License-Identifier: BSD-2-Clause-Patent  #  ## @@ -14,6 +16,7 @@ 
[Defines]
   MODULE_TYPE                    = BASE
   VERSION_STRING                 = 1.1
   LIBRARY_CLASS                  = SerialPortLib
+  CONSTRUCTOR                    = BaseSerialPortLib16550
 
 [Packages]
   MdePkg/MdePkg.dec
--
'Guid(CE165669-3EF3-493F-B85D-6190EE5B9759)'





-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.

View/Reply Online (#62351): https://edk2.groups.io/g/devel/message/62351
Mute This Topic: https://groups.io/mt/75423440/21656
Group Owner: devel+ow...@edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to