svn commit: trunk/busybox

Tito farmatito at tiscali.it
Sat May 13 19:32:51 UTC 2006


On Saturday 13 May 2006 21:11, Bernhard Fischer wrote:
> On Tue, May 09, 2006 at 03:08:58PM -0700, landley at busybox.net wrote:
> >Author: landley
> >Date: 2006-05-09 15:08:56 -0700 (Tue, 09 May 2006)
> >New Revision: 15043
> >
> >Log:
> >Split CONFIG_DEBUG from CONFIG_DEBUG_PESSIMIZE, and consolidate some Rules.mak
> >stuff along the way.
> 
> Along the way you have dropped pulling in *any* OPTIMIZATION flags for
> this trivial .config:
> 
> $ egrep -v "(#|^$)" .config
> HAVE_DOT_CONFIG=y
> CONFIG_FEATURE_BUFFERS_USE_MALLOC=y
> CROSS_COMPILER_PREFIX=""
> EXTRA_CFLAGS_OPTIONS=""
> CONFIG_INSTALL_APPLET_SYMLINKS=y
> PREFIX="./_install"
> CONFIG_MD5_SIZE_VS_SPEED=2
> CONFIG_HDPARM=y
> CONFIG_FEATURE_HDPARM_GET_IDENTITY=y
> CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF=y
> CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF=y
> CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET=y
> CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF=y
> CONFIG_FEATURE_HDPARM_HDIO_GETSET_DMA=y
> CONFIG_FEATURE_SH_IS_NONE=y
> CONFIG_FEATURE_COMMAND_HISTORY=0
> CONFIG_FEATURE_IPC_SYSLOG_BUFFER_SIZE=0
> 
> 
> make V=3 for the .config above gives a completely un-optimized
> executable:
> gcc-4.1 -I/tmp/obj/busybox/include -I/tmp/obj/busybox/include
> -I/tmp/obj/busybox
> /libbb -D_GNU_SOURCE -funsigned-char -fno-builtin-strlen
> -Wstrict-prototypes -Wm
> issing-prototypes -Wmissing-declarations -Wunused -Winit-self -Wshadow
> -Wcast-al
> ign -Wall -Wstrict-prototypes -Wshadow -DNDEBUG -funsigned-char
> -fno-builtin-str
> len -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations
> -Wunused -Wi
> nit-self -Wshadow -Wcast-align -c -o /tmp/obj/busybox/miscutils/hdparm.o
> /tmp/ob
> j/busybox/miscutils/hdparm.c
> ar cru /tmp/obj/busybox/miscutils/miscutils.a
> /tmp/obj/busybox/miscutils/hdparm.
> o
> 
> 
> Please fix!

That's why we get so different binary sizes for hdparm.o,
cause i'm building it in an older bb tree:

Tito
> >
> >Modified:
> >   trunk/busybox/Config.in
> >   trunk/busybox/Rules.mak
> >
> >
> >Changeset:
> >Modified: trunk/busybox/Config.in
> >===================================================================
> >--- trunk/busybox/Config.in	2006-05-09 11:29:56 UTC (rev 15042)
> >+++ trunk/busybox/Config.in	2006-05-09 22:08:56 UTC (rev 15043)
> >@@ -288,17 +288,27 @@
> > menu 'Debugging Options'
> > 
> > config CONFIG_DEBUG
> >-	bool "Build BusyBox with Debugging symbols"
> >+	bool "Build BusyBox with extra Debugging symbols"
> > 	default n
> > 	help
> >-	  Say Y here if you wish to compile BusyBox with debugging symbols.
> >-	  This will allow you to use a debugger to examine BusyBox internals
> >-	  while applets are running.  This increases the size of the binary
> >-	  considerably and should only be used when doing development.
> >-	  If you are doing development and want to debug BusyBox, answer Y.
> >+	  Say Y here if you wish to examine BusyBox internals while applets are
> >+	  running.  This increases the size of the binary considerably, and
> >+	  should only be used when doing development.  If you are doing
> >+	  development and want to debug BusyBox, answer Y.
> > 
> > 	  Most people should answer N.
> > 
> >+config CONFIG_DEBUG_PESSIMIZE
> >+	bool "Disable compiler optimizations."
> >+	default n
> >+	depends on CONFIG_DEBUG
> >+	help
> >+	  The compiler's optimization of source code can eliminate and reorder
> >+	  code, resulting in an executable that's hard to understand when
> >+	  stepping through it with a debugger.  This switches it off, resulting
> >+	  in a much bigger executable that more closely matches the source
> >+	  code.
> >+
> > choice
> > 	prompt "Additional debugging library"
> > 	default CONFIG_NO_DEBUG_LIB
> >
> >Modified: trunk/busybox/Rules.mak
> >===================================================================
> >--- trunk/busybox/Rules.mak	2006-05-09 11:29:56 UTC (rev 15042)
> >+++ trunk/busybox/Rules.mak	2006-05-09 22:08:56 UTC (rev 15043)
> >@@ -75,13 +75,14 @@
> > 
> > # This must bind late because srcdir is reset for every source subdirectory.
> > INCS:=-I$(top_builddir)/include -I$(top_srcdir)/include
> >-CFLAGS=$(INCS) -I$(srcdir)
> >+CFLAGS=$(INCS) -I$(srcdir) -D_GNU_SOURCE
> > CFLAGS+=$(CHECKED_CFLAGS)
> > ARFLAGS=cru
> > 
> > # Warnings
> > 
> >-CFLAGS+=-Wall -Wstrict-prototypes -Wshadow
> >+CFLAGS += -Wall -Wstrict-prototypes -Wshadow
> >+LDFLAGS += $(call check_ld,--warn-common,)
> > 
> > # gcc centric. Perhaps fiddle with findstring gcc,$(CC) for the rest
> > # get the CC MAJOR/MINOR version
> >@@ -183,7 +184,7 @@
> > 	OPTIMIZATION+=$(call check_gcc,-fno-branch-count-reg,)
> > endif # gcc-4.1 and beyond
> > endif
> >-OPTIMIZATIONS:=$(OPTIMIZATION) $(call check_gcc,-fomit-frame-pointer,)
> >+OPTIMIZATION+=$(call check_gcc,-fomit-frame-pointer,)
> > 
> > #
> > #--------------------------------------------------------
> >@@ -207,14 +208,21 @@
> > 	LIBRARIES:=-lefence
> >     endif
> > endif
> >+
> >+# Debugging info
> >+
> > ifeq ($(strip $(CONFIG_DEBUG)),y)
> >-    CFLAGS  +=-g -D_GNU_SOURCE
> >-    LDFLAGS += $(call check_ld,--warn-common,)
> >+    CFLAGS +=-g
> > else
> >-    CFLAGS+=$(OPTIMIZATIONS) -D_GNU_SOURCE -DNDEBUG
> >-    LDFLAGS += $(call check_ld,--warn-common,)
> >+    CFLAGS +=-DNDEBUG
> >     LDFLAGS += $(call check_ld,--sort-common,)
> > endif
> >+
> >+ifneq ($(strip $(CONFIG_DEBUG_PESSIMIZE)),y)
> >+else
> >+    CFLAGS += $(OPTIMIZATION)
> >+endif
> >+
> > # warn a bit more verbosely for non-release versions
> > ifneq ($(EXTRAVERSION),)
> >     CHECKED_CFLAGS+=$(call check_gcc,-Wstrict-prototypes,)
> >
> >_______________________________________________
> >busybox-cvs mailing list
> >busybox-cvs at busybox.net
> >http://busybox.net/cgi-bin/mailman/listinfo/busybox-cvs
> >
> _______________________________________________
> busybox mailing list
> busybox at busybox.net
> http://busybox.net/cgi-bin/mailman/listinfo/busybox
> 



More information about the busybox mailing list