diff options
author | Al Viro <viro@ZenIV.linux.org.uk> | 2005-09-11 23:14:07 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2005-09-11 23:14:07 -0400 |
commit | 7caaeabb17758295edff9703c18a840073c5b8f4 (patch) | |
tree | a33a4bcc77be6077fd8b787380bf13a38828d211 /arch/sparc/kernel/sparc_ksyms.c | |
parent | 357d596bd552ad157a906289ab13ea6ba7e66e3d (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.c | 31 |
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) \ | 100 | extern int _Div(int, int); |
101 | extern __ret __x(__arg1, __arg2); \ | 101 | extern int _Mul(int, int); |
102 | asm(".weak " #__x);\ | 102 | extern int _Rem(int, int); |
103 | asm(#__x "=." #__x); | 103 | extern unsigned _Udiv(unsigned, unsigned); |
104 | 104 | extern unsigned _Umul(unsigned, unsigned); | |
105 | DOT_ALIAS2(int, div, int, int) | 105 | extern unsigned _Urem(unsigned, unsigned); |
106 | DOT_ALIAS2(int, mul, int, int) | ||
107 | DOT_ALIAS2(int, rem, int, int) | ||
108 | DOT_ALIAS2(unsigned, udiv, unsigned, unsigned) | ||
109 | DOT_ALIAS2(unsigned, umul, unsigned, unsigned) | ||
110 | DOT_ALIAS2(unsigned, urem, unsigned, unsigned) | ||
111 | |||
112 | #undef DOT_ALIAS2 | ||
113 | 106 | ||
114 | /* used by various drivers */ | 107 | /* used by various drivers */ |
115 | EXPORT_SYMBOL(sparc_cpu_model); | 108 | EXPORT_SYMBOL(sparc_cpu_model); |
@@ -320,12 +313,12 @@ EXPORT_SYMBOL(__lshrdi3); | |||
320 | EXPORT_SYMBOL(__muldi3); | 313 | EXPORT_SYMBOL(__muldi3); |
321 | EXPORT_SYMBOL(__divdi3); | 314 | EXPORT_SYMBOL(__divdi3); |
322 | 315 | ||
323 | EXPORT_SYMBOL(rem); | 316 | EXPORT_SYMBOL(_Rem); |
324 | EXPORT_SYMBOL(urem); | 317 | EXPORT_SYMBOL(_Urem); |
325 | EXPORT_SYMBOL(mul); | 318 | EXPORT_SYMBOL(_Mul); |
326 | EXPORT_SYMBOL(umul); | 319 | EXPORT_SYMBOL(_Umul); |
327 | EXPORT_SYMBOL(div); | 320 | EXPORT_SYMBOL(_Div); |
328 | EXPORT_SYMBOL(udiv); | 321 | EXPORT_SYMBOL(_Udiv); |
329 | 322 | ||
330 | #ifdef CONFIG_DEBUG_BUGVERBOSE | 323 | #ifdef CONFIG_DEBUG_BUGVERBOSE |
331 | EXPORT_SYMBOL(do_BUG); | 324 | EXPORT_SYMBOL(do_BUG); |