summaryrefslogtreecommitdiff
path: root/target/linux/generic-2.6/patches-2.6.32/031-ppc_gcc_build_fix.patch
diff options
context:
space:
mode:
authornbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-06-26 20:42:58 +0000
committernbd <nbd@3c298f89-4303-0410-b956-a3cf2f4a3e73>2010-06-26 20:42:58 +0000
commitc5552ad03973839d83d32d7108f20c00f192633b (patch)
treede32e4def600e56134cd085a7447cb6620542078 /target/linux/generic-2.6/patches-2.6.32/031-ppc_gcc_build_fix.patch
parent7ec88f88f4c65a22b3b7e32ef87cb42dcb32a6fb (diff)
rename target/linux/generic-2.6 to generic
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21952 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target/linux/generic-2.6/patches-2.6.32/031-ppc_gcc_build_fix.patch')
-rw-r--r--target/linux/generic-2.6/patches-2.6.32/031-ppc_gcc_build_fix.patch226
1 files changed, 0 insertions, 226 deletions
diff --git a/target/linux/generic-2.6/patches-2.6.32/031-ppc_gcc_build_fix.patch b/target/linux/generic-2.6/patches-2.6.32/031-ppc_gcc_build_fix.patch
deleted file mode 100644
index 6945ebf4c9..0000000000
--- a/target/linux/generic-2.6/patches-2.6.32/031-ppc_gcc_build_fix.patch
+++ /dev/null
@@ -1,226 +0,0 @@
-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 build as we'd have to link with libgcc to get the
-implementation of the register save/restores.
-
-To workaround this issue, we just stole the save/restore code from gcc
-and simplified it down for our needs (integer only). We only do this if
-PPC32 as gcc makes believe the linker on ppc64 will deal with this and
-only if CONFIG_CC_OPTIMIZE_FOR_SIZE is set (thus -Os).
-
-Signed-off-by: Kumar Gala <[EMAIL PROTECTED]>
----
-
-If someone using cutting edge toolchains for ppc64 could test and make
-sure if we enable CONFIG_CC_OPTIMIZE_FOR_SIZE things work that would be
-nice.
-
-- k
-
- arch/powerpc/kernel/misc_32.S | 77 +++++++++++++++++++++++++++
- arch/powerpc/kernel/ppc_ksyms.c | 111 +++++++++++++++++++++++++++++++++++++++
- 2 files changed, 188 insertions(+), 0 deletions(-)
-
---- a/arch/powerpc/kernel/misc_32.S
-+++ b/arch/powerpc/kernel/misc_32.S
-@@ -820,3 +820,80 @@ relocate_new_kernel_end:
- relocate_new_kernel_size:
- .long relocate_new_kernel_end - relocate_new_kernel
- #endif
-+
-+#if defined(CONFIG_PPC32) && defined(CONFIG_CC_OPTIMIZE_FOR_SIZE)
-+/* Routines for saving integer registers, called by the compiler. */
-+/* Called with r11 pointing to the stack header word of the caller of the */
-+/* function, just beyond the end of the integer save area. */
-+
-+_GLOBAL(_savegpr_14) stw 14,-72(11) /* save gp registers */
-+_GLOBAL(_savegpr_15) stw 15,-68(11)
-+_GLOBAL(_savegpr_16) stw 16,-64(11)
-+_GLOBAL(_savegpr_17) stw 17,-60(11)
-+_GLOBAL(_savegpr_18) stw 18,-56(11)
-+_GLOBAL(_savegpr_19) stw 19,-52(11)
-+_GLOBAL(_savegpr_20) stw 20,-48(11)
-+_GLOBAL(_savegpr_21) stw 21,-44(11)
-+_GLOBAL(_savegpr_22) stw 22,-40(11)
-+_GLOBAL(_savegpr_23) stw 23,-36(11)
-+_GLOBAL(_savegpr_24) stw 24,-32(11)
-+_GLOBAL(_savegpr_25) stw 25,-28(11)
-+_GLOBAL(_savegpr_26) stw 26,-24(11)
-+_GLOBAL(_savegpr_27) stw 27,-20(11)
-+_GLOBAL(_savegpr_28) stw 28,-16(11)
-+_GLOBAL(_savegpr_29) stw 29,-12(11)
-+_GLOBAL(_savegpr_30) stw 30,-8(11)
-+_GLOBAL(_savegpr_31) stw 31,-4(11)
-+ blr
-+
-+/* Routines for restoring integer registers, called by the compiler. */
-+/* Called with r11 pointing to the stack header word of the caller of the */
-+/* function, just beyond the end of the integer restore area. */
-+
-+_GLOBAL(_restgpr_14) lwz 14,-72(11) /* restore gp registers */
-+_GLOBAL(_restgpr_15) lwz 15,-68(11)
-+_GLOBAL(_restgpr_16) lwz 16,-64(11)
-+_GLOBAL(_restgpr_17) lwz 17,-60(11)
-+_GLOBAL(_restgpr_18) lwz 18,-56(11)
-+_GLOBAL(_restgpr_19) lwz 19,-52(11)
-+_GLOBAL(_restgpr_20) lwz 20,-48(11)
-+_GLOBAL(_restgpr_21) lwz 21,-44(11)
-+_GLOBAL(_restgpr_22) lwz 22,-40(11)
-+_GLOBAL(_restgpr_23) lwz 23,-36(11)
-+_GLOBAL(_restgpr_24) lwz 24,-32(11)
-+_GLOBAL(_restgpr_25) lwz 25,-28(11)
-+_GLOBAL(_restgpr_26) lwz 26,-24(11)
-+_GLOBAL(_restgpr_27) lwz 27,-20(11)
-+_GLOBAL(_restgpr_28) lwz 28,-16(11)
-+_GLOBAL(_restgpr_29) lwz 29,-12(11)
-+_GLOBAL(_restgpr_30) lwz 30,-8(11)
-+_GLOBAL(_restgpr_31) lwz 31,-4(11)
-+ blr
-+
-+/* Routines for restoring integer registers, called by the compiler. */
-+/* Called with r11 pointing to the stack header word of the caller of the */
-+/* function, just beyond the end of the integer restore area. */
-+
-+_GLOBAL(_restgpr_14_x) lwz 14,-72(11) /* restore gp registers */
-+_GLOBAL(_restgpr_15_x) lwz 15,-68(11)
-+_GLOBAL(_restgpr_16_x) lwz 16,-64(11)
-+_GLOBAL(_restgpr_17_x) lwz 17,-60(11)
-+_GLOBAL(_restgpr_18_x) lwz 18,-56(11)
-+_GLOBAL(_restgpr_19_x) lwz 19,-52(11)
-+_GLOBAL(_restgpr_20_x) lwz 20,-48(11)
-+_GLOBAL(_restgpr_21_x) lwz 21,-44(11)
-+_GLOBAL(_restgpr_22_x) lwz 22,-40(11)
-+_GLOBAL(_restgpr_23_x) lwz 23,-36(11)
-+_GLOBAL(_restgpr_24_x) lwz 24,-32(11)
-+_GLOBAL(_restgpr_25_x) lwz 25,-28(11)
-+_GLOBAL(_restgpr_26_x) lwz 26,-24(11)
-+_GLOBAL(_restgpr_27_x) lwz 27,-20(11)
-+_GLOBAL(_restgpr_28_x) lwz 28,-16(11)
-+_GLOBAL(_restgpr_29_x) lwz 29,-12(11)
-+_GLOBAL(_restgpr_30_x) lwz 30,-8(11)
-+_GLOBAL(_restgpr_31_x) lwz 0,4(11)
-+ lwz 31,-4(11)
-+ mtlr 0
-+ mr 1,11
-+ blr
-+#endif
---- a/arch/powerpc/kernel/ppc_ksyms.c
-+++ b/arch/powerpc/kernel/ppc_ksyms.c
-@@ -188,3 +188,114 @@ EXPORT_SYMBOL(__mtdcr);
- EXPORT_SYMBOL(__mfdcr);
- #endif
- EXPORT_SYMBOL(empty_zero_page);
-+
-+#if defined(CONFIG_PPC32) && defined(CONFIG_CC_OPTIMIZE_FOR_SIZE)
-+void _savegpr_14(void);
-+void _savegpr_15(void);
-+void _savegpr_16(void);
-+void _savegpr_17(void);
-+void _savegpr_18(void);
-+void _savegpr_19(void);
-+void _savegpr_20(void);
-+void _savegpr_21(void);
-+void _savegpr_22(void);
-+void _savegpr_23(void);
-+void _savegpr_24(void);
-+void _savegpr_25(void);
-+void _savegpr_26(void);
-+void _savegpr_27(void);
-+void _savegpr_28(void);
-+void _savegpr_29(void);
-+void _savegpr_30(void);
-+void _savegpr_31(void);
-+void _restgpr_14(void);
-+void _restgpr_15(void);
-+void _restgpr_16(void);
-+void _restgpr_17(void);
-+void _restgpr_18(void);
-+void _restgpr_19(void);
-+void _restgpr_20(void);
-+void _restgpr_21(void);
-+void _restgpr_22(void);
-+void _restgpr_23(void);
-+void _restgpr_24(void);
-+void _restgpr_25(void);
-+void _restgpr_26(void);
-+void _restgpr_27(void);
-+void _restgpr_28(void);
-+void _restgpr_29(void);
-+void _restgpr_30(void);
-+void _restgpr_31(void);
-+void _restgpr_14_x(void);
-+void _restgpr_15_x(void);
-+void _restgpr_16_x(void);
-+void _restgpr_17_x(void);
-+void _restgpr_18_x(void);
-+void _restgpr_19_x(void);
-+void _restgpr_20_x(void);
-+void _restgpr_21_x(void);
-+void _restgpr_22_x(void);
-+void _restgpr_23_x(void);
-+void _restgpr_24_x(void);
-+void _restgpr_25_x(void);
-+void _restgpr_26_x(void);
-+void _restgpr_27_x(void);
-+void _restgpr_28_x(void);
-+void _restgpr_29_x(void);
-+void _restgpr_30_x(void);
-+void _restgpr_31_x(void);
-+EXPORT_SYMBOL(_savegpr_14);
-+EXPORT_SYMBOL(_savegpr_15);
-+EXPORT_SYMBOL(_savegpr_16);
-+EXPORT_SYMBOL(_savegpr_17);
-+EXPORT_SYMBOL(_savegpr_18);
-+EXPORT_SYMBOL(_savegpr_19);
-+EXPORT_SYMBOL(_savegpr_20);
-+EXPORT_SYMBOL(_savegpr_21);
-+EXPORT_SYMBOL(_savegpr_22);
-+EXPORT_SYMBOL(_savegpr_23);
-+EXPORT_SYMBOL(_savegpr_24);
-+EXPORT_SYMBOL(_savegpr_25);
-+EXPORT_SYMBOL(_savegpr_26);
-+EXPORT_SYMBOL(_savegpr_27);
-+EXPORT_SYMBOL(_savegpr_28);
-+EXPORT_SYMBOL(_savegpr_29);
-+EXPORT_SYMBOL(_savegpr_30);
-+EXPORT_SYMBOL(_savegpr_31);
-+EXPORT_SYMBOL(_restgpr_14);
-+EXPORT_SYMBOL(_restgpr_15);
-+EXPORT_SYMBOL(_restgpr_16);
-+EXPORT_SYMBOL(_restgpr_17);
-+EXPORT_SYMBOL(_restgpr_18);
-+EXPORT_SYMBOL(_restgpr_19);
-+EXPORT_SYMBOL(_restgpr_20);
-+EXPORT_SYMBOL(_restgpr_21);
-+EXPORT_SYMBOL(_restgpr_22);
-+EXPORT_SYMBOL(_restgpr_23);
-+EXPORT_SYMBOL(_restgpr_24);
-+EXPORT_SYMBOL(_restgpr_25);
-+EXPORT_SYMBOL(_restgpr_26);
-+EXPORT_SYMBOL(_restgpr_27);
-+EXPORT_SYMBOL(_restgpr_28);
-+EXPORT_SYMBOL(_restgpr_29);
-+EXPORT_SYMBOL(_restgpr_30);
-+EXPORT_SYMBOL(_restgpr_31);
-+EXPORT_SYMBOL(_restgpr_14_x);
-+EXPORT_SYMBOL(_restgpr_15_x);
-+EXPORT_SYMBOL(_restgpr_16_x);
-+EXPORT_SYMBOL(_restgpr_17_x);
-+EXPORT_SYMBOL(_restgpr_18_x);
-+EXPORT_SYMBOL(_restgpr_19_x);
-+EXPORT_SYMBOL(_restgpr_20_x);
-+EXPORT_SYMBOL(_restgpr_21_x);
-+EXPORT_SYMBOL(_restgpr_22_x);
-+EXPORT_SYMBOL(_restgpr_23_x);
-+EXPORT_SYMBOL(_restgpr_24_x);
-+EXPORT_SYMBOL(_restgpr_25_x);
-+EXPORT_SYMBOL(_restgpr_26_x);
-+EXPORT_SYMBOL(_restgpr_27_x);
-+EXPORT_SYMBOL(_restgpr_28_x);
-+EXPORT_SYMBOL(_restgpr_29_x);
-+EXPORT_SYMBOL(_restgpr_30_x);
-+EXPORT_SYMBOL(_restgpr_31_x);
-+#endif /* CONFIG_PPC32 && CONFIG_CC_OPTIMIZE_FOR_SIZE */