[git commit] Automatically disable FEATURE_COMPRESS_USAGE for small builds.

Denys Vlasenko vda.linux at googlemail.com
Fri Jan 6 18:16:36 UTC 2017


commit: https://git.busybox.net/busybox/commit/?id=fe93624fb69e3858ebaea2d9e53e0522c1025698
branch: https://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 applets/usage_compressed |  3 +++
 libbb/appletlib.c        | 26 ++++++++++++++++++++++++++
 2 files changed, 29 insertions(+)

diff --git a/applets/usage_compressed b/applets/usage_compressed
index 186fcde..36fc2a0 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 805cd3a..bf6d476 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 && <APPLET>) 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


More information about the busybox-cvs mailing list