从上图可以看出对于每次的搜索,都是从第一个目录开始搜索,图里也可以看到修改源代码所在的目录,函数,行,昨天的博客感觉对于找到的位置还是不太好。
在使用修改源代码编译的GCC,进行编译内核源代码时,好像性能要慢不少,有可能是打印日志操作有文件IO导致,也有可能是gcc编译的会不会不是release版本不太对,不太清楚。
这是编译linux源代码时看到的效果,这里看到的是从内核-I目录列表搜索。
这里也有一些gcc系统头文件目录搜索。
这是linux内核源代码和gcc源代码地址:
git@gitee.com:rulai_2/linux-6.14.0.git
git@gitee.com:nanjing-mountaineering/gcc.git
要注意的是修改gcc源代码时,有修改目录对应的Makefile文件,不然会报链接错误。
这里有点缺陷就是还没有找到当前是哪个.h或.c文件依赖的头文件,这里要注意,gcc编译是递归解析头文件的#include.
其实,linux内核在编译时和链接时所使用的源代码不一定相同,也即编译能通过,但是链接会报缺少文件这类问题,下一步想找找链接时对于源文件搜索。
个人观点,不一定正确。
感谢阅读