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> |
||
|---|---|---|
| .. | ||
| alloc.c | ||
| checksum_32.S | ||
| checksum_64.S | ||
| copy_32.S | ||
| copypage_64.S | ||
| copyuser_64.S | ||
| crtsavres.S | ||
| devres.c | ||
| div64.S | ||
| dma-noncoherent.c | ||
| locks.c | ||
| Makefile | ||
| mem_64.S | ||
| memcpy_64.S | ||
| rheap.c | ||
| sstep.c | ||
| string.S | ||
| usercopy_64.c | ||