From fe93624fb69e3858ebaea2d9e53e0522c1025698 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Fri, 6 Jan 2017 19:16:36 +0100 Subject: Automatically disable FEATURE_COMPRESS_USAGE for small builds. Signed-off-by: Denys Vlasenko --- applets/usage_compressed | 3 +++ libbb/appletlib.c | 26 ++++++++++++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/applets/usage_compressed b/applets/usage_compressed index 186fcde77..36fc2a007 100755 --- a/applets/usage_compressed +++ b/applets/usage_compressed @@ -36,6 +36,9 @@ echo '' #0000040 114 105 135 040 133 055 141 040 101 103 124 111 117 116 106 111 # 042514 020135 026533 020141 041501 044524 047117 044506 +echo "#define UNPACKED_USAGE_LENGTH `$loc/usage | wc -c`" +echo + echo '#define PACKED_USAGE \' ## Breaks on big-endian systems! ## # Extra effort to avoid using "od -t x1": -t is not available diff --git a/libbb/appletlib.c b/libbb/appletlib.c index 805cd3ae6..bf6d4762c 100644 --- a/libbb/appletlib.c +++ b/libbb/appletlib.c @@ -52,6 +52,32 @@ #include "usage_compressed.h" + +/* "Do not compress usage text if uncompressed text is small + * and we don't include bunzip2 code for other reasons" + * + * Useful for mass one-applet rebuild (bunzip2 code is ~2.7k). + * + * Unlike BUNZIP2, if FEATURE_SEAMLESS_BZ2 is on, bunzip2 code is built but + * still may be unused if none of the selected applets calls open_zipped() + * or its friends; we test for (FEATURE_SEAMLESS_BZ2 && ) instead. + * For example, only if TAR and FEATURE_SEAMLESS_BZ2 are both selected, + * then bunzip2 code will be linked in anyway, and disabling help compression + * would be not optimal: + */ +#if UNPACKED_USAGE_LENGTH < 4*1024 \ + && !(ENABLE_FEATURE_SEAMLESS_BZ2 && ENABLE_TAR) \ + && !(ENABLE_FEATURE_SEAMLESS_BZ2 && ENABLE_MODPROBE) \ + && !(ENABLE_FEATURE_SEAMLESS_BZ2 && ENABLE_INSMOD) \ + && !(ENABLE_FEATURE_SEAMLESS_BZ2 && ENABLE_DEPMOD) \ + && !(ENABLE_FEATURE_SEAMLESS_BZ2 && ENABLE_MAN) \ + && !ENABLE_BUNZIP2 \ + && !ENABLE_BZCAT +# undef ENABLE_FEATURE_COMPRESS_USAGE +# define ENABLE_FEATURE_COMPRESS_USAGE 0 +#endif + + #if ENABLE_SHOW_USAGE && !ENABLE_FEATURE_COMPRESS_USAGE static const char usage_messages[] ALIGN1 = UNPACKED_USAGE; #else -- cgit v1.2.3