This is the mail archive of the
mailing list for the GDB project.
Re: [PATCH] Built kernel without -O2 option
- From: Christian Borntraeger <borntraeger at de dot ibm dot com>
- To: Américo Wang <xiyou dot wangcong at gmail dot com>
- Cc: Hui Zhu <teawater at gmail dot com>, linux-kernel at vger dot kernel dot org, gdb at sourceware dot org, hellogcc at freelists dot org, linux-kbuild at vger dot kernel dot org
- Date: Mon, 29 Nov 2010 10:44:35 +0100
- Subject: Re: [PATCH] Built kernel without -O2 option
- References: <AANLkTimewZ4QhxzL2vOYYV85pegy8Fu6Rb4XUAPqGUXS@mail.gmail.com> <20101129081619.GD5218@cr0.nay.redhat.com>
Am 29.11.2010 09:16, schrieb Américo Wang:
> On Mon, Nov 29, 2010 at 11:56:15AM +0800, Hui Zhu wrote:
>> Now, there are a lot of ways to debug the Linux kernel with GDB, like
>> qemu, kgtp or kgdb and so on.
>> But the developer more like add a printk. It have a lot of reason, a big one is:
>> (gdb) p ret
>> $3 = <value optimized out>
>> And the code execution order is not right.
>> This is becuase the Kernel is bult with gcc -O2. Gcc will not
>> generate enough debug message with file with -O2.
>> So GDB cannot work very well with Linux kernel.
>> So I make a patch that add a option in "Kernel hacking" called "Close
>> GCC optimization". It will make kernel be built without -O2.
>> I built and use it in i386 and x86_64. I will try to make it OK in other arch.
> The problem is that some functions _have to_ be inlined and gcc without -O2
> doesn't inline them. Have check all the cases? I doubt.
In essence -O2 just tells gcc to activate a list of optimizations
gcc -Q -O2 --help=optimizers
tells you what.
So what about making this patch much smaller by explicitely using the optimizations
that are absolutely necessary?
(what else do we need?)
We might even be able to collapse this with the optimize for size option,
by providing a Kconfig entry that allows to choose between
-O0 -finline-small-functions -finline-functions-called-once
-O1 -finline-small-functions -finline-functions-called-once