Post Go back to editing

Linking errors after upgrade from VDSP++ 4.0 to 5.1.2

Hello,

I have an old but working VDSP++ 4.0 project. Recently I upgraded VDSP++ to 5.1.2, and after the auto-conversion of the project files, I got the following linking errors during re-building the project:

[Error li1021] The following symbols referenced in processor 'p0' could not be resolved:
'LCK_InitGlobalInterruptLock [_LCK_InitGlobalInterruptLock]' referenced from 'vdk-n-2106X.dlb[IdleThread.doj]'
'LCK_InitGlobalInterruptLock [_LCK_InitGlobalInterruptLock]' referenced from 'vdk-n-2106X.dlb[Semaphore.doj]'
'TMK_AddThreadToOrderedList [_TMK_AddThreadToOrderedList]' referenced from 'vdk-n-2106X.dlb[Semaphore.doj]'
'TMK_AddThreadToOrderedList [_TMK_AddThreadToOrderedList]' referenced from 'vdk-n-2106X.dlb[VDK_API_PendSemaphore.doj]'
'TMK_Block [_TMK_Block]' referenced from 'vdk-n-2106X.dlb[VDK_API_PendSemaphore.doj]'
'TMK_Block [_TMK_Block]' referenced from 'vdk-n-2106X.dlb[VDK_API_Yield.doj]'
'TMK_CancelTimeout [_TMK_CancelTimeout]' referenced from 'vdk-n-2106X.dlb[Semaphore.doj]'
'TMK_CancelTimeout [_TMK_CancelTimeout]' referenced from 'vdk-n-2106X.dlb[VDK_API_DestroySemaphore.doj]'
'TMK_CancelTimeout [_TMK_CancelTimeout]' referenced from 'vdk-n-2106X.dlb[VDK_API_DestroyThread.doj]'
'TMK_CancelTimeout [_TMK_CancelTimeout]' referenced from 'vdk-n-2106X.dlb[VDK_API_PostSemaphore.doj]'
'TMK_DeInitThread [_TMK_DeInitThread]' referenced from 'vdk-n-2106X.dlb[ThreadMemoryAlloc.doj]'
'TMK_HookThreadSwitch [_TMK_HookThreadSwitch]' referenced from 'vdk-n-2106X.dlb[Initialize.doj]'
'TMK_InitDpcElement [_TMK_InitDpcElement]' referenced from 'vdk-n-2106X.dlb[Semaphore.doj]'
'TMK_InitDpcElement [_TMK_InitDpcElement]' referenced from 'vdk-n-2106X.dlb[VDK_API_DeviceDrivers.doj]'
'TMK_InitThread [_TMK_InitThread]' referenced from 'vdk-n-2106X.dlb[ThreadMemoryAlloc.doj]'
'TMK_InitTimeElement [_TMK_InitTimeElement]' referenced from 'vdk-n-2106X.dlb[Semaphore.doj]'
'TMK_InitTimeElement [_TMK_InitTimeElement]' referenced from 'vdk-n-2106X.dlb[VDK_Thread_ctor.doj]'
'TMK_Initialize [_TMK_Initialize]' referenced from 'vdk-n-2106X.dlb[Initialize.doj]'
'TMK_InsertQueueDpc' referenced from 'vdk-n-2106X.dlb[VDK_ISR_DEVICES_API.doj]'
'TMK_MakeThreadNotReady [_TMK_MakeThreadNotReady]' referenced from 'vdk-n-2106X.dlb[VDK_API_DestroyThread.doj]'
'TMK_MakeThreadNotReady [_TMK_MakeThreadNotReady]' referenced from 'vdk-n-2106X.dlb[VDK_API_PendSemaphore.doj]'
'TMK_MakeThreadNotReady [_TMK_MakeThreadNotReady]' referenced from 'vdk-n-2106X.dlb[VDK_API_Yield.doj]'
'TMK_MakeThreadReady [_TMK_MakeThreadReady]' referenced from 'vdk-n-2106X.dlb[Semaphore.doj]'
'TMK_MakeThreadReady [_TMK_MakeThreadReady]' referenced from 'vdk-n-2106X.dlb[VDK_API_CreateThread.doj]'
'TMK_MakeThreadReady [_TMK_MakeThreadReady]' referenced from 'vdk-n-2106X.dlb[VDK_API_PostSemaphore.doj]'
'TMK_MakeThreadReady [_TMK_MakeThreadReady]' referenced from 'vdk-n-2106X.dlb[VDK_Thread.doj]'
'TMK_Reschedule [_TMK_Reschedule]' referenced from 'vdk-n-2106X.dlb[VDK_API_DestroyThread.doj]'
'TMK_Reschedule [_TMK_Reschedule]' referenced from 'vdk-n-2106X.dlb[VDK_API_PostSemaphore.doj]'
'TMK_Reschedule [_TMK_Reschedule]' referenced from 'vdk-n-2106X.dlb[VDK_API_Yield.doj]'
'TMK_ResetTimeout [_TMK_ResetTimeout]' referenced from 'vdk-n-2106X.dlb[VDK_API_PendSemaphore.doj]'
'TMK_ResetTimeout [_TMK_ResetTimeout]' referenced from 'vdk-n-2106X.dlb[VDK_API_Yield.doj]'
'TMK_ResumeScheduling [_TMK_ResumeScheduling]' referenced from 'vdk-n-2106X.dlb[VDK_API_CreateSemaphore.doj]'
'TMK_ResumeScheduling [_TMK_ResumeScheduling]' referenced from 'vdk-n-2106X.dlb[VDK_API_CreateThread.doj]'
'TMK_ResumeScheduling [_TMK_ResumeScheduling]' referenced from 'vdk-n-2106X.dlb[VDK_API_IO.doj]'
'TMK_ResumeScheduling [_TMK_ResumeScheduling]' referenced from 'vdk-n-2106X.dlb[VDK_API_Regions.doj]'
'TMK_Run [_TMK_Run]' referenced from 'vdk-n-2106X.dlb[Initialize.doj]'
'TMK_SetTimeout [_TMK_SetTimeout]' referenced from 'vdk-n-2106X.dlb[BootSemaphoreInit.doj]'
'TMK_SetTimeout [_TMK_SetTimeout]' referenced from 'vdk-n-2106X.dlb[Semaphore.doj]'
'TMK_SetTimeout [_TMK_SetTimeout]' referenced from 'vdk-n-2106X.dlb[VDK_API_CreateSemaphore.doj]'
'TMK_SetTimeout [_TMK_SetTimeout]' referenced from 'vdk-n-2106X.dlb[VDK_Thread.doj]'
'TMK_Stop [_TMK_Stop]' referenced from 'vdk-n-2106X.dlb[VDK_API_DestroyThread.doj]'
'TMK_YieldThread [_TMK_YieldThread]' referenced from 'vdk-n-2106X.dlb[VDK_API_Yield.doj]'
'TMK_YieldThread [_TMK_YieldThread]' referenced from 'vdk-n-2106X.dlb[VDK_Thread.doj]'
'tmk [_tmk]' referenced from 'vdk-n-2106X.dlb[BootSemaphoreInit.doj]'
'tmk [_tmk]' referenced from 'vdk-n-2106X.dlb[IdleThread.doj]'
'tmk [_tmk]' referenced from 'vdk-n-2106X.dlb[VDK_API_CreateSemaphore.doj]'
'tmk [_tmk]' referenced from 'vdk-n-2106X.dlb[VDK_API_CreateThread.doj]'
'tmk [_tmk]' referenced from 'vdk-n-2106X.dlb[VDK_API_DestroySemaphore.doj]'
'tmk [_tmk]' referenced from 'vdk-n-2106X.dlb[VDK_API_DestroyThread.doj]'
'tmk [_tmk]' referenced from 'vdk-n-2106X.dlb[VDK_API_DeviceDrivers.doj]'
'tmk [_tmk]' referenced from 'vdk-n-2106X.dlb[VDK_API_DispatchError.doj]'
'tmk [_tmk]' referenced from 'vdk-n-2106X.dlb[VDK_API_Error.doj]'
'tmk [_tmk]' referenced from 'vdk-n-2106X.dlb[VDK_API_GetThreadID.doj]'
'tmk [_tmk]' referenced from 'vdk-n-2106X.dlb[VDK_API_IO.doj]'
'tmk [_tmk]' referenced from 'vdk-n-2106X.dlb[VDK_API_PendSemaphore.doj]'
'tmk [_tmk]' referenced from 'vdk-n-2106X.dlb[VDK_API_PostSemaphore.doj]'
'tmk [_tmk]' referenced from 'vdk-n-2106X.dlb[VDK_API_Regions.doj]'
'tmk [_tmk]' referenced from 'vdk-n-2106X.dlb[VDK_API_Time.doj]'
'tmk [_tmk]' referenced from 'vdk-n-2106X.dlb[VDK_API_Yield.doj]'
'tmk [_tmk]' referenced from 'vdk-n-2106X.dlb[VDK_ThreadLocalStorage.doj]'
'tmk [_tmk]' referenced from 'vdk-n-2106X.dlb[VDK_Thread_dtor.doj]'
'tmk_ContextRecordSize [_tmk_ContextRecordSize]' referenced from 'vdk-n-2106X.dlb[ThreadMemoryAlloc.doj]'
'tmk_TimerISR [_tmk_TimerISR]' referenced from '.\Release\VDK.doj'

Linker finished with 1 error
cc3089: fatal error: Link failed
Tool failed with exit/exception code: 1.
Build was unsuccessful.

I realized it may be caused by the old linker file "VDK-21062.ldf" (I'm using a SHARC 21062). So I found the new one from VDSP++ v5.1.2 installation folder and replaced it in my project. Then I re-built the project and got the following linking errors:

[Error li1021] The following symbols referenced in processor 'p0' could not be resolved:
'ldf_exhp_length' referenced from '.\Release\seg_init.doj'
'ldf_exhp_space' referenced from '.\Release\seg_init.doj'

Linker finished with 1 error
cc3089: fatal error: Link failed
Tool failed with exit/exception code: 1.
Build was unsuccessful.

Could anyone help to resolve the problem? Thank you for your help.

Regards,

Danny