免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2428 | 回复: 4
打印 上一主题 下一主题

请教模块与内核符号表冲突的解决办法 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-11-22 13:20 |只看该作者 |倒序浏览
请教高手:我这儿有一个封装好的模块文件(.0类型的),在我当前编译生成的内核上加载时,出现了许多类似”unresolved symbol kmalloc“这样的符号冲突问题,我当前有内核的所有代码和内核符号表,但没有该模块的代码,请问有什么办法解决目前遇到的符号冲突问题吗?先谢过了。

论坛徽章:
0
2 [报告]
发表于 2007-12-04 13:48 |只看该作者

回复 #1 wyj3390 的帖子

首先,多谢那些走过路过的朋友!
通过近几天的搜索与研究,得出如果冲突的符号包含在.a或.so的库文件中的话,那么是可以通过修改该文件中相应符号表项信息的方法来实现冲突解决的。

论坛徽章:
0
3 [报告]
发表于 2007-12-04 15:59 |只看该作者
原帖由 wyj3390 于 2007-11-22 13:20 发表
请教高手:我这儿有一个封装好的模块文件(.0类型的),在我当前编译生成的内核上加载时,出现了许多类似”unresolved symbol kmalloc“这样的符号冲突问题,我当前有内核的所有代码和内核符号表,但没有该模块 ...


贴代码看看,你是怎么读取.so模块的?
用sysopen???

论坛徽章:
0
4 [报告]
发表于 2007-12-04 16:42 |只看该作者
file  *.o看看输出。 我甚至怀疑产生这个*.o时有没有用ld -r。

论坛徽章:
0
5 [报告]
发表于 2007-12-07 13:30 |只看该作者

回复 #3 lonelyair 的帖子

.so的库文件是ELF格式的,只要按照该格式的标准就可以读出其中需要修改的符号及地址信息。如果感兴趣可以找LINUX下readelf或objdump命令的源代码来看具体读取过程。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP