COPYING
author "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
Thu Jul 28 22:09:31 2011 +0200 (2011-07-28)
changeset 2573 424fa2092ace
parent 676 78c450c0b219
permissions -rw-r--r--
scripts/libc: do not build add-ons by default

Currently, no --enable-add-ons option is passed to libc configure when
"$(do_libc_add_ons_list ,)" is empty, which makes configure automatically search
for present add-ons. In that case, all present add-ons are built, although
no add-on was selected by the user in the config. Moreover, this can make the
configure fail if some non-standard add-ons like eglibc-localedef are present.

This behavior also leads to an inconsistency from a user point of view between
the following cases:
- LIBC_ADDONS_LIST="", LIBC_GLIBC_USE_PORTS=n and THREADS="none" in the config,
which makes "$(do_libc_add_ons_list ,)" return "", so all present add-ons
are built.
- LIBC_ADDONS_LIST="", LIBC_GLIBC_USE_PORTS=n and THREADS!="none" in the
config, which makes "$(do_libc_add_ons_list ,)" return the add-on supporting
the chosen threading implementation, e.g. "nptl", so only this add-on is
built.

This patch disables the building of all add-ons in that case.

It is still possible to build all present add-ons by adding --enable-add-ons to
LIBC_GLIBC_EXTRA_CONFIG_ARRAY.

Signed-off-by: "Benoît THÉBAUDEAU" <benoit.thebaudeau@advansee.com>
yann@425
     1
Unless otherwise stated in individual files, this work is licensed to you under
yann@1
     2
the following terms.
yann@1
     3
yann@1
     4
- Files in docs/ are available under the Creative Commons Attribution, Share
yann@1
     5
  Alike (by-sa), v2.5, to be found there:
yann@17
     6
    licenses.d/by-sa/deed.en     (human-readable summary)
yann@17
     7
    licenses.d/by-sa/legalcode   (legal code, the full license)
yann@1
     8
    
yann@191
     9
- Files found in patches/*/ are available under the same license as the
yann@338
    10
  upstream software they apply to.
yann@338
    11
yann@338
    12
  That means that you can't use those patches if you were licensed the
yann@338
    13
  software under a specific license which is not the one the software is
yann@338
    14
  commonly available under.
yann@338
    15
yann@338
    16
  As an example, if you ever managed to get the Linux kernel under a license
yann@338
    17
  other than the GPLv2, you are not allowed to use the Linux kernel patches
yann@338
    18
  coming with crosstool-NG, as those are available under the GPLv2, which is
yann@338
    19
  the license the Linux kernel is most commonly available under.
yann@338
    20
yann@338
    21
  As a convenience, the GNU Lesser General Public License (LGPL) v2.1 (for the
yann@853
    22
  patches against glibc, uClibc, and some other libraries) is available there:
yann@338
    23
    licenses.d/lgpl.txt
yann@1
    24
yann@1
    25
- Other files not covered by the above licenses, and not covered by an
yann@1
    26
  individual license specified in the file itself, or an accompanying file,
yann@1
    27
  are available under the GNU General Public License (GPL), v2, to be found
yann@1
    28
  here:
yann@17
    29
    licenses.d/gpl.txt
yann@676
    30
yann@676
    31
- Also, I want to clarify one point. If you build a toolchain with crosstool-NG
yann@676
    32
  and you happen to sell, deliver, or otherwise publish this toolchain to a
yann@676
    33
  third party, I consider crosstool-NG as being part of the sources needed to
yann@676
    34
  rebuild the afore-mentioned toolchain, alongside with all other source code
yann@676
    35
  that third party is otherwise entitled to receive, due to other licenses of
yann@676
    36
  the different components. See licenses.d/gpl.txt, section 3, which reads:
yann@676
    37
   > For an executable work, complete source code means [...], plus the
yann@676
    38
   > scripts used to control compilation and installation of the executable.
yann@676
    39
yann@676
    40
  In short: crosstool-NG is the part refered to as "the scripts to control
yann@853
    41
  compilation and installation of the executable", it being the toolchain in
yann@676
    42
  our case; and as such you must make it available, in conformance to the
yann@676
    43
  GPLv2, see above.
yann@853
    44
yann@853
    45
  Also, if you have local patches that you apply to the different components
yann@853
    46
  (either manualy, or by instructing crosstool-NG to do so), you will have to
yann@853
    47
  make those patches available alongside with your toolchain, to comply with
yann@853
    48
  the licenses of the components impacted by your patches.