在 Linux 上,clang
以下gcc
有一个-ffunction-sections
选项,可以将每个函数放在自己单独的部分(然后可以使用适当的链接选项来删除未使用的部分,从而删除未使用的函数)。
然而,它似乎clang
在 MacOS 上默默忽略了此选项:无论有没有它,汇编代码都是相同的。
这正常吗?有什么评论吗?
在 Linux 上,clang
以下gcc
有一个-ffunction-sections
选项,可以将每个函数放在自己单独的部分(然后可以使用适当的链接选项来删除未使用的部分,从而删除未使用的函数)。
然而,它似乎clang
在 MacOS 上默默忽略了此选项:无论有没有它,汇编代码都是相同的。
这正常吗?有什么评论吗?
备注一:当以 Linux 为目标(因此生成 ELF 对象而不是 Mach-O 对象)时,Apple clang 不会发生这种行为。
根据https://github.com/aidansteele/osx-abi-macho-file-format-reference,TEXT段似乎仅包含一组有限的部分
因此,虽然驱动程序可能应该发出某种诊断,但这可能是由于输出二进制格式不支持该选项造成的。