
起因是用gen_compile_commands.py生成的compilation database对于clangd不太友好,便想着用clang构建内核试试,还是遇到了一些问题,也学习到很多东西。
- scripts/Makefile.extrawarn。clang构建内核需要关掉一些flag,否则会编译失败,这个是最容易修改的。
- cannot jump from this indirect goto statement to one of its possible targets。在此之前我并不知道gcc还有这样的拓展,这个问题出现在drm相关的代码里面,我用比较丑陋的代码暂时处理了,以后再看看mainline kernel是怎么处理的。

- 数组大小问题。

对我而言这是一次有趣的体验,从lkml的patch里面提取有效信息、看llvm issue、看GCC手册,所以写下来当作消遣。