2 bolibei0801 bolibei0801 于 2014.08.20 11:17 提问

error: implicit declaration of function `__sync_fetch_and_or'

用codeviz来生成linux内核的函数调用图

首先是编译内核,这里我们的目的是查看函数调用关系,并非安装新内核,所以直接
进行配置编译:
make menuconfig
make CC=/usr/local/gcc-graph/bin/gcc bzImage
make CC=/usr/local/gcc-graph/bin/gcc modules

在进行到make CC=/usr/local/gcc-graph/bin/gcc modules这一步的时候出现如下错误提示:

opened dep file drivers/staging/line6/pcm.c.cdepn
drivers/staging/line6/pcm.c: In function line6_pcm_start':
drivers/staging/line6/pcm.c:92: error: implicit declaration of function
__sync_fetch_and_or'
drivers/staging/line6/pcm.c:137: error: implicit declaration of function `__sync_fetch_and_and'
make[3]: *** [drivers/staging/line6/pcm.o] Error 1
make[2]: *** [drivers/staging/line6] Error 2
make[1]: *** [drivers/staging] Error 2
make: *** [drivers] Error 2

这种情况有没有遇到过啊,如何解决的呢,急急急!
谢谢大家!!

1个回答

luckywang1103
luckywang1103   2014.12.26 09:05

__sync_fetch_and_and这个函数没有引用他的头文件,或者在定义的地方没有EXPORT_SYMBOL出来
如果你想尽快编译完内核的话,make menuconfig的时候把这个模块给去掉,只编译你需要查看调用关系的那支驱动

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!