aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc/kernel/sparc_ksyms.c
diff options
context:
space:
mode:
authorAl Viro <viro@ZenIV.linux.org.uk>2005-09-11 23:14:07 -0400
committerDavid S. Miller <davem@davemloft.net>2005-09-11 23:14:07 -0400
commit7caaeabb17758295edff9703c18a840073c5b8f4 (patch)
treea33a4bcc77be6077fd8b787380bf13a38828d211 /arch/sparc/kernel/sparc_ksyms.c
parent357d596bd552ad157a906289ab13ea6ba7e66e3d (diff)
[SPARC]: Fix dot-symbol exporting for good.
From: Al Viro <viro@ZenIV.linux.org.uk> Instead of playing all of these hand-coded assembler aliasing games, just translate symbol names in the name space ".sym" to "_Sym" at module load time. Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'arch/sparc/kernel/sparc_ksyms.c')
-rw-r--r--arch/sparc/kernel/sparc_ksyms.c31
1 files changed, 12 insertions, 19 deletions
diff --git a/arch/sparc/kernel/sparc_ksyms.c b/arch/sparc/kernel/sparc_ksyms.c
index f84809333624..1c8fd0fd9305 100644
--- a/arch/sparc/kernel/sparc_ksyms.c
+++ b/arch/sparc/kernel/sparc_ksyms.c
@@ -97,19 +97,12 @@ extern void ___rw_write_enter(void);
97/* Alias functions whose names begin with "." and export the aliases. 97/* Alias functions whose names begin with "." and export the aliases.
98 * The module references will be fixed up by module_frob_arch_sections. 98 * The module references will be fixed up by module_frob_arch_sections.
99 */ 99 */
100#define DOT_ALIAS2(__ret, __x, __arg1, __arg2) \ 100extern int _Div(int, int);
101 extern __ret __x(__arg1, __arg2); \ 101extern int _Mul(int, int);
102 asm(".weak " #__x);\ 102extern int _Rem(int, int);
103 asm(#__x "=." #__x); 103extern unsigned _Udiv(unsigned, unsigned);
104 104extern unsigned _Umul(unsigned, unsigned);
105DOT_ALIAS2(int, div, int, int) 105extern unsigned _Urem(unsigned, unsigned);
106DOT_ALIAS2(int, mul, int, int)
107DOT_ALIAS2(int, rem, int, int)
108DOT_ALIAS2(unsigned, udiv, unsigned, unsigned)
109DOT_ALIAS2(unsigned, umul, unsigned, unsigned)
110DOT_ALIAS2(unsigned, urem, unsigned, unsigned)
111
112#undef DOT_ALIAS2
113 106
114/* used by various drivers */ 107/* used by various drivers */
115EXPORT_SYMBOL(sparc_cpu_model); 108EXPORT_SYMBOL(sparc_cpu_model);
@@ -320,12 +313,12 @@ EXPORT_SYMBOL(__lshrdi3);
320EXPORT_SYMBOL(__muldi3); 313EXPORT_SYMBOL(__muldi3);
321EXPORT_SYMBOL(__divdi3); 314EXPORT_SYMBOL(__divdi3);
322 315
323EXPORT_SYMBOL(rem); 316EXPORT_SYMBOL(_Rem);
324EXPORT_SYMBOL(urem); 317EXPORT_SYMBOL(_Urem);
325EXPORT_SYMBOL(mul); 318EXPORT_SYMBOL(_Mul);
326EXPORT_SYMBOL(umul); 319EXPORT_SYMBOL(_Umul);
327EXPORT_SYMBOL(div); 320EXPORT_SYMBOL(_Div);
328EXPORT_SYMBOL(udiv); 321EXPORT_SYMBOL(_Udiv);
329 322
330#ifdef CONFIG_DEBUG_BUGVERBOSE 323#ifdef CONFIG_DEBUG_BUGVERBOSE
331EXPORT_SYMBOL(do_BUG); 324EXPORT_SYMBOL(do_BUG);