How to compile Linux kernel with -O0 flag

Yann Droneaud ydroneaud at opteya.com
Sun Aug 14 10:20:31 EDT 2016


Hi,

Le dimanche 14 août 2016 à 13:31 +0200, Greg KH a écrit :
> On Sun, Aug 14, 2016 at 07:11:01PM +0800, Hao Lee wrote:
> > 
> > > 
> > > Just out of curiosity - is there a technical reason why -O0
> > > couldn't be used in Linux kernel? I don't know, spinlocks would
> > > not work in this case because it's how GCC was written or
> > > something. Or just nobody compiles and tests kernel like this so
> > > it most likely would not work?
> > > 
[...]
> > Hi, I also like figuring out what's happening in the OS underlying.
> > So I have some ideas about reducing optimization. Although you
> > couldn't turn off optimization completely, you can use both -O2 and
> > other options to reducing optimization as far as possible.
> > You can use -O2 -Q -v to find out which options are enabled when
> > using -O2. Then you can try -O2 -fno-defer-pop -fno-thread-jumps
> > etc. to disable some options. I once used this approach to debug
> > kernel-2.4 in bochs simulator. Unfortunately, this approach could
> > not counteract the effects of -O2 completely, but it's worth a try.
> 
> No, please don't do that.  If you do, you will end up with a
> completly unsuported and unknown system and no one will be able to
> help you out with any sort of problem solving.
> 

And what about -Og which is a dedicated optimization level since GCC
4.8

https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html#index-Og-723
https://gcc.gnu.org/gcc-4.8/changes.html

Regards.

-- 
Yann Droneaud
OPTEYA




More information about the Kernelnewbies mailing list