summaryrefslogtreecommitdiff
path: root/Makefile.flags
AgeCommit message (Collapse)Author
2012-09-04build system: stop .eh_frame generationDenys Vlasenko
From Rich Felker: By default, modern GCC generates DWARF2 debug/unwind tables in the .eh_frame section of the object files/binaries. This adds significant bloat (as much as 15%) to the size of the busybox binary, including the portion mapped/loaded into memory at runtime (possibly a big issue for NOMMU targets), and the section is not strippable with the strip command due to being part of the loaded program text. I've since done some further checking - both testing and asking the GCC developers about it - and it seems the solution is to add to the CFLAGS -fno-unwind-tables and -fno-asynchronous-unwind-tables. If debugging is disabled, this will prevent GCC from outputting DWARF2 tables entirely. But since busybox builds with -g by default, the interesting case is what happens then. I originally thought these options would break debugging, but they don't; instead, they tell GCC to output the DWARF2 tables in the .debug_frame section instead of the newish .eh_frame section (used for exception handling). With these options added, busybox_unstripped is still fully debuggable, and the final busybox binary loses the 15% bloat factor from the DWARF2 tables. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-08-04disable format security warningsMike Frysinger
We pass strings to printf directly a lot. Some distros enable some flags in their gcc by default like -Wformat-security. With these two things, we end up with a lot of build warnings like so: loginutils/chpasswd.c:42:3: warning: format not a string literal and no format arguments [-Wformat-security] But we don't care. Our focus is first and foremost on size, so adding a lot of dummy calls like: - printf(some_constant_string); + printf("%s", some_constant_string); is pointless bloat. Disable this warning flag if the compiler supports it. Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2012-04-20fix build breakage with gcc 4.2.1Denys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-11build system: remove bogus $(1) in last commitDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-10build system: detect missing crypt and drop it from linkingDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-08build system: fix broken CONFIG_SYSROOT handlingDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2012-03-07Add SYSROOT, EXTRA_{LDFLAGS,LDLIBS} config opts; sample Android NDK configRob Walker
Signed-off-by: Rob Walker <rwalker@rwalker.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-12-05Fix link failure on some platforms when PAM is enabledTristan Schmelcher
Signed-off-by: Tristan Schmelcher <tristan_schmelcher@alumni.uwaterloo.ca> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-09-09Android build fixes and alternate (hopefully simpler) defconfig for itDenys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2011-05-02Compile options: default to -O2 when -Os is not availableWolfgang Denk
Recent versions of GCC for PowerPC systems suffer from some compiler bugs which prevent the use of "--enable-target-optspace" in their configuration, which makes the compiler option "-Os" unavailable; for reference see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43810 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48278 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=45053 In the result, BusyBox will be compiled without any optimization options, which causes a huge binary (1.8 MiB for default configuration on PPC, built with gcc 54.51 from the Yocto / Poky / OpenEmbedded tool chains). This commit changes behaviour so "-O2" gets used as fallback when "-Os" is not available. This reduces the image size in above test to 1.3 MiB. This is still 10...15% more then what we get with "-Os", but much better than using no optimization at all. Signed-off-by: Wolfgang Denk <wd@denx.de> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2010-11-16allow SKIP_STRIP to be set in the envMike Frysinger
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2010-02-04diff: more compiler compat fixes. no code changesDan Fandrich
Signed-off-by: Dan Fandrich <dan@coneharvesters.com> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-08-22preliminary work for gcc 4.4.0Denys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-03-12the -elf2flt flag can be used w/out -Wl, so drop the requirement so people ↵Mike Frysinger
can use either form
2009-02-18- add flash_eraseallBernhard Reutner-Fischer
This is the result after converting mtd-utils' flash_eraseall to BB. The functionality given by this patch almost the same except that this one does not support long options. I needed this tool a system which does not have a lot of flash for RFS and merging this into BB as the only way out. [bigeasy@]$ ./scripts/bloat-o-meter bb_wo_fl bb_w_fl function old new delta flash_eraseall_main - 1072 +1072 show_progress - 62 +62 packed_usage 25156 25176 +20 applet_names 1958 1973 +15 applet_main 2352 2360 +8 target_endian - 4 +4 applet_nameofs 588 590 +2 applet_install_loc 147 148 +1 ------------------------------------------------------------------------------ (add/remove: 3/0 grow/shrink: 5/0 up/down: 1184/0) Total: 1184 bytes [bigeasy@]$ size miscutils/flash_eraseall.o text data bss dec hex filename 1586 4 0 1590 636 miscutils/flash_eraseall.o Signed-off-by: Benedigt Spranger <b.spranger@linutronix.de> Signed-off-by: Sebastian Andrzej Siewior <bigeasy@linutronix.de>
2009-01-22- add CONFIG_EXTRA_CFLAGS (thanks to keesj)Bernhard Reutner-Fischer
This helps with remembering additional flags like e.g. cpu settings for people who did not configured their compiler to produce code for their cpu per default.
2008-08-05- reinstate commented out _FORTIFY_SOURCE that was somehow dropped by Denys?Bernhard Reutner-Fischer
2008-06-12Reinstate DEBUG_PESSIMIZE (by Christian Ionescu-Idbohrn)Denis Vlasenko
2008-06-06Build system: track -Wl,-elf2flt in CFLAGS_busybox too.Denis Vlasenko
Document in comments that it generally should be thers, not in LDFLAGS
2008-06-04remove -fno-jump-tables - after stripping it proved to be worseDenis Vlasenko
2008-06-04build system: add PIE build optionDenis Vlasenko
2008-05-18more -Wall warning fixes. -Wall is enabled now.Denis Vlasenko
2008-05-15Add more -W options to gcc.Denis Vlasenko
2008-05-08build system: do not rebuild entire tree if it is movedDenis Vlasenko
2008-03-17*: add -Wunused-parameter; fix resulting breakageDenis Vlasenko
function old new delta procps_scan 1265 1298 +33 aliascmd 278 283 +5 parse_file_cmd 116 120 +4 dname_enc 373 377 +4 setcmd 90 93 +3 execcmd 57 60 +3 count_lines 72 74 +2 process_command_subs 340 339 -1 test_main 409 407 -2 mknod_main 179 177 -2 handle_incoming_and_exit 2653 2651 -2 argstr 1312 1310 -2 shiftcmd 131 128 -3 exitcmd 46 43 -3 dotcmd 297 294 -3 breakcmd 86 83 -3 evalpipe 353 349 -4 evalcommand 1180 1176 -4 evalcmd 109 105 -4 send_tree 374 369 -5 mkfifo_main 82 77 -5 evalsubshell 152 147 -5 typecmd 75 69 -6 letcmd 61 55 -6 add_cmd 1190 1183 -7 main 891 883 -8 ash_main 1415 1407 -8 parse_stream 1377 1367 -10 alloc_procps_scan 55 - -55 ------------------------------------------------------------------------------ (add/remove: 0/1 grow/shrink: 7/21 up/down: 54/-148) Total: -94 bytes text data bss dec hex filename 797195 658 7428 805281 c49a1 busybox_old 797101 658 7428 805187 c4943 busybox_unstripped
2007-12-24defconfig: updateDenis Vlasenko
appletli.c: add vda's (C) top: fixlet for incorrect display of "0" Makefile: reduce stack size from 20k to 16k
2007-10-11add -fvisibility=hidden to CC flags, mark XXX_main functionsDenis Vlasenko
EXTERNALLY_VISIBLE. 5% size reduction of libbusybox.so
2007-10-11add -fpic to CC flags when we build libbusybox (14% smaller .so)Denis Vlasenko
2007-10-07reviving libbusybox, adding CONFIG_INDIVIDUAL part 3Denis Vlasenko
2007-10-07reviving libbusybox, adding CONFIG_INDIVIDUAL part 2Denis Vlasenko
2007-08-21login: optional support for PAMDenis Vlasenko
2007-07-17Modify method of linking against libs. Now we fisrt try allDenis Vlasenko
specified libs, and if it succeeds, we try to remove them one-by-one. If link succeeds, then library is thrown out. Should solve the problem with SELinux linking in libsepol even when not needed.
2007-06-21random shrinkage of statics, -60 bytes savedDenis Vlasenko
2007-06-21since we removed the deprecated matches() now and thus not alot of warnings ↵Bernhard Reutner-Fischer
are currently seen, let's strive to fixup these: - warn a little bit about unused results
2007-06-19punt %.bflt target in favor of proper LDFLAGS=-Wl,-elf2flt handlingMike Frysinger
2007-06-10moved biggest stack buffers to malloc space, or made their size configurableDenis Vlasenko
(8k of shell line edit buffer is an overkill) # make ARCH=i386 bloatcheck function old new delta read_line_input 3933 3967 +34 ifaddrlist 348 345 -3 do_loadfont 208 191 -17 edit_file 840 819 -21 .rodata 129112 129080 -32 uncompress 1305 1268 -37 loadfont_main 566 495 -71 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 1/6 up/down: 34/-181) Total: -147 bytes
2007-04-05set default FLTFLAGS for a fatty stackMike Frysinger
2007-03-30introduce the concept of LDLIBS for additional libraries so that when we do ↵Mike Frysinger
the final link, the objects/libraries are in the correct order
2007-03-28- reinstate dmalloc and efence supportBernhard Reutner-Fischer
2007-02-06new applets: selinux utils by KaiGai Kohei <kaigai@kaigai.gr.jp>Denis Vlasenko
2007-02-01add -Wwrite-strings to MakefileDenis Vlasenko
2007-01-29disable -Wold-style-definition for gcc 3.xDenis Vlasenko
2007-01-27make it possible to build bbox without warnings again.Denis Vlasenko
2007-01-27Make -Werror configurableDenis Vlasenko
2007-01-23- call cc-option to check if the compiler supports the flags we asked to useBernhard Reutner-Fischer
2007-01-22- add more strict prototype checking to catch wrong and broken code (like ↵Bernhard Reutner-Fischer
nested functions)
2007-01-08- guess we need dl tooBernhard Reutner-Fischer
2007-01-08- set LD to ldBernhard Reutner-Fischer
- simplify the cmd_busybox__ a bit and pass the LDFLAGS via -Wl down to CC
2006-12-13- honor CONFIG_DEBUGBernhard Reutner-Fischer
2006-12-06- better distinction between CFLAGS and CPPFLAGS.Bernhard Reutner-Fischer