From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9565 invoked by alias); 1 Dec 2010 13:11:20 -0000 Received: (qmail 9360 invoked by uid 22791); 1 Dec 2010 13:11:19 -0000 X-SWARE-Spam-Status: No, hits=-2.1 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,TW_KG X-Spam-Check-By: sourceware.org Received: from mail-ww0-f41.google.com (HELO mail-ww0-f41.google.com) (74.125.82.41) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 01 Dec 2010 13:11:14 +0000 Received: by wwi18 with SMTP id 18so1012463wwi.0 for ; Wed, 01 Dec 2010 05:11:12 -0800 (PST) Received: by 10.216.4.83 with SMTP id 61mr1888707wei.67.1291209071799; Wed, 01 Dec 2010 05:11:11 -0800 (PST) MIME-Version: 1.0 Received: by 10.216.186.148 with HTTP; Wed, 1 Dec 2010 05:10:51 -0800 (PST) In-Reply-To: References: From: Hui Zhu Date: Wed, 01 Dec 2010 13:11:00 -0000 Message-ID: Subject: Re: [PATCH] Built kernel without -O2 option To: Arnaud Lacombe Cc: linux-kernel@vger.kernel.org, gdb@sourceware.org, hellogcc@freelists.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2010-12/txt/msg00006.txt.bz2 On Tue, Nov 30, 2010 at 05:07, Arnaud Lacombe wrote: > Hi, > > On Sun, Nov 28, 2010 at 10:56 PM, 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 =3D >> And the code execution order is not right. >> >> This is becuase the Kernel is bult with gcc -O2. =A0Gcc 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". =A0It will make kernel be built without -O2. >> > no, it does not, see below .. > >> I built and use it in i386 and x86_64. =A0I will try to make it OK in ot= her 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 >> --- >> [...] >> +ifdef CONFIG_CC_CLOSE_OPTIMIZATION >> +CFLAGS_process_$(BITS).o =A0 =A0 =A0 +=3D -O2 >> +CFLAGS_entry_$(BITS).o =A0 =A0 =A0 =A0 +=3D -O2 >> +CFLAGS_traps.o =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 +=3D -O2 >> +CFLAGS_i387.o =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0+=3D -O2 >> +CFLAGS_xsave.o =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 +=3D -O2 >> +CFLAGS_hpet.o =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0+=3D -O2 >> +endif >> >> [...] >> >> --- a/lib/Kconfig.debug >> +++ b/lib/Kconfig.debug >> @@ -136,6 +136,14 @@ config DEBUG_SECTION_MISMATCH >> =A0 =A0 =A0 =A0 =A0- Enable verbose reporting from modpost to help solvi= ng >> =A0 =A0 =A0 =A0 =A0 =A0the section mismatches reported. >> >> +config CC_CLOSE_OPTIMIZATION >> + =A0 =A0 =A0 bool "Close GCC optimization" >> + =A0 =A0 =A0 default n >> + =A0 =A0 =A0 help >> + =A0 =A0 =A0 =A0 Enabling this option will let gcc build kernel without= "-O2". >> + >> + =A0 =A0 =A0 =A0 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... > > =A0- Arnaud > You are really good at English. But not mathematics. Add -O2 to build 30 files is better than add -O2 to all files(who know how much files in Linux Kernel?). Thanks, Hui