Linker Warning W132: cannot bind symbol _lc_ub_heap … and cannot bind symbol _lc_ue_heap …

24-Oct-2024

The cause of these warnings after upgrading to v6.3r1 is that the heap definition was moved from tc_mc_arch.lsl to derivative.lsl to support core-specific LSL files, where each core has its own heap. The tc_mc_arch.lsl file is now included in derivative.lsl.


Possible solutions

When the project uses a (customized) derivative.lsl from an older version, you can mitigate the issue as follows:


Solution 1

Copy the file tc_mc_arch.lsl from the ctc\include.lsl sub-directory of the older TriCore toolset version to the folder that contains the derivative.lsl file used by your project. This will ensure that the heap definition is included again.


Solution 2

Add the following entries to the derivative.lsl file used by your project:

#ifndef HEAP
#define HEAP 16k /* heap size */
#endif
section_setup :vtc:linear
{
heap "heap"
(
min_size = (HEAP),
fixed,
align = 8
);
}


More resources


Was this answer helpful?