[POWERPC] Fix -Os kernel builds with newer gcc versions
authorKumar Gala <galak@kernel.crashing.org>
Thu, 12 Jun 2008 21:20:58 +0000 (07:20 +1000)
committerPaul Mackerras <paulus@samba.org>
Mon, 16 Jun 2008 05:00:54 +0000 (15:00 +1000)
commitda3de6df33f5f42ff9dc40093fbc884f524c9a49
treeb0c5d209cde49e55bdd41b6125ae58918bd31ed5
parent143580ecfb7999147e546cc3814023e233e95fa5
[POWERPC] Fix -Os kernel builds with newer gcc versions

GCC 4.4.x looks to be adding support for generating out-of-line register
saves/restores based on:

http://gcc.gnu.org/ml/gcc-patches/2008-04/msg01678.html

This breaks the kernel if we enable CONFIG_CC_OPTIMIZE_FOR_SIZE.  To fix
this we add the use the save/restore code from gcc and simplified it down
for our needs (integer only).

Additionally, we have to link this code into each module.  The other
solution was to add EXPORT_SYMBOL() which meant going through the
trampoline which seemed nonsensical for these out-of-line routines.

Finally, we add some checks to prom_init_check.sh to ignore the
out-of-line save/restore functions.

Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/Makefile
arch/powerpc/kernel/prom_init_check.sh
arch/powerpc/lib/Makefile
arch/powerpc/lib/crtsavres.S [new file with mode: 0644]