Workaround linking problem caused by missing SystemInit during build

During LiteOS consolidation, system_init.o object that contains
SystemInit() doesn't exist yet as it is being built later
and linked in ./vendor directory when OHOS_Image is created.
This is not the case when building for HiSilicon platforms as
SystemInit is provided for them in precompiled libraries.

Workaround this issue by creating "weak" function in LiteOS
that will be replaced by the "strong" symbol from ./vendor
in linking phase of the OHOS_Image.

Signed-off-by: Zbigniew Bodek <zbigniew.bodek@huawei.com>
Change-Id: I39f327a350722a3e41a370ee93ba3b734c5681b0
This commit is contained in:
Zbigniew Bodek 2020-10-08 23:03:58 +08:00 committed by Wojciech Zmuda WX948747
parent 669221b620
commit 850a566916
1 changed files with 5 additions and 0 deletions

View File

@ -132,6 +132,11 @@ extern "C" {
extern UINT32 OsSystemInit(VOID);
extern VOID SystemInit(VOID);
VOID __attribute__((weak)) SystemInit(VOID)
{
PRINT_WARN("Function not implemented. Using weak reference stub\n");
}
LITE_OS_SEC_TEXT_INIT VOID osRegister(VOID)
{
g_sysClock = OS_SYS_CLOCK;