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.

[参考译文] CCSTUDIO:C29 链接器文件对使用 LTO 进行编译的要求

Guru**** 2670045 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1594002/ccstudio-c29-linker-file-requirements-for-compilation-with-lto

部件号: CCSTUDIO

TI 团队大家好、

我们正在使用 CCS 20.0.2.5 和 TI Clang v2.1.0.STS。 如果我们理解正确、此编译器版本实际上实现了 LTO。 我们的工程链接器文件按以下方式描述了许多段:

    .asection: {
        obj1.o(.rodata,.const,.text,.switch,.cinit)
        obj2.o(.rodata,.const,.switch,.cinit)
        obj3.o(.rodata,.const,.text,.switch,.cinit)
    } > RAM_CPA_CPU1, palign(8)

在启用 LTO 的情况下编译时引用对象是正确的、还是必须对每个函数和变量使用__attribute__((section(“asection")“)) 才能将它们放在内存中需要的位置?

此致、Dmitri

 
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好:

    我已将此主题提请编译器专家注意、因为他们将能够提供最佳帮助。

    谢谢

    Ki

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    尊敬的 Dmitri:

    不 需要、您不需要使用 section 属性。  LTO 将与您现有的链接器命令文件一起使用、但为了使其正常工作、您的工程必须将编译和链接步骤分为两个不同的步骤。  这避免了编译器使用隐藏目标文件名的临时文件名--编译器的下一个发行版将消除该限制。

    -Alan