Fix "nm --size-sort" on the busybox binary and document how to make it work.

This commit is contained in:
Rob Landley 2005-07-31 04:25:00 +00:00
parent e70aa9de7e
commit c7a3e1be8f
2 changed files with 27 additions and 62 deletions

View File

@ -169,7 +169,7 @@ ifeq ($(strip $(CONFIG_DEBUG)),y)
STRIPCMD:=/bin/true -Not_stripping_since_we_are_debugging
else
CFLAGS+=$(WARNINGS) $(OPTIMIZATIONS) -D_GNU_SOURCE -DNDEBUG
LDFLAGS += -s -Wl,-warn-common
LDFLAGS += -Wl,-warn-common
STRIPCMD:=$(STRIP) --remove-section=.note --remove-section=.comment
endif
ifeq ($(strip $(CONFIG_STATIC)),y)

View File

@ -246,68 +246,33 @@ have additions to this FAQ document, we would love to add them,
trust PayPal...
<hr />
<p>
<h2><a name="optimize">I want to make busybox even smaller, how do I go about it?</a></h2>
<p>
To conserve bytes it's good to know where they're being used, and the
size of the final executable isn't always a reliable indicator of
the size of the components (since various structures are rounded up,
so a small change may not even be visible by itself, but many small
savings add up).
</p>
<p>
To examine a busybox binary with an eye to saving bytes, build an
optimized debug version and run the "nm" command against it, like so:
</p>
<p>
make clean && make STRIPCMD=/bin/true && nm --size-sort busybox
</p>
<p>
This gives a list of symbols and the amount of space allocated for
each one, sorted by size. (Note: do not enable CONFIG_DEBUG for this,
as that disables compiler optimization which is great for running gdb
but misleading when trying to figure out how much space each component
is really using under normal circumstances.)
</p>
<hr />
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>
<br>