Why libbb should not be enabled by default.

Rob Landley rob at landley.net
Mon Jan 30 09:04:28 UTC 2006


I do "make allyesconfig" to test busybox.  I then run "./busybox wget --help", 
and it says:

./busybox: error while loading shared libraries: libbusybox.so.1: cannot open 
shared object file: No such file or directory

So if you build with the shared library, you can no longer test busybox 
without installing it.  This is deeply annoying, especially considering the 
feature is completely useless right now because make standalone isn't in yet, 
so it actually makes busybox _bigger_: 905644 bytes for busybox plus 142728 
bytes for libbbusybox.so, as opposed to 980300 bytes without the shared 
library.  The shared library adds just under 60k to the total.

Worse, it makes debugging harder.  If I _did_ have the library installed and I 
built busybox without realising I'd linked against the library, I would be 
running against the version in the system, not the one I just built.  It 
would be very easy to test the wrong code and accidentally check in something 
broken.  (I just spent a couple hours getting halt, poweroff, and reboot to 
properly shut down a user mode linux instance running with and without 
linuxrc, and had to deal with the sucker cacheing the binary on me.)

I realise that we're going to need to fork allyesconfig and defconfig soon 
(since defconfig really should be an allyesconfig minus the options that you 
don't want selected automatically for you.  The defconfig we've got now is 
useless, we can't guess what people will want.  But allnoconfig is a good 
starting point for adding features, and current allyesconfig is a good start 
for removing them.  Once we have to switch off enough features for 
allyesconfig to be a reasonable thing to want to build (no devfs, no static 
binary, no debug features, no cross-compiler, and now no shared library in 
the absence of standalone applet binaries), we may want to move that to 
defconfig and make allyesconfig "absolutely every feature, just to make sure 
it builds".

If I do a 1.1.1 with allyesconfig producing the shared library, it will cause 
people problems.  Can I please move it to the debug menu for now, until we 
have a use for it?  People can try it out, but right now the only use I can 
see is for out-of-tree users.  And the only one I've seen recently 
(http://www.handhelds.org/download/packages/ipkg/) already copied our libbb 
code into their tarball (and I've been planning on adding ipkg support to 
busybox for a while now, anyway.  In my copious free time, of which I've had 
none the past two months...)

Rob

Yes, I should have been in bed four hours ago, but I had to debug 
halt/shutdown/poweroff... :)
-- 
Steve Ballmer: Innovation!  Inigo Montoya: You keep using that word.
I do not think it means what you think it means.



More information about the busybox mailing list