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