All of lore.kernel.org
 help / color / mirror / Atom feed
From: 乔崇 <qiaochong@loongson.cn>
To: hellogcc@freelists.org
Cc: "Américo Wang" <xiyou.wangcong@gmail.com>,
	linux-kernel@vger.kernel.org, gdb@sourceware.org
Subject: Re: [hellogcc] Re: [PATCH] Built kernel without -O2 option
Date: Mon, 29 Nov 2010 17:45:15 +0800	[thread overview]
Message-ID: <4CF3762B.9010102@loongson.cn> (raw)
In-Reply-To: <AANLkTiktPFtCdYpZai-L_WCOpBrZYN5yN_V7GZ5tKGXG@mail.gmail.com>

Hui Zhu 写道:
> In this way, you will got a lot of error.
>
> Hui
>
> On Mon, Nov 29, 2010 at 16:41, 乔崇 <qiaochong@loongson.cn> wrote:
>   
>> does not need change kernel,just write a shell mycc as bellow:
>>
>> #!/bin/sh
>> gcc "$@" -O0
>>
>>     
change mycc to this will work,:)

#!/bin/sh
gcc "$@" -O0 ||
 gcc "$@" -O1 ||
 gcc "$@"
 

>> then
>>
>> make CC=./mycc vmlinux
>>
>> Hui Zhu said
>>
>> On Mon, Nov 29, 2010 at 16:16, Américo Wang <xiyou.wangcong@gmail.com>
>> wrote:
>>
>>
>> On Mon, Nov 29, 2010 at 11:56:15AM +0800, Hui Zhu 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.
>>
>> 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.
>>
>>
>> If they really need O2, I set  them to O2.
>> Actually, this is the main work, find out the file that need the O2.  :)
>>
>> For example:
>> ifdef CONFIG_CC_CLOSE_OPTIMIZATION
>> CFLAGS_fpu.o                           += -O2
>> CFLAGS_aesni-intel_glue.o              += -O2
>> CFLAGS_ghash-clmulni-intel_glue.o      += -O2
>> endif
>>
>> And I will try to find more of these type files.
>>
>>
>>
>> Also, what is size of vmlinux before applying your patch and after that?
>> Does it increase too much?
>>
>>
>>
>> Before the patch:
>> ls -alh vmlinuz-2.6.37-rc3+
>> -rw-r--r-- 1 root root 4.1M 2010-11-25 12:02 vmlinuz-2.6.37-rc3+
>> ls -alh b26no/vmlinux
>> -rwxr-xr-x 1 teawater teawater 135M 2010-11-25 13:31 b26no/vmlinux
>>
>> After the patch:
>> ls -alh vmlinuz-2.6.37-rc3debug+
>> -rw-r--r-- 1 root root 4.6M 2010-11-25 14:02 vmlinuz-2.6.37-rc3debug+
>> ls -alh b26/vmlinux
>> -rwxr-xr-x 1 teawater teawater 140M 2010-11-25 11:14 b26/vmlinux
>>
>> Thanks,
>> Hui
>>
>>
>>
>>
>> --
>>
>> 乔崇 qiaochong@loongson.cn
>>
>> 2010年 11月 29日 星期一 16:35:38 CST
>>     
>
>
>   


-- 

乔崇 qiaochong@loongson.cn
龙芯中科技术服务中心有限公司
office:010-62600855-615
mobile:13521990614

2010年 11月 29日 星期一 17:38:14 CST

  parent reply	other threads:[~2010-11-29  9:45 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-29  3:56 [PATCH] Built kernel without -O2 option Hui Zhu
2010-11-29  8:16 ` Américo Wang
2010-11-29  8:18   ` microcai
2010-11-29  8:24   ` Hui Zhu
     [not found]     ` <4CF36741.9000808@loongson.cn>
2010-11-29  8:47       ` [hellogcc] " Hui Zhu
2010-11-29  8:55         ` Steven
2010-11-29  8:57           ` Hui Zhu
2010-11-29  9:45         ` 乔崇 [this message]
2010-11-29 18:10           ` Valdis.Kletnieks
2010-11-29 18:34             ` Steven J. Magnani
2010-11-29 22:03             ` Alexey Dobriyan
2010-12-01 13:21               ` 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:01                 ` Hui Zhu
2010-12-01 15:42                   ` jovi zhang
2010-11-29  8:52     ` Américo Wang
2010-11-29  9:11       ` Hui Zhu
2010-11-29 18:03       ` 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:31     ` Américo Wang
2010-11-30 18:40       ` Michael Snyder
2010-12-01 12:52   ` Hui Zhu
2010-11-29 19:05 ` Jan Kratochvil
2010-11-29 21:07 ` Arnaud Lacombe
2010-11-30 22:40   ` Petr Hluzín
2010-12-01 13:42     ` Hui Zhu
2010-12-01 13:10   ` Hui Zhu
2011-01-24  7:47 ` 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:43         ` Hui Zhu
     [not found]           ` <AANLkTik+beFdZZHLyei044q8EPHwvmiKoFAvAHsNuhmw@mail.gmail.com>
2011-02-21 12:51             ` Kevin Pouget
2011-02-23  5:19             ` 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=4CF3762B.9010102@loongson.cn \
    --to=qiaochong@loongson.cn \
    --cc=gdb@sourceware.org \
    --cc=hellogcc@freelists.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=xiyou.wangcong@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.