mirror of
https://github.com/acidanthera/audk.git
synced 2025-07-28 08:04:07 +02:00
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.mujawar@arm.com> Acked-by: Ard Biesheuvel <Ard.Biesheuvel@arm.com> Acked-by: Hao A Wu <hao.a.wu@intel.com> Acked-by: Laszlo Ersek <lersek@redhat.com>
This commit is contained in:
parent
69f8ef04a8
commit
1c03498a25
@ -4,6 +4,7 @@
|
|||||||
(C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
|
(C) Copyright 2014 Hewlett-Packard Development Company, L.P.<BR>
|
||||||
Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
|
Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
|
||||||
Copyright (c) 2018, AMD Incorporated. 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
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
|
|
||||||
@ -1102,3 +1103,18 @@ SerialPortSetAttributes (
|
|||||||
return RETURN_SUCCESS;
|
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;
|
||||||
|
}
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
# SerialPortLib instance for 16550 UART.
|
# SerialPortLib instance for 16550 UART.
|
||||||
#
|
#
|
||||||
# Copyright (c) 2006 - 2019, Intel Corporation. All rights reserved.<BR>
|
# 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
|
# SPDX-License-Identifier: BSD-2-Clause-Patent
|
||||||
#
|
#
|
||||||
##
|
##
|
||||||
@ -14,6 +16,7 @@
|
|||||||
MODULE_TYPE = BASE
|
MODULE_TYPE = BASE
|
||||||
VERSION_STRING = 1.1
|
VERSION_STRING = 1.1
|
||||||
LIBRARY_CLASS = SerialPortLib
|
LIBRARY_CLASS = SerialPortLib
|
||||||
|
CONSTRUCTOR = BaseSerialPortLib16550
|
||||||
|
|
||||||
[Packages]
|
[Packages]
|
||||||
MdePkg/MdePkg.dec
|
MdePkg/MdePkg.dec
|
||||||
|
Loading…
x
Reference in New Issue
Block a user