While building the GNU ARM Embedded toolchain from the source invariant download, I noticed that pretty much the first thing to happen is downloading and unpacking of a bunch of additional source packages: gmp, mpfr, mpc, ISL, expat, etc.
Previous source distributions included all these packages or, at least, included their licence text in license.txt, which the q2 update does not.
What's the rationale for downloading these at build-time, rather than including them in the distribution, and what's the rationale for excluding them from license.txt?
Thanks,
steve
Hi kilbswhitecrow,
I have moved your question to the 'Software tools' community in order to help you find the answer to this.
ThanksRyan
Hi kilbswhitecrow,The rationale was to be more consistent with prerequisites: while one could build without extra download, that was only true if skipping Windows build and GDB with Python support. If any of those was needed, then some more prerequisites were needed from prebuilt native tools which would have been downloaded as a separate step.With the new setup, all prerequisites are downloaded separately. This has the added benefit of clearly separating ARM provided code from unmodified third parties. I'm not sure I understand what you mean about license.txt, I can still see gmp, mpfr, mpc, isl, libelf and libiconv mentionned in there.Another consideration is that the PPA build (--build_type=ppa) relies on system-provided prerequisites so downloading and building of prerequisites is unnecessary.Hope that answers your question.
Thanks for the reply, Thomas.
Ignore my comment about license.txt - I'd done a comparison of the previous and current licenses recently, noting changes, and noticed the removal of some of source packages from the distribution, and evidently got the two conflated. Sorry about that.
It does make the source-handling more complex for us, though. Our reading of the various GPLs mean that we have to arrange to maintain local copies of any such downloaded prerequisites, in addition to the main source-invariant package.