On Sunday 29 August 2010 13:43, Denys Vlasenko wrote: > > Looking for the best place to store the configuration files of different > > busybox installations, I take a look on the bbconfig applet. Nice idea > > to store the configuration in the binary itself, at least on machines, > > where the size doesn't that matter, but ... bbconfig stores the > > configuration data in an uncompressed string :-( ...so I did some quick > > hacking ... now the configuration could be stored compressed in > > bbconfig, using either gzip, bzip2, lzma or xz. > > > > scripts/bbzconfig -g .config >include/bbconfigopts.h > > ( use -g for gzip, -b for bzip2, -l for lzma, -x for xz ) > > > > This creates the compressed configuration data to be included in busybox. > > > > busybox bbconfig | scripts/bbzconfig >.config > > > > Restores the configuration from busybox binary. > > > > Saves me about 20k on my i686 machine. > > > > But it's not perfect ... > > Can you make it work similarly to FEATURE_COMPRESS_USAGE? > > That is, make it a config option which depents on BBCONFIG, > and then conditionally include decompress_bunzip2.o > if this options is selected. See below how it is done > for FEATURE_COMPRESS_USAGE in ./archival/libunarchive/Kbuild.src: > > $ grep -r FEATURE_COMPRESS_USAGE . > ./libbb/appletlib.c:#if ENABLE_SHOW_USAGE && !ENABLE_FEATURE_COMPRESS_USAGE > ./libbb/appletlib.c:#if ENABLE_FEATURE_COMPRESS_USAGE > ./libbb/appletlib.c:#endif /* FEATURE_COMPRESS_USAGE */ > ./scripts/Makefile.IMA:ifdef CONFIG_FEATURE_COMPRESS_USAGE > ./TEST_config_rh9:CONFIG_FEATURE_COMPRESS_USAGE=y > ./archival/libunarchive/Kbuild.src:lib-$(CONFIG_FEATURE_COMPRESS_USAGE) += > decompress_bunzip2.o > ./Config.in:config FEATURE_COMPRESS_USAGE > ./TEST_config_nommu:CONFIG_FEATURE_COMPRESS_USAGE=y > ./TEST_config_noprintf:# CONFIG_FEATURE_COMPRESS_USAGE is not set > > > Generation of compressed version of bbconfigopts.h > should probably be added to scripts/mkconfigs. Currently > it is used like this (see top-level Makefile): > > $(srctree)/scripts/mkconfigs > include/bbconfigopts.h > > By changing it so that it takes parameters > instead of spewing data to stdout: > > $(srctree)/scripts/mkconfigs include/bbconfigopts.h > include/bbconfigopts_compressed.h > > you can generate both uncompressed and compressed versions > (see applets/usage_compressed for an example). > > Then just use one or the other from bbconfig.c depending > on the selected bbconfig methd (uncompressed or compressed).
Done, please try current git. -- vda _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
