aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh/kernel/sh_ksyms_32.c
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2008-11-18 03:33:48 -0500
committerPaul Mundt <lethal@linux-sh.org>2008-12-22 04:42:53 -0500
commit1aad54a99b6ce316c851ba99b2efe41998cfd37d (patch)
tree287f90771c7da18a0841d40db1c0ce92ea7f5820 /arch/sh/kernel/sh_ksyms_32.c
parente9bf51e5ccc7703226c79888603e157066213700 (diff)
sh: Migrate necessary libgcc bits in to arch/sh/lib for SUPERH32.
This moves in the necessary libgcc bits for SUPERH32 and drops the libgcc linking for the regular targets. This in turn allows us to rip out quite a few hacks both in sh_ksyms_32 and arch/sh/Makefile. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/kernel/sh_ksyms_32.c')
-rw-r--r--arch/sh/kernel/sh_ksyms_32.c36
1 files changed, 5 insertions, 31 deletions
diff --git a/arch/sh/kernel/sh_ksyms_32.c b/arch/sh/kernel/sh_ksyms_32.c
index 92ae5e6c099e..9c5ae7b9cd98 100644
--- a/arch/sh/kernel/sh_ksyms_32.c
+++ b/arch/sh/kernel/sh_ksyms_32.c
@@ -52,16 +52,10 @@ EXPORT_SYMBOL(__const_udelay);
52 52
53#define DECLARE_EXPORT(name) \ 53#define DECLARE_EXPORT(name) \
54 extern void name(void);EXPORT_SYMBOL(name) 54 extern void name(void);EXPORT_SYMBOL(name)
55#define MAYBE_DECLARE_EXPORT(name) \
56 extern void name(void) __weak;EXPORT_SYMBOL(name)
57 55
58/* These symbols are generated by the compiler itself */ 56DECLARE_EXPORT(__lshrsi3);
59DECLARE_EXPORT(__udivsi3);
60DECLARE_EXPORT(__sdivsi3);
61DECLARE_EXPORT(__ashrsi3); 57DECLARE_EXPORT(__ashrsi3);
62DECLARE_EXPORT(__ashlsi3); 58DECLARE_EXPORT(__ashlsi3);
63DECLARE_EXPORT(__ashrdi3);
64DECLARE_EXPORT(__ashldi3);
65DECLARE_EXPORT(__ashiftrt_r4_6); 59DECLARE_EXPORT(__ashiftrt_r4_6);
66DECLARE_EXPORT(__ashiftrt_r4_7); 60DECLARE_EXPORT(__ashiftrt_r4_7);
67DECLARE_EXPORT(__ashiftrt_r4_8); 61DECLARE_EXPORT(__ashiftrt_r4_8);
@@ -79,8 +73,7 @@ DECLARE_EXPORT(__ashiftrt_r4_23);
79DECLARE_EXPORT(__ashiftrt_r4_24); 73DECLARE_EXPORT(__ashiftrt_r4_24);
80DECLARE_EXPORT(__ashiftrt_r4_27); 74DECLARE_EXPORT(__ashiftrt_r4_27);
81DECLARE_EXPORT(__ashiftrt_r4_30); 75DECLARE_EXPORT(__ashiftrt_r4_30);
82DECLARE_EXPORT(__lshrsi3); 76DECLARE_EXPORT(__movstr);
83DECLARE_EXPORT(__lshrdi3);
84DECLARE_EXPORT(__movstrSI8); 77DECLARE_EXPORT(__movstrSI8);
85DECLARE_EXPORT(__movstrSI12); 78DECLARE_EXPORT(__movstrSI12);
86DECLARE_EXPORT(__movstrSI16); 79DECLARE_EXPORT(__movstrSI16);
@@ -95,31 +88,12 @@ DECLARE_EXPORT(__movstrSI48);
95DECLARE_EXPORT(__movstrSI52); 88DECLARE_EXPORT(__movstrSI52);
96DECLARE_EXPORT(__movstrSI56); 89DECLARE_EXPORT(__movstrSI56);
97DECLARE_EXPORT(__movstrSI60); 90DECLARE_EXPORT(__movstrSI60);
98#if __GNUC__ == 4
99DECLARE_EXPORT(__movmem);
100#else
101DECLARE_EXPORT(__movstr);
102#endif
103
104#if __GNUC__ == 4
105DECLARE_EXPORT(__movmem_i4_even);
106DECLARE_EXPORT(__movmem_i4_odd);
107DECLARE_EXPORT(__movmemSI12_i4);
108
109#if (__GNUC_MINOR__ >= 2 || defined(__GNUC_STM_RELEASE__))
110/*
111 * GCC >= 4.2 emits these for division, as do GCC 4.1.x versions of the ST
112 * compiler which include backported patches.
113 */
114DECLARE_EXPORT(__udiv_qrnnd_16);
115MAYBE_DECLARE_EXPORT(__sdivsi3_i4i);
116MAYBE_DECLARE_EXPORT(__udivsi3_i4i);
117#endif
118#else /* GCC 3.x */
119DECLARE_EXPORT(__movstr_i4_even); 91DECLARE_EXPORT(__movstr_i4_even);
120DECLARE_EXPORT(__movstr_i4_odd); 92DECLARE_EXPORT(__movstr_i4_odd);
121DECLARE_EXPORT(__movstrSI12_i4); 93DECLARE_EXPORT(__movstrSI12_i4);
122#endif /* __GNUC__ == 4 */ 94DECLARE_EXPORT(__udiv_qrnnd_16);
95DECLARE_EXPORT(__sdivsi3_i4i);
96DECLARE_EXPORT(__udivsi3_i4i);
123 97
124#if !defined(CONFIG_CACHE_OFF) && (defined(CONFIG_CPU_SH4) || \ 98#if !defined(CONFIG_CACHE_OFF) && (defined(CONFIG_CPU_SH4) || \
125 defined(CONFIG_SH7705_CACHE_32KB)) 99 defined(CONFIG_SH7705_CACHE_32KB))