Introduction

When migrating from HighTec TriCore LLVM toolchain v10.x to v11.0.0, some projects may require linker script updates.

The change is caused by new default compiler behavior in TriCore V11: functions and data placed into user-defined sections may now be emitted into generated subsection names. If the linker script refers only to the exact section name and does not use wildcards, these input sections may no longer be matched.

This can lead to missing code or data in the final image. In startup-related sections, this may result in an empty startup output section and a runtime trap after reset.

Projects that already use suitable wildcard patterns in the linker script, for example *(.text*), *(.my_section.*), or *(.start*), are typically not affected.

Limitations

  • The document does not cover all types of issues; it focuses only on the linker-related problems, which are the consequence of the updated default compiler behavior.