diff options
author | Paul Mundt <lethal@linux-sh.org> | 2008-11-18 03:33:48 -0500 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2008-12-22 04:42:53 -0500 |
commit | 1aad54a99b6ce316c851ba99b2efe41998cfd37d (patch) | |
tree | 287f90771c7da18a0841d40db1c0ce92ea7f5820 /arch/sh/kernel/sh_ksyms_32.c | |
parent | e9bf51e5ccc7703226c79888603e157066213700 (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.c | 36 |
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 */ | 56 | DECLARE_EXPORT(__lshrsi3); |
59 | DECLARE_EXPORT(__udivsi3); | ||
60 | DECLARE_EXPORT(__sdivsi3); | ||
61 | DECLARE_EXPORT(__ashrsi3); | 57 | DECLARE_EXPORT(__ashrsi3); |
62 | DECLARE_EXPORT(__ashlsi3); | 58 | DECLARE_EXPORT(__ashlsi3); |
63 | DECLARE_EXPORT(__ashrdi3); | ||
64 | DECLARE_EXPORT(__ashldi3); | ||
65 | DECLARE_EXPORT(__ashiftrt_r4_6); | 59 | DECLARE_EXPORT(__ashiftrt_r4_6); |
66 | DECLARE_EXPORT(__ashiftrt_r4_7); | 60 | DECLARE_EXPORT(__ashiftrt_r4_7); |
67 | DECLARE_EXPORT(__ashiftrt_r4_8); | 61 | DECLARE_EXPORT(__ashiftrt_r4_8); |
@@ -79,8 +73,7 @@ DECLARE_EXPORT(__ashiftrt_r4_23); | |||
79 | DECLARE_EXPORT(__ashiftrt_r4_24); | 73 | DECLARE_EXPORT(__ashiftrt_r4_24); |
80 | DECLARE_EXPORT(__ashiftrt_r4_27); | 74 | DECLARE_EXPORT(__ashiftrt_r4_27); |
81 | DECLARE_EXPORT(__ashiftrt_r4_30); | 75 | DECLARE_EXPORT(__ashiftrt_r4_30); |
82 | DECLARE_EXPORT(__lshrsi3); | 76 | DECLARE_EXPORT(__movstr); |
83 | DECLARE_EXPORT(__lshrdi3); | ||
84 | DECLARE_EXPORT(__movstrSI8); | 77 | DECLARE_EXPORT(__movstrSI8); |
85 | DECLARE_EXPORT(__movstrSI12); | 78 | DECLARE_EXPORT(__movstrSI12); |
86 | DECLARE_EXPORT(__movstrSI16); | 79 | DECLARE_EXPORT(__movstrSI16); |
@@ -95,31 +88,12 @@ DECLARE_EXPORT(__movstrSI48); | |||
95 | DECLARE_EXPORT(__movstrSI52); | 88 | DECLARE_EXPORT(__movstrSI52); |
96 | DECLARE_EXPORT(__movstrSI56); | 89 | DECLARE_EXPORT(__movstrSI56); |
97 | DECLARE_EXPORT(__movstrSI60); | 90 | DECLARE_EXPORT(__movstrSI60); |
98 | #if __GNUC__ == 4 | ||
99 | DECLARE_EXPORT(__movmem); | ||
100 | #else | ||
101 | DECLARE_EXPORT(__movstr); | ||
102 | #endif | ||
103 | |||
104 | #if __GNUC__ == 4 | ||
105 | DECLARE_EXPORT(__movmem_i4_even); | ||
106 | DECLARE_EXPORT(__movmem_i4_odd); | ||
107 | DECLARE_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 | */ | ||
114 | DECLARE_EXPORT(__udiv_qrnnd_16); | ||
115 | MAYBE_DECLARE_EXPORT(__sdivsi3_i4i); | ||
116 | MAYBE_DECLARE_EXPORT(__udivsi3_i4i); | ||
117 | #endif | ||
118 | #else /* GCC 3.x */ | ||
119 | DECLARE_EXPORT(__movstr_i4_even); | 91 | DECLARE_EXPORT(__movstr_i4_even); |
120 | DECLARE_EXPORT(__movstr_i4_odd); | 92 | DECLARE_EXPORT(__movstr_i4_odd); |
121 | DECLARE_EXPORT(__movstrSI12_i4); | 93 | DECLARE_EXPORT(__movstrSI12_i4); |
122 | #endif /* __GNUC__ == 4 */ | 94 | DECLARE_EXPORT(__udiv_qrnnd_16); |
95 | DECLARE_EXPORT(__sdivsi3_i4i); | ||
96 | DECLARE_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)) |