From: "Petr Hluzín" <petr.hluzin@gmail.com>
To: Arnaud Lacombe <lacombar@gmail.com>
Cc: Hui Zhu <teawater@gmail.com>,
linux-kernel@vger.kernel.org, gdb@sourceware.org,
hellogcc@freelists.org
Subject: Re: [PATCH] Built kernel without -O2 option
Date: Tue, 30 Nov 2010 22:40:00 -0000 [thread overview]
Message-ID: <AANLkTin6J1RiEvnKzzCPZtZpw=xBpBB=dhkpRFGjA0vo@mail.gmail.com> (raw)
In-Reply-To: <AANLkTinpX0p8hv_RJojASbjDNYQ60bODo3kLBobRDtmf@mail.gmail.com>
On 29 November 2010 22:07, Arnaud Lacombe <lacombar@gmail.com> wrote:
> Hi,
>
> On Sun, Nov 28, 2010 at 10:56 PM, Hui Zhu <teawater@gmail.com> wrote:
>> Hi,
>>
>> 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.
>>
> no, it does not, see below ..
>
>> I built and use it in i386 and x86_64. I will try to make it OK in other arch.
>>
>> And I will put new patch in here and
>> http://code.google.com/p/kgtp/downloads/list
>>
>> Thanks,
>> Hui
>>
>> Signed-off-by: Hui Zhu <teawater@gmail.com>
>> ---
>> [...]
>> +ifdef CONFIG_CC_CLOSE_OPTIMIZATION
>> +CFLAGS_process_$(BITS).o += -O2
>> +CFLAGS_entry_$(BITS).o += -O2
>> +CFLAGS_traps.o += -O2
>> +CFLAGS_i387.o += -O2
>> +CFLAGS_xsave.o += -O2
>> +CFLAGS_hpet.o += -O2
>> +endif
>>
>> [...]
>>
>> --- a/lib/Kconfig.debug
>> +++ b/lib/Kconfig.debug
>> @@ -136,6 +136,14 @@ config DEBUG_SECTION_MISMATCH
>> - Enable verbose reporting from modpost to help solving
>> the section mismatches reported.
>>
>> +config CC_CLOSE_OPTIMIZATION
>> + bool "Close GCC optimization"
>> + default n
>> + help
>> + Enabling this option will let gcc build kernel without "-O2".
>> +
>> + If unsure, say N.
>> +
> You are not consistent with yourself, you add an option saying "do not
> build the kernel with -O2" and yet, you add "-O2" flags for unknown
> reason all over the tree...
The patch removes -O2 compilation flag from all files (see the
fragment below) and adds the flag to the few files that actually need
the flag. Unfortunately the patch does not explain that and the noise
of adding the flag obscures the main thing.
>> +++ b/Makefile
>> @@ -540,8 +540,10 @@ all: vmlinux
>> ifdef CONFIG_CC_OPTIMIZE_FOR_SIZE
>> KBUILD_CFLAGS += -Os
>> else
>> +ifndef CONFIG_CC_CLOSE_OPTIMIZATION
>> KBUILD_CFLAGS += -O2
>> endif
>> +endif
Hui, The name of the config option is close to meaningless. I suggest:
- config CONFIG_CC_CLOSE_OPTIMIZATION
- bool "Close GCC optimization"
+ config CONFIG_CC_NO_OPTIMIZATION
+ bool "Compile with almost no optimization"
default n
help
- Enabling this option will let gcc build kernel without "-O2".
+ Enabling this option will let gcc build kernel with no
optimization (where possible).
+ This makes debugging friendlier.
--
Petr Hluzin
next prev parent reply other threads:[~2010-11-30 22:40 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-29 3:56 Hui Zhu
2010-11-29 8:11 ` Américo Wang
2010-11-29 8:18 ` microcai
2010-11-29 8:25 ` Hui Zhu
[not found] ` <4CF36741.9000808@loongson.cn>
2010-11-29 8:48 ` [hellogcc] " Hui Zhu
2010-11-29 8:55 ` Steven
2010-11-29 8:58 ` Hui Zhu
[not found] ` <4CF3762B.9010102@loongson.cn>
2010-11-29 18:11 ` Valdis.Kletnieks
2010-11-29 18:35 ` Steven J. Magnani
[not found] ` <20101129220350.GA10923@core2.telecom.by>
2010-12-01 13:22 ` Hui Zhu
2010-12-01 12:23 ` bekars
2010-12-01 13:24 ` Hui Zhu
2010-12-01 13:58 ` bekars
2010-12-01 15:02 ` Hui Zhu
2010-12-01 15:42 ` jovi zhang
2010-11-29 8:48 ` Américo Wang
2010-11-29 9:11 ` Hui Zhu
2010-11-29 18:05 ` Valdis.Kletnieks
2010-11-29 20:51 ` richard -rw- weinberger
2010-11-29 21:00 ` Arnaud Lacombe
2010-11-29 21:07 ` richard -rw- weinberger
2010-11-29 9:44 ` Christian Borntraeger
2010-11-29 11:12 ` Segher Boessenkool
2010-11-29 11:17 ` Christian Borntraeger
2010-11-29 11:57 ` Nicholas Mc Guire
2010-12-01 12:18 ` Hui Zhu
2010-11-29 9:59 ` Andi Kleen
2010-11-29 10:12 ` Mark Wielaard
2010-11-30 9:26 ` Américo Wang
2010-11-30 18:40 ` Michael Snyder
2010-12-01 12:52 ` Hui Zhu
2010-11-29 19:06 ` Jan Kratochvil
2010-11-29 21:07 ` Arnaud Lacombe
2010-11-30 22:40 ` Petr Hluzín [this message]
2010-12-01 13:42 ` Hui Zhu
2010-12-01 13:11 ` Hui Zhu
2011-01-24 7:48 ` Hui Zhu
2011-01-24 8:11 ` Kevin Pouget
2011-01-24 12:42 ` Hui Zhu
2011-01-28 3:41 ` Hui Zhu
2011-02-17 2:44 ` Hui Zhu
[not found] ` <AANLkTik+beFdZZHLyei044q8EPHwvmiKoFAvAHsNuhmw@mail.gmail.com>
2011-02-21 12:52 ` Kevin Pouget
2011-02-23 5:20 ` Hui Zhu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='AANLkTin6J1RiEvnKzzCPZtZpw=xBpBB=dhkpRFGjA0vo@mail.gmail.com' \
--to=petr.hluzin@gmail.com \
--cc=gdb@sourceware.org \
--cc=hellogcc@freelists.org \
--cc=lacombar@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=teawater@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox