Browse Source

alpha: move exports to actual definitions

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Al Viro 9 years ago
parent
commit
00fc0e0dda
41 changed files with 99 additions and 131 deletions
  1. 1 0
      arch/alpha/include/asm/Kbuild
  2. 1 1
      arch/alpha/kernel/Makefile
  3. 0 102
      arch/alpha/kernel/alpha_ksyms.c
  4. 4 2
      arch/alpha/kernel/machvec_impl.h
  5. 1 0
      arch/alpha/kernel/setup.c
  6. 5 0
      arch/alpha/lib/callback_srm.S
  7. 3 0
      arch/alpha/lib/checksum.c
  8. 2 1
      arch/alpha/lib/clear_page.S
  9. 2 0
      arch/alpha/lib/clear_user.S
  10. 2 1
      arch/alpha/lib/copy_page.S
  11. 3 0
      arch/alpha/lib/copy_user.S
  12. 2 0
      arch/alpha/lib/csum_ipv6_magic.S
  13. 2 0
      arch/alpha/lib/csum_partial_copy.c
  14. 2 0
      arch/alpha/lib/dec_and_lock.c
  15. 3 0
      arch/alpha/lib/divide.S
  16. 2 1
      arch/alpha/lib/ev6-clear_page.S
  17. 2 1
      arch/alpha/lib/ev6-clear_user.S
  18. 2 1
      arch/alpha/lib/ev6-copy_page.S
  19. 2 1
      arch/alpha/lib/ev6-copy_user.S
  20. 2 0
      arch/alpha/lib/ev6-csum_ipv6_magic.S
  21. 3 0
      arch/alpha/lib/ev6-divide.S
  22. 2 1
      arch/alpha/lib/ev6-memchr.S
  23. 2 1
      arch/alpha/lib/ev6-memcpy.S
  24. 6 1
      arch/alpha/lib/ev6-memset.S
  25. 2 1
      arch/alpha/lib/ev67-strcat.S
  26. 2 1
      arch/alpha/lib/ev67-strchr.S
  27. 2 1
      arch/alpha/lib/ev67-strlen.S
  28. 2 1
      arch/alpha/lib/ev67-strncat.S
  29. 2 1
      arch/alpha/lib/ev67-strrchr.S
  30. 7 0
      arch/alpha/lib/fpreg.c
  31. 2 1
      arch/alpha/lib/memchr.S
  32. 2 3
      arch/alpha/lib/memcpy.c
  33. 2 1
      arch/alpha/lib/memmove.S
  34. 6 1
      arch/alpha/lib/memset.S
  35. 2 0
      arch/alpha/lib/strcat.S
  36. 2 1
      arch/alpha/lib/strchr.S
  37. 2 1
      arch/alpha/lib/strcpy.S
  38. 2 1
      arch/alpha/lib/strlen.S
  39. 2 1
      arch/alpha/lib/strncat.S
  40. 2 1
      arch/alpha/lib/strncpy.S
  41. 2 1
      arch/alpha/lib/strrchr.S

+ 1 - 0
arch/alpha/include/asm/Kbuild

@@ -3,6 +3,7 @@
 generic-y += clkdev.h
 generic-y += clkdev.h
 generic-y += cputime.h
 generic-y += cputime.h
 generic-y += exec.h
 generic-y += exec.h
+generic-y += export.h
 generic-y += irq_work.h
 generic-y += irq_work.h
 generic-y += mcs_spinlock.h
 generic-y += mcs_spinlock.h
 generic-y += mm-arch-hooks.h
 generic-y += mm-arch-hooks.h

+ 1 - 1
arch/alpha/kernel/Makefile

@@ -8,7 +8,7 @@ ccflags-y	:= -Wno-sign-compare
 
 
 obj-y    := entry.o traps.o process.o osf_sys.o irq.o \
 obj-y    := entry.o traps.o process.o osf_sys.o irq.o \
 	    irq_alpha.o signal.o setup.o ptrace.o time.o \
 	    irq_alpha.o signal.o setup.o ptrace.o time.o \
-	    alpha_ksyms.o systbls.o err_common.o io.o
+	    systbls.o err_common.o io.o
 
 
 obj-$(CONFIG_VGA_HOSE)	+= console.o
 obj-$(CONFIG_VGA_HOSE)	+= console.o
 obj-$(CONFIG_SMP)	+= smp.o
 obj-$(CONFIG_SMP)	+= smp.o

+ 0 - 102
arch/alpha/kernel/alpha_ksyms.c

@@ -1,102 +0,0 @@
-/*
- * linux/arch/alpha/kernel/alpha_ksyms.c
- *
- * Export the alpha-specific functions that are needed for loadable
- * modules.
- */
-
-#include <linux/module.h>
-#include <asm/console.h>
-#include <asm/uaccess.h>
-#include <asm/checksum.h>
-#include <asm/fpu.h>
-#include <asm/machvec.h>
-
-#include <linux/syscalls.h>
-
-/* these are C runtime functions with special calling conventions: */
-extern void __divl (void);
-extern void __reml (void);
-extern void __divq (void);
-extern void __remq (void);
-extern void __divlu (void);
-extern void __remlu (void);
-extern void __divqu (void);
-extern void __remqu (void);
-
-EXPORT_SYMBOL(alpha_mv);
-EXPORT_SYMBOL(callback_getenv);
-EXPORT_SYMBOL(callback_setenv);
-EXPORT_SYMBOL(callback_save_env);
-
-/* platform dependent support */
-EXPORT_SYMBOL(strcat);
-EXPORT_SYMBOL(strcpy);
-EXPORT_SYMBOL(strlen);
-EXPORT_SYMBOL(strncpy);
-EXPORT_SYMBOL(strncat);
-EXPORT_SYMBOL(strchr);
-EXPORT_SYMBOL(strrchr);
-EXPORT_SYMBOL(memmove);
-EXPORT_SYMBOL(__memcpy);
-EXPORT_SYMBOL(__memset);
-EXPORT_SYMBOL(___memset);
-EXPORT_SYMBOL(__memsetw);
-EXPORT_SYMBOL(__constant_c_memset);
-EXPORT_SYMBOL(copy_page);
-EXPORT_SYMBOL(clear_page);
-
-EXPORT_SYMBOL(alpha_read_fp_reg);
-EXPORT_SYMBOL(alpha_read_fp_reg_s);
-EXPORT_SYMBOL(alpha_write_fp_reg);
-EXPORT_SYMBOL(alpha_write_fp_reg_s);
-
-/* Networking helper routines. */
-EXPORT_SYMBOL(csum_tcpudp_magic);
-EXPORT_SYMBOL(ip_compute_csum);
-EXPORT_SYMBOL(ip_fast_csum);
-EXPORT_SYMBOL(csum_partial_copy_nocheck);
-EXPORT_SYMBOL(csum_partial_copy_from_user);
-EXPORT_SYMBOL(csum_ipv6_magic);
-
-#ifdef CONFIG_MATHEMU_MODULE
-extern long (*alpha_fp_emul_imprecise)(struct pt_regs *, unsigned long);
-extern long (*alpha_fp_emul) (unsigned long pc);
-EXPORT_SYMBOL(alpha_fp_emul_imprecise);
-EXPORT_SYMBOL(alpha_fp_emul);
-#endif
-
-/*
- * The following are specially called from the uaccess assembly stubs.
- */
-EXPORT_SYMBOL(__copy_user);
-EXPORT_SYMBOL(__do_clear_user);
-
-/* 
- * SMP-specific symbols.
- */
-
-#ifdef CONFIG_SMP
-EXPORT_SYMBOL(_atomic_dec_and_lock);
-#endif /* CONFIG_SMP */
-
-/*
- * The following are special because they're not called
- * explicitly (the C compiler or assembler generates them in
- * response to division operations).  Fortunately, their
- * interface isn't gonna change any time soon now, so it's OK
- * to leave it out of version control.
- */
-# undef memcpy
-# undef memset
-EXPORT_SYMBOL(__divl);
-EXPORT_SYMBOL(__divlu);
-EXPORT_SYMBOL(__divq);
-EXPORT_SYMBOL(__divqu);
-EXPORT_SYMBOL(__reml);
-EXPORT_SYMBOL(__remlu);
-EXPORT_SYMBOL(__remq);
-EXPORT_SYMBOL(__remqu);
-EXPORT_SYMBOL(memcpy);
-EXPORT_SYMBOL(memset);
-EXPORT_SYMBOL(memchr);

+ 4 - 2
arch/alpha/kernel/machvec_impl.h

@@ -144,9 +144,11 @@
    else beforehand.  Fine.  We'll do it ourselves.  */
    else beforehand.  Fine.  We'll do it ourselves.  */
 #if 0
 #if 0
 #define ALIAS_MV(system) \
 #define ALIAS_MV(system) \
-  struct alpha_machine_vector alpha_mv __attribute__((alias(#system "_mv")));
+  struct alpha_machine_vector alpha_mv __attribute__((alias(#system "_mv"))); \
+  EXPORT_SYMBOL(alpha_mv);
 #else
 #else
 #define ALIAS_MV(system) \
 #define ALIAS_MV(system) \
-  asm(".global alpha_mv\nalpha_mv = " #system "_mv");
+  asm(".global alpha_mv\nalpha_mv = " #system "_mv"); \
+  EXPORT_SYMBOL(alpha_mv);
 #endif
 #endif
 #endif /* GENERIC */
 #endif /* GENERIC */

+ 1 - 0
arch/alpha/kernel/setup.c

@@ -115,6 +115,7 @@ unsigned long alpha_agpgart_size = DEFAULT_AGP_APER_SIZE;
 
 
 #ifdef CONFIG_ALPHA_GENERIC
 #ifdef CONFIG_ALPHA_GENERIC
 struct alpha_machine_vector alpha_mv;
 struct alpha_machine_vector alpha_mv;
+EXPORT_SYMBOL(alpha_mv);
 #endif
 #endif
 
 
 #ifndef alpha_using_srm
 #ifndef alpha_using_srm

+ 5 - 0
arch/alpha/lib/callback_srm.S

@@ -3,6 +3,7 @@
  */
  */
 
 
 #include <asm/console.h>
 #include <asm/console.h>
+#include <asm/export.h>
 
 
 .text
 .text
 #define HWRPB_CRB_OFFSET 0xc0
 #define HWRPB_CRB_OFFSET 0xc0
@@ -92,6 +93,10 @@ CALLBACK(reset_env, CCB_RESET_ENV, 4)
 CALLBACK(save_env, CCB_SAVE_ENV, 1)
 CALLBACK(save_env, CCB_SAVE_ENV, 1)
 CALLBACK(pswitch, CCB_PSWITCH, 3)
 CALLBACK(pswitch, CCB_PSWITCH, 3)
 CALLBACK(bios_emul, CCB_BIOS_EMUL, 5)
 CALLBACK(bios_emul, CCB_BIOS_EMUL, 5)
+
+EXPORT_SYMBOL(callback_getenv)
+EXPORT_SYMBOL(callback_setenv)
+EXPORT_SYMBOL(callback_save_env)
 	
 	
 .data
 .data
 __alpha_using_srm:		# For use by bootpheader
 __alpha_using_srm:		# For use by bootpheader

+ 3 - 0
arch/alpha/lib/checksum.c

@@ -48,6 +48,7 @@ __sum16 csum_tcpudp_magic(__be32 saddr, __be32 daddr,
 		(__force u64)saddr + (__force u64)daddr +
 		(__force u64)saddr + (__force u64)daddr +
 		(__force u64)sum + ((len + proto) << 8));
 		(__force u64)sum + ((len + proto) << 8));
 }
 }
+EXPORT_SYMBOL(csum_tcpudp_magic);
 
 
 __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
 __wsum csum_tcpudp_nofold(__be32 saddr, __be32 daddr,
 			  __u32 len, __u8 proto, __wsum sum)
 			  __u32 len, __u8 proto, __wsum sum)
@@ -144,6 +145,7 @@ __sum16 ip_fast_csum(const void *iph, unsigned int ihl)
 {
 {
 	return (__force __sum16)~do_csum(iph,ihl*4);
 	return (__force __sum16)~do_csum(iph,ihl*4);
 }
 }
+EXPORT_SYMBOL(ip_fast_csum);
 
 
 /*
 /*
  * computes the checksum of a memory block at buff, length len,
  * computes the checksum of a memory block at buff, length len,
@@ -178,3 +180,4 @@ __sum16 ip_compute_csum(const void *buff, int len)
 {
 {
 	return (__force __sum16)~from64to16(do_csum(buff,len));
 	return (__force __sum16)~from64to16(do_csum(buff,len));
 }
 }
+EXPORT_SYMBOL(ip_compute_csum);

+ 2 - 1
arch/alpha/lib/clear_page.S

@@ -3,7 +3,7 @@
  *
  *
  * Zero an entire page.
  * Zero an entire page.
  */
  */
-
+#include <asm/export.h>
 	.text
 	.text
 	.align 4
 	.align 4
 	.global clear_page
 	.global clear_page
@@ -37,3 +37,4 @@ clear_page:
 	nop
 	nop
 
 
 	.end clear_page
 	.end clear_page
+	EXPORT_SYMBOL(clear_page)

+ 2 - 0
arch/alpha/lib/clear_user.S

@@ -24,6 +24,7 @@
  * Clobbers:
  * Clobbers:
  *	$1,$2,$3,$4,$5,$6
  *	$1,$2,$3,$4,$5,$6
  */
  */
+#include <asm/export.h>
 
 
 /* Allow an exception for an insn; exit if we get one.  */
 /* Allow an exception for an insn; exit if we get one.  */
 #define EX(x,y...)			\
 #define EX(x,y...)			\
@@ -111,3 +112,4 @@ $exception:
 	ret	$31, ($28), 1	# .. e1 :
 	ret	$31, ($28), 1	# .. e1 :
 
 
 	.end __do_clear_user
 	.end __do_clear_user
+	EXPORT_SYMBOL(__do_clear_user)

+ 2 - 1
arch/alpha/lib/copy_page.S

@@ -3,7 +3,7 @@
  *
  *
  * Copy an entire page.
  * Copy an entire page.
  */
  */
-
+#include <asm/export.h>
 	.text
 	.text
 	.align 4
 	.align 4
 	.global copy_page
 	.global copy_page
@@ -47,3 +47,4 @@ copy_page:
 	nop
 	nop
 
 
 	.end copy_page
 	.end copy_page
+	EXPORT_SYMBOL(copy_page)

+ 3 - 0
arch/alpha/lib/copy_user.S

@@ -26,6 +26,8 @@
  *	$1,$2,$3,$4,$5,$6,$7
  *	$1,$2,$3,$4,$5,$6,$7
  */
  */
 
 
+#include <asm/export.h>
+
 /* Allow an exception for an insn; exit if we get one.  */
 /* Allow an exception for an insn; exit if we get one.  */
 #define EXI(x,y...)			\
 #define EXI(x,y...)			\
 	99: x,##y;			\
 	99: x,##y;			\
@@ -143,3 +145,4 @@ $101:
 	ret $31,($28),1
 	ret $31,($28),1
 
 
 	.end __copy_user
 	.end __copy_user
+EXPORT_SYMBOL(__copy_user)

+ 2 - 0
arch/alpha/lib/csum_ipv6_magic.S

@@ -12,6 +12,7 @@
  * added by Ivan Kokshaysky <ink@jurassic.park.msu.ru>
  * added by Ivan Kokshaysky <ink@jurassic.park.msu.ru>
  */
  */
 
 
+#include <asm/export.h>
 	.globl csum_ipv6_magic
 	.globl csum_ipv6_magic
 	.align 4
 	.align 4
 	.ent csum_ipv6_magic
 	.ent csum_ipv6_magic
@@ -113,3 +114,4 @@ csum_ipv6_magic:
 	ret			# .. e1 :
 	ret			# .. e1 :
 
 
 	.end csum_ipv6_magic
 	.end csum_ipv6_magic
+	EXPORT_SYMBOL(csum_ipv6_magic)

+ 2 - 0
arch/alpha/lib/csum_partial_copy.c

@@ -374,6 +374,7 @@ csum_partial_copy_from_user(const void __user *src, void *dst, int len,
 	}
 	}
 	return (__force __wsum)checksum;
 	return (__force __wsum)checksum;
 }
 }
+EXPORT_SYMBOL(csum_partial_copy_from_user);
 
 
 __wsum
 __wsum
 csum_partial_copy_nocheck(const void *src, void *dst, int len, __wsum sum)
 csum_partial_copy_nocheck(const void *src, void *dst, int len, __wsum sum)
@@ -386,3 +387,4 @@ csum_partial_copy_nocheck(const void *src, void *dst, int len, __wsum sum)
 	set_fs(oldfs);
 	set_fs(oldfs);
 	return checksum;
 	return checksum;
 }
 }
+EXPORT_SYMBOL(csum_partial_copy_nocheck);

+ 2 - 0
arch/alpha/lib/dec_and_lock.c

@@ -7,6 +7,7 @@
 
 
 #include <linux/spinlock.h>
 #include <linux/spinlock.h>
 #include <linux/atomic.h>
 #include <linux/atomic.h>
+#include <linux/export.h>
 
 
   asm (".text					\n\
   asm (".text					\n\
 	.global _atomic_dec_and_lock		\n\
 	.global _atomic_dec_and_lock		\n\
@@ -39,3 +40,4 @@ static int __used atomic_dec_and_lock_1(atomic_t *atomic, spinlock_t *lock)
 	spin_unlock(lock);
 	spin_unlock(lock);
 	return 0;
 	return 0;
 }
 }
+EXPORT_SYMBOL(_atomic_dec_and_lock);

+ 3 - 0
arch/alpha/lib/divide.S

@@ -45,6 +45,7 @@
  *	$28 - compare status
  *	$28 - compare status
  */
  */
 
 
+#include <asm/export.h>
 #define halt .long 0
 #define halt .long 0
 
 
 /*
 /*
@@ -151,6 +152,7 @@ ufunction:
 	addq	$30,STACK,$30
 	addq	$30,STACK,$30
 	ret	$31,($23),1
 	ret	$31,($23),1
 	.end	ufunction
 	.end	ufunction
+EXPORT_SYMBOL(ufunction)
 
 
 /*
 /*
  * Uhh.. Ugly signed division. I'd rather not have it at all, but
  * Uhh.. Ugly signed division. I'd rather not have it at all, but
@@ -193,3 +195,4 @@ sfunction:
 	addq	$30,STACK,$30
 	addq	$30,STACK,$30
 	ret	$31,($23),1
 	ret	$31,($23),1
 	.end	sfunction
 	.end	sfunction
+EXPORT_SYMBOL(sfunction)

+ 2 - 1
arch/alpha/lib/ev6-clear_page.S

@@ -3,7 +3,7 @@
  *
  *
  * Zero an entire page.
  * Zero an entire page.
  */
  */
-
+#include <asm/export.h>
         .text
         .text
         .align 4
         .align 4
         .global clear_page
         .global clear_page
@@ -52,3 +52,4 @@ clear_page:
 	nop
 	nop
 
 
 	.end clear_page
 	.end clear_page
+	EXPORT_SYMBOL(clear_page)

+ 2 - 1
arch/alpha/lib/ev6-clear_user.S

@@ -43,6 +43,7 @@
  *	want to leave a hole (and we also want to avoid repeating lots of work)
  *	want to leave a hole (and we also want to avoid repeating lots of work)
  */
  */
 
 
+#include <asm/export.h>
 /* Allow an exception for an insn; exit if we get one.  */
 /* Allow an exception for an insn; exit if we get one.  */
 #define EX(x,y...)			\
 #define EX(x,y...)			\
 	99: x,##y;			\
 	99: x,##y;			\
@@ -222,4 +223,4 @@ $exception:			# Destination for exception recovery(?)
 	nop			# .. E  .. ..	:
 	nop			# .. E  .. ..	:
 	ret	$31, ($28), 1	# L0 .. .. ..	: L U L U
 	ret	$31, ($28), 1	# L0 .. .. ..	: L U L U
 	.end __do_clear_user
 	.end __do_clear_user
-
+	EXPORT_SYMBOL(__do_clear_user)

+ 2 - 1
arch/alpha/lib/ev6-copy_page.S

@@ -56,7 +56,7 @@
    destination pages are in the dcache, but it is my guess that this is
    destination pages are in the dcache, but it is my guess that this is
    less important than the dcache miss case.  */
    less important than the dcache miss case.  */
 
 
-
+#include <asm/export.h>
 	.text
 	.text
 	.align 4
 	.align 4
 	.global copy_page
 	.global copy_page
@@ -201,3 +201,4 @@ copy_page:
 	nop
 	nop
 
 
 	.end copy_page
 	.end copy_page
+	EXPORT_SYMBOL(copy_page)

+ 2 - 1
arch/alpha/lib/ev6-copy_user.S

@@ -37,6 +37,7 @@
  *	L	- lower subcluster; L0 - subcluster L0; L1 - subcluster L1
  *	L	- lower subcluster; L0 - subcluster L0; L1 - subcluster L1
  */
  */
 
 
+#include <asm/export.h>
 /* Allow an exception for an insn; exit if we get one.  */
 /* Allow an exception for an insn; exit if we get one.  */
 #define EXI(x,y...)			\
 #define EXI(x,y...)			\
 	99: x,##y;			\
 	99: x,##y;			\
@@ -256,4 +257,4 @@ $101:
 	ret $31,($28),1		# L0
 	ret $31,($28),1		# L0
 
 
 	.end __copy_user
 	.end __copy_user
-
+	EXPORT_SYMBOL(__copy_user)

+ 2 - 0
arch/alpha/lib/ev6-csum_ipv6_magic.S

@@ -52,6 +52,7 @@
  * may cause additional delay in rare cases (load-load replay traps).
  * may cause additional delay in rare cases (load-load replay traps).
  */
  */
 
 
+#include <asm/export.h>
 	.globl csum_ipv6_magic
 	.globl csum_ipv6_magic
 	.align 4
 	.align 4
 	.ent csum_ipv6_magic
 	.ent csum_ipv6_magic
@@ -148,3 +149,4 @@ csum_ipv6_magic:
 	ret			# L0 : L U L U
 	ret			# L0 : L U L U
 
 
 	.end csum_ipv6_magic
 	.end csum_ipv6_magic
+	EXPORT_SYMBOL(csum_ipv6_magic)

+ 3 - 0
arch/alpha/lib/ev6-divide.S

@@ -55,6 +55,7 @@
  * Try not to change the actual algorithm if possible for consistency.
  * Try not to change the actual algorithm if possible for consistency.
  */
  */
 
 
+#include <asm/export.h>
 #define halt .long 0
 #define halt .long 0
 
 
 /*
 /*
@@ -205,6 +206,7 @@ ufunction:
 	addq	$30,STACK,$30		# E :
 	addq	$30,STACK,$30		# E :
 	ret	$31,($23),1		# L0 : L U U L
 	ret	$31,($23),1		# L0 : L U U L
 	.end	ufunction
 	.end	ufunction
+EXPORT_SYMBOL(ufunction)
 
 
 /*
 /*
  * Uhh.. Ugly signed division. I'd rather not have it at all, but
  * Uhh.. Ugly signed division. I'd rather not have it at all, but
@@ -257,3 +259,4 @@ sfunction:
 	addq	$30,STACK,$30		# E :
 	addq	$30,STACK,$30		# E :
 	ret	$31,($23),1		# L0 : L U U L
 	ret	$31,($23),1		# L0 : L U U L
 	.end	sfunction
 	.end	sfunction
+EXPORT_SYMBOL(sfunction)

+ 2 - 1
arch/alpha/lib/ev6-memchr.S

@@ -27,7 +27,7 @@
  *	L	- lower subcluster; L0 - subcluster L0; L1 - subcluster L1
  *	L	- lower subcluster; L0 - subcluster L0; L1 - subcluster L1
  * Try not to change the actual algorithm if possible for consistency.
  * Try not to change the actual algorithm if possible for consistency.
  */
  */
-
+#include <asm/export.h>
         .set noreorder
         .set noreorder
         .set noat
         .set noat
 
 
@@ -189,3 +189,4 @@ $not_found:
 	ret			# L0 :
 	ret			# L0 :
 
 
         .end memchr
         .end memchr
+	EXPORT_SYMBOL(memchr)

+ 2 - 1
arch/alpha/lib/ev6-memcpy.S

@@ -19,7 +19,7 @@
  * Temp usage notes:
  * Temp usage notes:
  *	$1,$2,		- scratch
  *	$1,$2,		- scratch
  */
  */
-
+#include <asm/export.h>
 	.set noreorder
 	.set noreorder
 	.set noat
 	.set noat
 
 
@@ -242,6 +242,7 @@ $nomoredata:
 	nop				# E :
 	nop				# E :
 
 
 	.end memcpy
 	.end memcpy
+	EXPORT_SYMBOL(memcpy)
 
 
 /* For backwards module compatibility.  */
 /* For backwards module compatibility.  */
 __memcpy = memcpy
 __memcpy = memcpy

+ 6 - 1
arch/alpha/lib/ev6-memset.S

@@ -26,7 +26,7 @@
  * as fixes will need to be made in multiple places.  The performance gain
  * as fixes will need to be made in multiple places.  The performance gain
  * is worth it.
  * is worth it.
  */
  */
-
+#include <asm/export.h>
 	.set noat
 	.set noat
 	.set noreorder
 	.set noreorder
 .text
 .text
@@ -229,6 +229,7 @@ end_b:
 	nop
 	nop
 	ret $31,($26),1		# L0 :
 	ret $31,($26),1		# L0 :
 	.end ___memset
 	.end ___memset
+	EXPORT_SYMBOL(___memset)
 
 
 	/*
 	/*
 	 * This is the original body of code, prior to replication and
 	 * This is the original body of code, prior to replication and
@@ -406,6 +407,7 @@ end:
 	nop
 	nop
 	ret $31,($26),1		# L0 :
 	ret $31,($26),1		# L0 :
 	.end __constant_c_memset
 	.end __constant_c_memset
+	EXPORT_SYMBOL(__constant_c_memset)
 
 
 	/*
 	/*
 	 * This is a replicant of the __constant_c_memset code, rescheduled
 	 * This is a replicant of the __constant_c_memset code, rescheduled
@@ -594,6 +596,9 @@ end_w:
 	ret $31,($26),1		# L0 :
 	ret $31,($26),1		# L0 :
 
 
 	.end __memsetw
 	.end __memsetw
+	EXPORT_SYMBOL(__memsetw)
 
 
 memset = ___memset
 memset = ___memset
 __memset = ___memset
 __memset = ___memset
+	EXPORT_SYMBOL(memset)
+	EXPORT_SYMBOL(__memset)

+ 2 - 1
arch/alpha/lib/ev67-strcat.S

@@ -19,7 +19,7 @@
  * string once.
  * string once.
  */
  */
 
 
-
+#include <asm/export.h>
 	.text
 	.text
 
 
 	.align 4
 	.align 4
@@ -52,3 +52,4 @@ $found:	cttz	$2, $3		# U0 :
 	br	__stxcpy	# L0 :
 	br	__stxcpy	# L0 :
 
 
 	.end strcat
 	.end strcat
+	EXPORT_SYMBOL(strcat)

+ 2 - 1
arch/alpha/lib/ev67-strchr.S

@@ -15,7 +15,7 @@
  *	L	- lower subcluster; L0 - subcluster L0; L1 - subcluster L1
  *	L	- lower subcluster; L0 - subcluster L0; L1 - subcluster L1
  * Try not to change the actual algorithm if possible for consistency.
  * Try not to change the actual algorithm if possible for consistency.
  */
  */
-
+#include <asm/export.h>
 #include <asm/regdef.h>
 #include <asm/regdef.h>
 
 
 	.set noreorder
 	.set noreorder
@@ -86,3 +86,4 @@ $found:	negq    t0, t1		# E : clear all but least set bit
 	ret			# L0 :
 	ret			# L0 :
 
 
 	.end strchr
 	.end strchr
+	EXPORT_SYMBOL(strchr)

+ 2 - 1
arch/alpha/lib/ev67-strlen.S

@@ -17,7 +17,7 @@
  *	U	- upper subcluster; U0 - subcluster U0; U1 - subcluster U1
  *	U	- upper subcluster; U0 - subcluster U0; U1 - subcluster U1
  *	L	- lower subcluster; L0 - subcluster L0; L1 - subcluster L1
  *	L	- lower subcluster; L0 - subcluster L0; L1 - subcluster L1
  */
  */
-
+#include <asm/export.h>
 	.set noreorder
 	.set noreorder
 	.set noat
 	.set noat
 
 
@@ -47,3 +47,4 @@ $found:
 	ret	$31, ($26)	# L0 :
 	ret	$31, ($26)	# L0 :
 
 
 	.end	strlen
 	.end	strlen
+	EXPORT_SYMBOL(strlen)

+ 2 - 1
arch/alpha/lib/ev67-strncat.S

@@ -20,7 +20,7 @@
  * Try not to change the actual algorithm if possible for consistency.
  * Try not to change the actual algorithm if possible for consistency.
  */
  */
 
 
-
+#include <asm/export.h>
 	.text
 	.text
 
 
 	.align 4
 	.align 4
@@ -92,3 +92,4 @@ $zerocount:
 	ret			# L0 :
 	ret			# L0 :
 
 
 	.end strncat
 	.end strncat
+	EXPORT_SYMBOL(strncat)

+ 2 - 1
arch/alpha/lib/ev67-strrchr.S

@@ -18,7 +18,7 @@
  *	L	- lower subcluster; L0 - subcluster L0; L1 - subcluster L1
  *	L	- lower subcluster; L0 - subcluster L0; L1 - subcluster L1
  */
  */
 
 
-
+#include <asm/export.h>
 #include <asm/regdef.h>
 #include <asm/regdef.h>
 
 
 	.set noreorder
 	.set noreorder
@@ -107,3 +107,4 @@ $eos:
 	nop
 	nop
 
 
 	.end strrchr
 	.end strrchr
+	EXPORT_SYMBOL(strrchr)

+ 7 - 0
arch/alpha/lib/fpreg.c

@@ -4,6 +4,9 @@
  * (C) Copyright 1998 Linus Torvalds
  * (C) Copyright 1998 Linus Torvalds
  */
  */
 
 
+#include <linux/compiler.h>
+#include <linux/export.h>
+
 #if defined(CONFIG_ALPHA_EV6) || defined(CONFIG_ALPHA_EV67)
 #if defined(CONFIG_ALPHA_EV6) || defined(CONFIG_ALPHA_EV67)
 #define STT(reg,val)  asm volatile ("ftoit $f"#reg",%0" : "=r"(val));
 #define STT(reg,val)  asm volatile ("ftoit $f"#reg",%0" : "=r"(val));
 #else
 #else
@@ -52,6 +55,7 @@ alpha_read_fp_reg (unsigned long reg)
 	}
 	}
 	return val;
 	return val;
 }
 }
+EXPORT_SYMBOL(alpha_read_fp_reg);
 
 
 #if defined(CONFIG_ALPHA_EV6) || defined(CONFIG_ALPHA_EV67)
 #if defined(CONFIG_ALPHA_EV6) || defined(CONFIG_ALPHA_EV67)
 #define LDT(reg,val)  asm volatile ("itoft %0,$f"#reg : : "r"(val));
 #define LDT(reg,val)  asm volatile ("itoft %0,$f"#reg : : "r"(val));
@@ -97,6 +101,7 @@ alpha_write_fp_reg (unsigned long reg, unsigned long val)
 	      case 31: LDT(31, val); break;
 	      case 31: LDT(31, val); break;
 	}
 	}
 }
 }
+EXPORT_SYMBOL(alpha_write_fp_reg);
 
 
 #if defined(CONFIG_ALPHA_EV6) || defined(CONFIG_ALPHA_EV67)
 #if defined(CONFIG_ALPHA_EV6) || defined(CONFIG_ALPHA_EV67)
 #define STS(reg,val)  asm volatile ("ftois $f"#reg",%0" : "=r"(val));
 #define STS(reg,val)  asm volatile ("ftois $f"#reg",%0" : "=r"(val));
@@ -146,6 +151,7 @@ alpha_read_fp_reg_s (unsigned long reg)
 	}
 	}
 	return val;
 	return val;
 }
 }
+EXPORT_SYMBOL(alpha_read_fp_reg_s);
 
 
 #if defined(CONFIG_ALPHA_EV6) || defined(CONFIG_ALPHA_EV67)
 #if defined(CONFIG_ALPHA_EV6) || defined(CONFIG_ALPHA_EV67)
 #define LDS(reg,val)  asm volatile ("itofs %0,$f"#reg : : "r"(val));
 #define LDS(reg,val)  asm volatile ("itofs %0,$f"#reg : : "r"(val));
@@ -191,3 +197,4 @@ alpha_write_fp_reg_s (unsigned long reg, unsigned long val)
 	      case 31: LDS(31, val); break;
 	      case 31: LDS(31, val); break;
 	}
 	}
 }
 }
+EXPORT_SYMBOL(alpha_write_fp_reg_s);

+ 2 - 1
arch/alpha/lib/memchr.S

@@ -31,7 +31,7 @@ For correctness consider that:
       - only minimum number of quadwords may be accessed
       - only minimum number of quadwords may be accessed
       - the third argument is an unsigned long
       - the third argument is an unsigned long
 */
 */
-
+#include <asm/export.h>
         .set noreorder
         .set noreorder
         .set noat
         .set noat
 
 
@@ -162,3 +162,4 @@ $not_found:
 	ret			# .. e1 :
 	ret			# .. e1 :
 
 
         .end memchr
         .end memchr
+	EXPORT_SYMBOL(memchr)

+ 2 - 3
arch/alpha/lib/memcpy.c

@@ -16,6 +16,7 @@
  */
  */
 
 
 #include <linux/types.h>
 #include <linux/types.h>
+#include <linux/export.h>
 
 
 /*
 /*
  * This should be done in one go with ldq_u*2/mask/stq_u. Do it
  * This should be done in one go with ldq_u*2/mask/stq_u. Do it
@@ -158,6 +159,4 @@ void * memcpy(void * dest, const void *src, size_t n)
 	__memcpy_unaligned_up ((unsigned long) dest, (unsigned long) src, n);
 	__memcpy_unaligned_up ((unsigned long) dest, (unsigned long) src, n);
 	return dest;
 	return dest;
 }
 }
-
-/* For backward modules compatibility, define __memcpy.  */
-asm("__memcpy = memcpy; .globl __memcpy");
+EXPORT_SYMBOL(memcpy);

+ 2 - 1
arch/alpha/lib/memmove.S

@@ -6,7 +6,7 @@
  * This is hand-massaged output from the original memcpy.c.  We defer to
  * This is hand-massaged output from the original memcpy.c.  We defer to
  * memcpy whenever possible; the backwards copy loops are not unrolled.
  * memcpy whenever possible; the backwards copy loops are not unrolled.
  */
  */
-        
+#include <asm/export.h>        
 	.set noat
 	.set noat
 	.set noreorder
 	.set noreorder
 	.text
 	.text
@@ -179,3 +179,4 @@ $egress:
 	nop
 	nop
 
 
 	.end memmove
 	.end memmove
+	EXPORT_SYMBOL(memmove)

+ 6 - 1
arch/alpha/lib/memset.S

@@ -13,7 +13,7 @@
  * The scheduling comments are according to the EV5 documentation (and done by 
  * The scheduling comments are according to the EV5 documentation (and done by 
  * hand, so they might well be incorrect, please do tell me about it..)
  * hand, so they might well be incorrect, please do tell me about it..)
  */
  */
-
+#include <asm/export.h>
 	.set noat
 	.set noat
 	.set noreorder
 	.set noreorder
 .text
 .text
@@ -106,6 +106,8 @@ within_one_quad:
 end:
 end:
 	ret $31,($26),1		/* E1 */
 	ret $31,($26),1		/* E1 */
 	.end ___memset
 	.end ___memset
+EXPORT_SYMBOL(___memset)
+EXPORT_SYMBOL(__constant_c_memset)
 
 
 	.align 5
 	.align 5
 	.ent __memsetw
 	.ent __memsetw
@@ -122,6 +124,9 @@ __memsetw:
 	br __constant_c_memset	/* .. E1 */
 	br __constant_c_memset	/* .. E1 */
 
 
 	.end __memsetw
 	.end __memsetw
+EXPORT_SYMBOL(__memsetw)
 
 
 memset = ___memset
 memset = ___memset
 __memset = ___memset
 __memset = ___memset
+	EXPORT_SYMBOL(memset)
+	EXPORT_SYMBOL(__memset)

+ 2 - 0
arch/alpha/lib/strcat.S

@@ -4,6 +4,7 @@
  *
  *
  * Append a null-terminated string from SRC to DST.
  * Append a null-terminated string from SRC to DST.
  */
  */
+#include <asm/export.h>
 
 
 	.text
 	.text
 
 
@@ -50,3 +51,4 @@ $found:	negq    $2, $3		# clear all but least set bit
 	br	__stxcpy
 	br	__stxcpy
 
 
 	.end strcat
 	.end strcat
+EXPORT_SYMBOL(strcat);

+ 2 - 1
arch/alpha/lib/strchr.S

@@ -5,7 +5,7 @@
  * Return the address of a given character within a null-terminated
  * Return the address of a given character within a null-terminated
  * string, or null if it is not found.
  * string, or null if it is not found.
  */
  */
-
+#include <asm/export.h>
 #include <asm/regdef.h>
 #include <asm/regdef.h>
 
 
 	.set noreorder
 	.set noreorder
@@ -68,3 +68,4 @@ $retnull:
 	ret			# .. e1 :
 	ret			# .. e1 :
 
 
 	.end strchr
 	.end strchr
+	EXPORT_SYMBOL(strchr)

+ 2 - 1
arch/alpha/lib/strcpy.S

@@ -5,7 +5,7 @@
  * Copy a null-terminated string from SRC to DST.  Return a pointer
  * Copy a null-terminated string from SRC to DST.  Return a pointer
  * to the null-terminator in the source.
  * to the null-terminator in the source.
  */
  */
-
+#include <asm/export.h>
 	.text
 	.text
 
 
 	.align 3
 	.align 3
@@ -21,3 +21,4 @@ strcpy:
 	br	__stxcpy	# do the copy
 	br	__stxcpy	# do the copy
 
 
 	.end strcpy
 	.end strcpy
+	EXPORT_SYMBOL(strcpy)

+ 2 - 1
arch/alpha/lib/strlen.S

@@ -11,7 +11,7 @@
  *	  do this instead of the 9 instructions that
  *	  do this instead of the 9 instructions that
  *	  binary search needs).
  *	  binary search needs).
  */
  */
-
+#include <asm/export.h>
 	.set noreorder
 	.set noreorder
 	.set noat
 	.set noat
 
 
@@ -55,3 +55,4 @@ done:	subq	$0, $16, $0
 	ret	$31, ($26)
 	ret	$31, ($26)
 
 
 	.end	strlen
 	.end	strlen
+	EXPORT_SYMBOL(strlen)

+ 2 - 1
arch/alpha/lib/strncat.S

@@ -9,7 +9,7 @@
  * past count, whereas libc may write to count+1.  This follows the generic
  * past count, whereas libc may write to count+1.  This follows the generic
  * implementation in lib/string.c and is, IMHO, more sensible.
  * implementation in lib/string.c and is, IMHO, more sensible.
  */
  */
-
+#include <asm/export.h>
 	.text
 	.text
 
 
 	.align 3
 	.align 3
@@ -82,3 +82,4 @@ $zerocount:
 	ret
 	ret
 
 
 	.end strncat
 	.end strncat
+	EXPORT_SYMBOL(strncat)

+ 2 - 1
arch/alpha/lib/strncpy.S

@@ -10,7 +10,7 @@
  * version has cropped that bit o' nastiness as well as assuming that
  * version has cropped that bit o' nastiness as well as assuming that
  * __stxncpy is in range of a branch.
  * __stxncpy is in range of a branch.
  */
  */
-
+#include <asm/export.h>
 	.set noat
 	.set noat
 	.set noreorder
 	.set noreorder
 
 
@@ -79,3 +79,4 @@ $zerolen:
 	ret
 	ret
 
 
 	.end	strncpy
 	.end	strncpy
+	EXPORT_SYMBOL(strncpy)

+ 2 - 1
arch/alpha/lib/strrchr.S

@@ -5,7 +5,7 @@
  * Return the address of the last occurrence of a given character
  * Return the address of the last occurrence of a given character
  * within a null-terminated string, or null if it is not found.
  * within a null-terminated string, or null if it is not found.
  */
  */
-
+#include <asm/export.h>
 #include <asm/regdef.h>
 #include <asm/regdef.h>
 
 
 	.set noreorder
 	.set noreorder
@@ -85,3 +85,4 @@ $retnull:
 	ret			# .. e1 :
 	ret			# .. e1 :
 
 
 	.end strrchr
 	.end strrchr
+	EXPORT_SYMBOL(strrchr)