gcc 4.2.1 (reduced)

Extract upstream gcc using the following shell code.

v=4.2.1 &&
sha1core=bcd024dd860853d003f56c7caf6557d910b98a7d &&
sha1cxx=c2d0a621eda8c6b63a0d04ff27ae186b9739f33f &&
sha1sum gcc-core-$v.tar.gz |grep $sha1core &&
sha1sum gcc-g++-$v.tar.gz |grep $sha1cxx &&
tar xzf gcc-core-$v.tar.gz &&
tar xzf gcc-g++-$v.tar.gz &&
paths='
 COPYING
 COPYING.LIB
 config*
 gcc
 include
 libcpp
 libdecnumber
 libiberty
 --exclude=*ChangeLog*
 --exclude=config-ml.in
 --exclude=config/*.m4
 --exclude=gcc/doc
 --exclude=gcc/po
 --exclude=gcc/treelang
' &&
mkdir gcc-$v-reduced &&
(cd gcc-$v && tar c $paths) |
(cd gcc-$v-reduced && tar x)
Add GCC/.gitattributes to disable whitespace checks in third-party code

Also add GCC/gcc/cp/.gitattributes to enable whitespace checks in our
code.
Re-tabify GCC sources

When the GCC sources were imported from upstream we had whitespace
checks that disallowed hard TAB characters.  Restore hard TAB characters
as they originally appeared in the upstream sources.  This will make it
easier to import upstream changes later.
Merge branch 're-tabify-gcc'
Merge branch 'gcc-upstream'

Merge a branch representing a snapshot of the upstream GCC 4.2.1 source
tree on which our current GCC directory is based.  Use the 'ours' merge
strategy since we do not actually need any changes.

The merge will serve to hold a reference to an unnamed "upstream
snapshot" branch.  In the future one may add a snapshot of a new
upstream version to the branch and merge it into our GCC directory using
a "-X subtree=GCC" option to the Git recursive merge strategy.