File.........: 7 - Contributing to crosstool-NG.txt
Copyright....: (C) 2010 Yann E. MORIN <yann.morin.1998@free.fr>
License......: Creative Commons Attribution Share Alike (CC-by-sa), v2.5


Contributing to crosstool-NG  /
_____________________________/


Sending a bug report |
---------------------+

If you need to send a bug report, please send a mail with subject
prefixed with "[CT_NG]" with to following destinations:
    TO: yann.morin.1998 (at) free.fr
    CC: crossgcc (at) sourceware.org


Sending patches |
----------------+

If you want to enhance crosstool-NG, there's a to-do list in the TODO file.

When updating a package, please include the category and component in the
start of the description. For example:
    cc/gcc: update to the Linaro 2011.09 release

Here is the (mostly-complete) list of categories and components:

    Categories  | Components
    ------------+-------------------------------------------------------
    arch        | alpha, arm, mips, powerpc...
    cc          | gcc
    binutils    | binutils, elf2flt, sstrip
    libc        | eglibc, uClibc, glibc, newlib, mingw, none
    kernel      | linux, mingw32, bare-metal
    debug       | dmalloc, duma, gdb, ltrace, strace
    complibs    | gmp, mpfr, ppl, cloog, mpc, libelf
    comptools   | make, m4, autoconf, automake, libtool
    ------------+-------------------------------------------------------
                | The following categories have no component-part:
    samples     | when adding/updating/removing a sample
    kconfig     | for stuff in the kconfig/ dir
    docs        | for changes to the documentation
    configure   | for changes to ./configure and/or Makefile.in
    config      | for stuff in config/ not covered above
    scripts     | for stuff in scripts/ not covered above


Patches should come with the appropriate SoB line. A SoB line is typically
something like:
   Signed-off-by: John DOE <john.doe@somewhere.net>

The SoB line is clearly described in Documentation/SubmittingPatches , section
12, of your favourite Linux kernel source tree.

You can also add any of the following lines if applicable:
    Acked-by:
    Tested-by:
    Reviewed-by:

For larger or more frequent contributions, mercurial should be used.
There is a nice, complete and step-by-step tutorial in section 'C'.
