Linux内核gprof与insmod模块报Unknown symbol __gnu_mcount_nc (err 0)
来源:互联网 发布:大熊猫优化 编辑:程序博客网 时间:2024/05/18 00:27
一、现象
insmod一个自己编译的ko,会报如下错误:
Unknown symbol __gnu_mcount_nc (err 0)二、分析
1.对比之前版本ko文件
grep “__gnu_mcount_nc”
发现其他版本(包括内核更高和更低的版本中)没有这个符号表。
2.在该ko下
grep “__gnu_mcount_nc”
发现有如下符号表
另外,kernel顶层目录下Module.symvers也有该“__gnu_mcount_nc“
三、解决
这个是开启了gprof,才会出现的问题,按道理内核不应该去gprof的。
如果只要编译通过,只需要把CFLAGS的-pg或-p参数去掉,就可以。
对于gprof的实现,其实是编译器做来手脚,在每个函数调用前先调用一个函数,mcount。
在Makefile中找到CFLAGS的-pg,干掉之后,再编译果然就没有出问题了。
对于gprof的实现,其实是编译器做来手脚,在每个函数调用前先调用一个函数,mcount。
在Makefile中找到CFLAGS的-pg,干掉之后,再编译果然就没有出问题了。
发现该kernel顶层Makefile
ifdef CONFIG_FUNCTION_TRACER #KBUILD_CFLAGS += -pg #modify tank ifdef CONFIG_DYNAMIC_FTRACE ifdef CONFIG_HAVE_C_RECORDMCOUNT BUILD_C_RECORDMCOUNT := y export BUILD_C_RECORDMCOUNT endif endif endif屏蔽掉gcc编译参数后问题解决。
3.类似错误
unkonw symbol__stack_chk_guard
unkonw symbol__stack_chk_fail
KBUILD_CFLAGS += $(call cc-option, -fno-stack-protector)
0 0
- Linux内核gprof与insmod模块报Unknown symbol __gnu_mcount_nc (err 0)
- ARM 开发板insmod安装内核模块时,Unknown symbol usb_register_driver (err 0)
- Unknown symbol platform_driver_unregister (err 0)
- Unknown symbol platform_driver_unregister (err 0)
- Unknown symbol __udivdi3 (err 0)
- linux驱动模块加载出错insmod: error inserting './usb_driver.ko': -1 Unknown symbol in module
- linux内核插入模块时 Unknown symbol in module
- vboxdrv: Unknown symbol mcount (err 0) 解决方法
- fpga_driver: Unknown symbol gpmc_cs_read_reg (err 0)
- 关于 insmod Unknown symbol error
- 加载内核模块-Unknown symbol错误分析
- 加载内核模块-Unknown symbol错误分析
- 加载内核模块-Unknown symbol错误分析
- Linux内核模块的加载 insmod
- 导出内核符号 EXPORT_SYMBOL insmod: error inserting 'mod2.ko': -1 Unknown symbol in module
- 内核与内核模块:depmod,lsmod,modinfo,insmod,rmmod,mdprobe
- 内核与内核模块:depmod,lsmod,modinfo,insmod,rmmod,mdprobe
- 内核与内核模块:depmod,lsmod,modinfo,insmod,rmmod,mdprobe
- onInterceptTouchEvent和onTouchEvent调用时序
- 第16周项目2-用指针玩字符串(1)
- :even :obb 选择器
- Android杂谈--ListView优化
- android px、dp和sp,这些单位有什么区别?
- Linux内核gprof与insmod模块报Unknown symbol __gnu_mcount_nc (err 0)
- Redis need tcl 8.5 or newer
- JS 的NULL undefined 空
- android RotateAnimation 主要参数
- 线程学习总结(线程池)
- 16周(oj 倒序)
- 数据库约束性
- Qt_OpenGL:光源小测
- 14分析1