arm - 用 clang / llvm 抑制部分 '.ARM.exidx'
问题描述
我正在尝试使用clang
. (代码和链接器脚本可以与 gcc 一起正常工作。)
我的问题是,无论是否需要,它clang
似乎都会发出一个部分。.ARM.exidx
由于对于我的代码,gcc 没有发出一个.ARM.exidx
部分,因此我的链接器脚本没有为它指定一个区域。然而,如此错误消息所示,clang 似乎发出了它:
ld.lld: error: no memory region specified for section '.ARM.exidx'
clang: error: ld.lld command failed with exit code 1 (use -v to see invocation)
有什么方法可以避免在不需要时生成此部分?
我尝试了这些选项-fno-unwind-tables
,-fno-exceptions
但似乎是一个已知错误,它们无法按预期工作。请参阅这些拉取请求:D31139和D31140
我目前正在使用链接器脚本中的以下部分定义来解决此问题:
/DISCARD/ :
{
*(.ARM.exidx)
}
这似乎有点脆弱,因为如果由于代码的任何更改,该部分将丢失,稍后需要该部分。