[lfs-dev] bc ready

Gavin Howard gavin.d.howard at gmail.com
Mon Jul 15 06:47:16 PDT 2019


Bruce,

One thing I noticed in when I looked at the book's sources, you said
that debug info is kept. With the current option, that is not correct.

The "-G" option disables the parts of the test suite that won't work
without a GNU bc present (my test suite does diffs against it). If you
want to preserve debug info, you want to add the "-g" option to
configure.sh.

Gavin Howard

On Mon, Jul 15, 2019 at 7:23 AM Gavin Howard <gavin.d.howard at gmail.com> wrote:
>
> > I will be continuing to run the GNU version of bc.  While the version you now have in the book may be a totally impressive piece of work, until it is picked up by one or more major distros, it is not suitable for my system.
> > Compare to the situation with libjpeg-turbo, which completely overtook libjpeg.  Why you would make choices that make your build less mainstream is not clear.  There's been no discussion of this that I am aware of.
>
> There was not much discussion; I presented it, and Bruce seemed to
> like it. I don't know all of the reasons for that, but I can say one
> thing: this bc is more mainstream than you think.
>
> It may not be in any "major distro," but there are efforts underway to
> get it into Arch and Gentoo (for example, see
> https://github.com/gentoo/gentoo/pull/11716), though I don't know if
> you would consider those mainstream. It is also available as an option
> in at least two other distros: Alpine Linux and Void Linux. In
> addition to those two, there are at least 3 distros that have made
> this bc the only option: Adelie Linux, Ataraxia Linux, and Sabotage
> Linux.
>
> But that is not all. This bc is the bc on which the bc's in toybox
> (https://github.com/landley/toybox) and busybox (https://busybox.net/)
> are based. So, for Android, which uses toybox as its base and is a
> major distro in some senses of the word, uses this bc to bootstrap the
> kernel. And because this bc is available, in an older and more poorly
> maintained form, in busybox, which is used in a lot of distros, this
> bc is more widely available than you think.
>
> And that is *still* not all. This bc is now available as an option for
> NetBSD, OpenBSD, and FreeBSD. In the latter, particularly, there is an
> effort underway to make this bc the default over the BSD bc (see
> https://reviews.freebsd.org/D19982).
>
> So how mainstream this bc is depends on your definition of mainstream.
> If you only mean Linux, it's still more mainstream than you give it
> credit for. If you mean Linux and the BSD's, this bc is just as
> mainstream as GNU bc, and will be even more mainstream if FreeBSD
> adopts it as the default. And if it does, it will probably be adopted
> by the others as the default, making it even more mainstream.
>
> And just so you know: besides fixing some incompatibilities with POSIX
> in GNU bc, my bc is a drop-in replacement for it; it has all of the
> GNU extensions, including undocumented ones. This means you could
> switch to my bc and you would not notice any difference other than
> better speed (see
> https://github.com/gavinhoward/bc/blob/master/manuals/benchmarks.md).
> People have done this, including Android, as mentioned above, and they
> have had no issues.
>
>
> Gavin Howard


More information about the lfs-dev mailing list