Unify the various copies of libgcc into lib v2

From: Palmer Dabbelt
Date: Tue Jun 06 2017 - 15:14:05 EST


Thanks to everyone who responded to my original patch set. I believe I've
responded to everyone's comments. There have been a handful of changes since
the original patch set:

* The Kconfig names for the routines are now GENERIC_* instead of LIB_*. This
matches the existing generic implementation Kconfig names.
* Tracing is disabled, which matches the MIPS behavior and seems correct
globally.
* I've cross compiled this to make sure it builds, and fixed all the build
errors I found.
* The MIPS patches actually do what they say in the commit message.

I don't know of any remaining problems with this patch set, so hopefully it's
ready to get merged. I'll be including patch 1 in our RISC-V submissions, but
as I'm somewhat new to this I don't have a tree that anyone pulls from yet.

If everyone is happy with this patch set then I'd be willing to use this as a
first attempt to get patches upstream myself.

[PATCH 1/7] lib: Add shared copies of some GCC library routines
[PATCH 2/7] m32r: Use lib/ucmpdi2.c
[PATCH 3/7] microblaze: Use libgcc files from lib/
[PATCH 4/7] score: Use lib/{ashldi3,ashrdi3,cmpdi2,lshrdi3,ucmpdi2}.c
[PATCH 5/7] sh: Use lib/ashldi3,ashrdi3,lshrdi3}.c
[PATCH 6/7] sparc: Use lib/{cmpdi2,ucmpdi2}.c
[PATCH 7/7] MIPS: Use generic libgcc intrinsics