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


Credits  /
________/


I would like to thank these fine people for making crosstool-NG possible:

  Dan KEGEL, the original author of crosstool: http://www.kegel.com/
    Dan was very helpfull and willing to help when I build my first toolchains.
    I owe him one. Thank you Dan!
    Some crosstool-NG scripts have code snippets coming almost as-is from the
    original work by Dan.

And in order of appearance on the crossgcc ML:

  Allan CLARK for his investigations on building toolchains on MacOS-X.
    Allan made extensive tests of the first alpha of crosstool-NG on his
    MacOS-X, and unveiled some bash-2.05 weirdness.

  Enrico WEIGELT
    - some improvements to the build procedure
    - cxa_atexit disabling for C libraries not supporting it (old uClibc)
    - misc suggestions (restartable build, ...)
    - get rid of some bashisms in ./configure
    - contributed OpenRISC or32 support

  Robert P. J. DAY:
    - some small improvements to the configurator, misc prompting glitches
    - 'sanitised' patches for binutils-2.17
    - patches for glibc-2.5
    - misc patches, typos and eye candy
    - too many to list any more!

  Al Stone:
    - initial ia64 support
    - some cosmetics

  Szilveszter Ordog:
    - a uClibc floating point fix
    - initial support for ARM EABI

  Mark Jonas:
    - initiated Super-H port

  Michael Abbott:
    - make it build with ancient findutils

  Willy Tarreau:
    - a patch to glibc to build on 'ancient' shells
    - reported mis-use of $CT_CC_NATIVE

  Matthias Kaehlcke:
    - fix building glibc-2.7 (and 2.6.1) with newer kernels

  Daniel Dittmann:
    - PowerPC support

  Ioannis E. Venetis:
    - preliminary Alpha support
    - intense gcc-4.3 brainstorming

  Thomas Jourdan:
    - intense gcc-4.3 brainstorming
    - eglibc support

  Konrad Eisele:
    - initial multlilib support:
      http://sourceware.org/ml/crossgcc/2011-11/msg00040.html

  Many others have contributed, either in form of patches, suggestions,
  comments, or testing... Thank you to all of you!

Special dedication to the buildroot people for maintaining a set of patches I
happily and shamelessly vampirise from time to time... :-)


20100530: Status of this file

It's been about a year now that we've moved the repository to Mercurial.
The repository now has proper authorship for each changeset, and this is
used to build the changelog at each release. This file will probably no
longer be updated, and is here to credit people prior to the Mercurial
migration, or for people discussing ideas or otherwise helping without
code.

If you think you deserve being cited in this file, do yell at me! ;-)
