请教各位大神kernel 符号表 函数名的 .part后缀的含义

linux58 2018-07-25 02:39:35
请教各位大神
kernel 符号表 函数名的 .part后缀是什么意思啊
c03d0860 t i2cdev_detach_adapter.part.0
c03d08a8 t i2cdev_detach_adapter
c03d08e4 t i2cdev_attach_adapter.part.1
c03d09e0 t i2cdev_attach_adapter
...全文
814 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
bigPillow 2018-07-26
  • 打赏
  • 举报
回复
Hi linux58,

不用在意他,这是GCC自动生成的函数:
GCC会把一些比较大的函数分割成几个比较小的inline函数(分割标准与具体编译器有关)
举个例子(例子来源gcc说明)
func (...)
{
if (cheap_test)
something_small
else
something_big
}
由于gcc认为func比较大,他会将这个函数分割出来一部分,新分割出来的函数名字就是原来函数的名字+part+编号(这个编号就是防止分割多个的时候函数名重复) :
func.part (...)
{
something_big
}
分割之后,原来的函数变成这样:
func (...)
{
if (cheap_test)
something_small
else
func.part (...);
}


具体请参考:
https://github.com/gcc-mirror/gcc/blob/master/gcc/ipa-split.c

4,436

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧