This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MCU-PLUS-SDK-AM243X: "relocation to symbol overflowed" using c++ - TI Arm Clang

Part Number: MCU-PLUS-SDK-AM243X
Other Parts Discussed in Thread: SYSCONFIG

Hi TI-Experts,

we try to set up an empty CCS Project for the AM243x based on the TI Arm Clang Compiler Tools with C++ support. 

Therefore we use:

  • Code Composer Studio 11.0.0.00012
  • TI Clang v1.3.0.LTS
  • mcu_plus_sdk_am243x_08_01_00_36
  • sysconfig_1.10.0

Steps to reproduce:

1. Import the empty example project from the sdk (mcu_plus_sdk_am243x_08_01_00_36\examples\empty\am243x-lp\r5fss0-0_freertos) into CCS
2. Build the example - success
3. Rename main.c to main.cpp
4. Wrapped everything except the int main() function with extern "C" { }
5. Rebuild the complete project - success
6. Introduced a user class in the C++ area (not extern "C"):

class myClass
{
public:
    myClass(){id = -1;}
    int32_t getID(){return id;}

private:
    int32_t id;
};



7. build - success
8. Create an instance of the class in main():
myClass instance {};

9. Build finished with warnings:

warning #17003-D: relocation to symbol "__TI_exidx_linkto_scn_start_1" overflowed; the 32-bit relocated address 0x8ff58268 is too large to encode in the 31-bit signed PC-Relative field (type = 'R_ARM_PREL31' (42), file = "<internal>", offset = 0x00000000, section = ".ARM.exidx.vectors:freertos.am243x.r5f.ti-arm-clang.debug.lib<HwiP_armv7r_vectors_freertos_asm.obj>")

warning #10015-D: output file "empty_am243x-lp_r5fss0-0_freertos_ti-arm-clang.out" cannot be loaded and run on a target system

-> It is not possible to load or debug the binary.

We checked the TI Arm Clan Compiler Tools User's guide: https://software-dl.ti.com/codegen/docs/tiarmclang/compiler_tools_user_guide/getting_started_guide/using_the_tools.html# - without success.
In addition, we verified that the "Generate Far Call Trampolines (-trampolines Option) is set.


Question: 

Is there a special linker option necessary to link C++ object files?


Thanks in advance
Best regards,

Tommy