diff options
| author | Alan Jenkins <alan-jenkins@tuffmail.co.uk> | 2009-11-07 16:03:53 -0500 |
|---|---|---|
| committer | Rusty Russell <rusty@rustcorp.com.au> | 2009-12-15 00:58:22 -0500 |
| commit | 3e7b19efe621bcf8bfef896c9c4cc5c99c52c3ec (patch) | |
| tree | 54d902402d64494762f9ab74edc85aaef3b0552f | |
| parent | e3f28c1333acfe9e4109b836bc15caf794e94d09 (diff) | |
ARM: unexport symbols used to implement floating point emulation
The Kconfigs for in-tree floating point emulation do not allow building
as modules. That leaves the Acorn FPEmulator module. I found two public
releases of this as a binary module for 2.1 and 2.2 kernels, optimized
for ARMV4.[1] If there is a resurgence of interest in this, the symbols
can always be re-exported.
This allows the EXPORT_SYMBOL_ALIAS() hack to be removed. The ulterior
motive here is that EXPORT_SYMBOL_ALIAS() makes it harder to sort the
resulting kernel symbol tables. Sorted symbol tables will allow faster
symbol resolution during module loading.
Note that fp_send_sigs() and fp_printk() are simply aliases for existing
exports and add no obvious value. Similarly fp_enter could easily be
renamed to kern_fp_enter at the point of definition. Therefore removing
EXPORT_SYMBOL_ALIAS will not serve as a material obstacle to re-adding
the exports should they be desired in future.
Build tested only.
[1] http://ftp.arm.linux.org.uk/pub/linux/arm/fpemulator/
Signed-off-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
CC: Russell King <linux@arm.linux.org.uk>
Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
| -rw-r--r-- | arch/arm/kernel/armksyms.c | 20 |
1 files changed, 0 insertions, 20 deletions
diff --git a/arch/arm/kernel/armksyms.c b/arch/arm/kernel/armksyms.c index 0e627705f746..8214bfebfaca 100644 --- a/arch/arm/kernel/armksyms.c +++ b/arch/arm/kernel/armksyms.c | |||
| @@ -48,27 +48,7 @@ extern void __aeabi_uidivmod(void); | |||
| 48 | extern void __aeabi_ulcmp(void); | 48 | extern void __aeabi_ulcmp(void); |
| 49 | 49 | ||
| 50 | extern void fpundefinstr(void); | 50 | extern void fpundefinstr(void); |
| 51 | extern void fp_enter(void); | ||
| 52 | 51 | ||
| 53 | /* | ||
| 54 | * This has a special calling convention; it doesn't | ||
| 55 | * modify any of the usual registers, except for LR. | ||
| 56 | */ | ||
| 57 | #define EXPORT_CRC_ALIAS(sym) __CRC_SYMBOL(sym, "") | ||
| 58 | |||
| 59 | #define EXPORT_SYMBOL_ALIAS(sym,orig) \ | ||
| 60 | EXPORT_CRC_ALIAS(sym) \ | ||
| 61 | static const struct kernel_symbol __ksymtab_##sym \ | ||
| 62 | __used __attribute__((section("__ksymtab"))) = \ | ||
| 63 | { (unsigned long)&orig, #sym }; | ||
| 64 | |||
| 65 | /* | ||
| 66 | * floating point math emulator support. | ||
| 67 | * These symbols will never change their calling convention... | ||
| 68 | */ | ||
| 69 | EXPORT_SYMBOL_ALIAS(kern_fp_enter,fp_enter); | ||
| 70 | EXPORT_SYMBOL_ALIAS(fp_printk,printk); | ||
| 71 | EXPORT_SYMBOL_ALIAS(fp_send_sig,send_sig); | ||
| 72 | 52 | ||
| 73 | EXPORT_SYMBOL(__backtrace); | 53 | EXPORT_SYMBOL(__backtrace); |
| 74 | 54 | ||
