Patchwork build: allow turning off debuginfo

login
register
mail settings
Submitter Gerd Hoffmann
Date Feb. 8, 2012, 12:54 p.m.
Message ID <1328705653-24727-1-git-send-email-kraxel@redhat.com>
Download mbox | patch
Permalink /patch/140141/
State New
Headers show

Comments

Gerd Hoffmann - Feb. 8, 2012, 12:54 p.m.
This patch adds --{enable,disable}-debug-info switches to configure
which allows to include/exclude the '-g' switch on the gcc & ld
command lines.  Not building debug info reduces ressource usage
(especially disk) alot and is quite useful for test builds.

Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
---
 configure |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)
Gerd Hoffmann - Feb. 24, 2012, 10:39 a.m.
On 02/08/12 13:54, Gerd Hoffmann wrote:
> This patch adds --{enable,disable}-debug-info switches to configure
> which allows to include/exclude the '-g' switch on the gcc & ld
> command lines.  Not building debug info reduces ressource usage
> (especially disk) alot and is quite useful for test builds.

ping?

cheers,
  Gerd
Peter Maydell - Feb. 24, 2012, 11:16 a.m.
On 24 February 2012 10:39, Gerd Hoffmann <kraxel@redhat.com> wrote:
> On 02/08/12 13:54, Gerd Hoffmann wrote:
>> This patch adds --{enable,disable}-debug-info switches to configure
>> which allows to include/exclude the '-g' switch on the gcc & ld
>> command lines.  Not building debug info reduces ressource usage
>> (especially disk) alot and is quite useful for test builds.
>
> ping?

We've had this suggested before, haven't we? I quite like the
existing "just build with -g and strip it later" approach...
is the resource usage change really that significant?

-- PMM
Gerd Hoffmann - Feb. 24, 2012, 5:52 p.m.
On 02/24/12 12:16, Peter Maydell wrote:
> On 24 February 2012 10:39, Gerd Hoffmann <kraxel@redhat.com> wrote:
>> On 02/08/12 13:54, Gerd Hoffmann wrote:
>>> This patch adds --{enable,disable}-debug-info switches to configure
>>> which allows to include/exclude the '-g' switch on the gcc & ld
>>> command lines.  Not building debug info reduces ressource usage
>>> (especially disk) alot and is quite useful for test builds.
>>
>> ping?
> 
> We've had this suggested before, haven't we? I quite like the
> existing "just build with -g and strip it later" approach...
> is the resource usage change really that significant?

Disk usage is factor ten:

[kraxel@mort qemu]$ du -sh build-*
1,7G    build-debug
173M    build-nodebug

Build time is factor two:

[build-debug]
7263.45user 805.85system 3:11:03elapsed 70%CPU (0avgtext+0avgdata
1782576maxresident)k
72784880inputs+13340840outputs (1273066major+29668783minor)pagefaults 0swaps

[build-nodebug]
5329.72user 320.46system 1:34:26elapsed 99%CPU (0avgtext+0avgdata
1542848maxresident)k
116000inputs+755248outputs (255major+16535699minor)pagefaults 0swaps

cheers,
  Gerd
Anthony Liguori - Feb. 24, 2012, 7:46 p.m.
On 02/24/2012 05:16 AM, Peter Maydell wrote:
> On 24 February 2012 10:39, Gerd Hoffmann<kraxel@redhat.com>  wrote:
>> On 02/08/12 13:54, Gerd Hoffmann wrote:
>>> This patch adds --{enable,disable}-debug-info switches to configure
>>> which allows to include/exclude the '-g' switch on the gcc&  ld
>>> command lines.  Not building debug info reduces ressource usage
>>> (especially disk) alot and is quite useful for test builds.
>>
>> ping?
>
> We've had this suggested before, haven't we? I quite like the
> existing "just build with -g and strip it later" approach...
> is the resource usage change really that significant?

I applied this because I see almost no harm at all in supporting this and even 
if the resource usage change is small, the benefit compared to the cost of 
maintaining this seems like a reasonable trade off.

Regards,

Anthony Liguori

>
> -- PMM
>
>

Patch

diff --git a/configure b/configure
index 763db24..8e46600 100755
--- a/configure
+++ b/configure
@@ -98,6 +98,7 @@  audio_pt_int=""
 audio_win_int=""
 cc_i386=i386-pc-linux-gnu-gcc
 libs_qga=""
+debug_info="yes"
 
 target_list=""
 
@@ -207,6 +208,10 @@  for opt do
   ;;
   --extra-ldflags=*) LDFLAGS="$optarg $LDFLAGS"
   ;;
+  --enable-debug-info) debug_info="yes"
+  ;;
+  --disable-debug-info) debug_info="no"
+  ;;
   --sparc_cpu=*)
     sparc_cpu="$optarg"
     case $sparc_cpu in
@@ -244,13 +249,15 @@  sdl_config="${SDL_CONFIG-${cross_prefix}sdl-config}"
 
 # default flags for all hosts
 QEMU_CFLAGS="-fno-strict-aliasing $QEMU_CFLAGS"
-CFLAGS="-g $CFLAGS"
 QEMU_CFLAGS="-Wall -Wundef -Wwrite-strings -Wmissing-prototypes $QEMU_CFLAGS"
 QEMU_CFLAGS="-Wstrict-prototypes -Wredundant-decls $QEMU_CFLAGS"
 QEMU_CFLAGS="-D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE $QEMU_CFLAGS"
 QEMU_CFLAGS="-D_FORTIFY_SOURCE=2 $QEMU_CFLAGS"
 QEMU_INCLUDES="-I. -I\$(SRC_PATH) -I\$(SRC_PATH)/fpu"
-LDFLAGS="-g $LDFLAGS"
+if test "$debug_info" = "yes"; then
+    CFLAGS="-g $CFLAGS"
+    LDFLAGS="-g $LDFLAGS"
+fi
 
 # make source path absolute
 source_path=`cd "$source_path"; pwd`
@@ -545,6 +552,10 @@  for opt do
   ;;
   --extra-ldflags=*)
   ;;
+  --enable-debug-info)
+  ;;
+  --disable-debug-info)
+  ;;
   --cpu=*)
   ;;
   --target-list=*) target_list="$optarg"