Linux kernel 是否可以为不同的驱动程序构建具有不同编译器优化设置的Linux内核

Linux kernel 是否可以为不同的驱动程序构建具有不同编译器优化设置的Linux内核,linux-kernel,Linux Kernel,我希望能够更有效地调试我的驱动程序,因为我能够一步一步地完成源代码,而不需要到处跳。有没有办法指定只有某个驱动程序才能得到-O0优化?其余的人可以得到普通Linux内核操作的任何东西,例如-O3?没有解释的否决票?这个问题怎么了?是的。对我来说似乎是个合理的问题。我没有一个好的答案:我不认为有任何简单的方法来做你想做的事。作为短期黑客,我可能会运行“make-n”来捕获将驱动程序构建到shell脚本中所需的特定命令。然后手动构建驱动程序,然后在整个内核上运行make来完成它。(使用CONFIG_

我希望能够更有效地调试我的驱动程序,因为我能够一步一步地完成源代码,而不需要到处跳。有没有办法指定只有某个驱动程序才能得到-O0优化?其余的人可以得到普通Linux内核操作的任何东西,例如-O3?

没有解释的否决票?这个问题怎么了?是的。对我来说似乎是个合理的问题。我没有一个好的答案:我不认为有任何简单的方法来做你想做的事。作为短期黑客,我可能会运行“make-n”来捕获将驱动程序构建到shell脚本中所需的特定命令。然后手动构建驱动程序,然后在整个内核上运行make来完成它。(使用CONFIG_FRAME_指针编译整个内核有很多值得一提的地方,尽管这样做是为了获得合理的回溯。)是的,这是可能的,但不是直接的,而且如果在没有默认优化的情况下编译,您可能会看到随机崩溃。因为内核代码的某些部分依赖于编译器优化。正如Gil Hamilton所提到的,您必须调整构建脚本和makefile以使用-O0编译它。据我所知,只要代码不直接在代码中或直接在(内核头文件中的内联函数)中使用特定于gcc的约束,模块就应该使用-O0优化