How to compile Linux kernel with -O0 flag
Mike Krinkin
krinkin.m.u at gmail.com
Sat Aug 13 15:15:47 EDT 2016
On Sat, Aug 13, 2016 at 09:56:05PM +0300, Aleksander Alekseev wrote:
> > The kernel will not run with -O0, sorry, just live with the build
> > optimization levels that is currently used and you should be fine.
>
> Oh, I see. Fortunately I'm not afraid of assembler :) Thanks.
>
> 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?
Just fixed Makefile and tried to build it with -O0, it doesn't even
compile, i got errors like this:
./include/linux/compiler-gcc.h:243:38: error: impossible constraint in ‘asm’
#define asm_volatile_goto(x...) do { asm goto(x); asm (""); } while (0)
^
./arch/x86/include/asm/cpufeature.h:146:3: note: in expansion of macro ‘asm_volatile_goto’
asm_volatile_goto("1: jmp 6f\n"
Probably gcc cannot figure out that an macro argument can be evaluated at
compile time with optimizations disabled.
>
> > But why do you want to use a debugger on the kernel? That's not a
> > normal task unless you are bringing up a new hardware platform.
>
> It's just something I always do when I learn new things. Trying to
> figure out how to debug something in this new environment. No real task
> so far.
>
> --
> Best regards,
> Aleksander Alekseev
>
> _______________________________________________
> Kernelnewbies mailing list
> Kernelnewbies at kernelnewbies.org
> https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
More information about the Kernelnewbies
mailing list