Re: [RFC] Add expat to the GDB sources

Mark Kettenis
2006-07-24T22:29:34Z

> Date: Mon, 24 Jul 2006 17:41:57 -0400
> From: Christopher Faylor <cgf-use-the-mailinglist-please@sourceware.org>
>
> Also, we're not talking about having to track down scores of packages,
> we're talking about *one* package. If we actually were talking about
> adding about more packages it would actually make less sense to do
> something like this. 'src' would be bloated and we'd be in constant
> package update mode.

Therefore we should not add random features to GDB that require more
"external" packages.

> It sounds like you're advocating that every project which relies on
> external libraries should include the source code for those libraries.
> If that is the case, it means that we shouldn't bother with shared
> libraries at all. Every package would, instead, be bloated by the
> inclusion of its own version of expat, and openssl, and libtiff, etc.

Shared libraries are hard. You can only do it right if you correctly
implement a version policy, which is almost impossible to do if you
don't have some sort of central control. It really is only worth
doing if there are more than a handlful of different programs using
the same library that are likely to be used simultaniously.

> >In other words, when I download a package, I want it ideally to build
> >out of the box, period.
>
> IMO, that is an unrealistic expectation.

But one that is true for the current GDB on many systems right now.

> >No questions asked, and no additional prerequisites that could turn a
> >simple build job into an agony that lasts the better part of my day,
> >because each prerequisite package needs a bit of tweaking to build and
> >install properly. By contrast, when I get readline etc. with GDB, I
> >can be _certain_ that someone already tried and succeeded to build
> >_this_ version of the library with _this_ configury and _this_ GDB
> >release.
>
> And, if you are on linux or windows, you can be certain that your
> version of gdb has a different version of readline than every other
> package on the system and that gdb is slightly bigger and possibly
> slightly incompatible as a result. I hate this about insight, also.
> The problem is even worse there. That is a standard problem with
> including disparate versions of libraries.

A properly engineered Linux distribution solves this by building
everything, including gdb, with a properly chosen version of readline,
and testing this setup extensively. When a user isn't satisfied with the

> But, where does this philosophy end? Are you *really* advocating that
> every shipping package should include the source code of any libraries
> that they use? So gdb should also include ncurses?

The philosophy has always been that one should be able to build a GNU
toolchain without any external dependencies, to be able to bootstrap
into a situation wher you can use the toolchain to build other Free
Software.