not exported symbols on x86 SMP kernel

Akira Yoshiyama (yosshy@jedi.seg.kobe-u.ac.jp)
Wed, 16 Apr 1997 17:56:25 +0900 (JST)


Hi,

I'm using a Linux kernel version 2.1.3x on a Intel PPro based
SMP box. It has solved some problems on SMP kernel. Great!
But, it has a new problem. Because some symbols weren't
exported, the `depmod' command can't resolve them. See below.

---
# depmod -V
depmod (Linux modutils) 2.1.29-970313
# depmod -ae
/lib/modules/2.1.33/fs/nfsd.o: unresolved symbol(s)
	global_irq_holder
	__global_sti
/lib/modules/2.1.33/fs/nfs.o: unresolved symbol(s)
	waitqueue_lock
/lib/modules/2.1.33/fs/lockd.o: unresolved symbol(s)
	global_irq_holder
	__global_sti
/lib/modules/2.1.33/misc/sunrpc.o: unresolved symbol(s)
	__global_cli
	global_irq_holder
	__global_save_flags
	waitqueue_lock
	__global_restore_flags
	............
#
---

Unresolved symbols are:

__global_cli __global_restore_flags __global_save_flags __global_sti global_irq_holder tqueue_lock waitqueue_lock (corrected in 2.1.34)

These are exported in 2.1.34 for SPARC, but not for x86. I tried to correct them. It seems good. The `depmod' command gives no warning.

---
diff -u -r linux-2.1.33/Makefile linux-2.1.33.fix/Makefile
diff -u -r linux-2.1.33/arch/i386/kernel/i386_ksyms.c linux-2.1.33.fix/arch/i386/kernel/i386_ksyms.c
--- linux-2.1.33/arch/i386/kernel/i386_ksyms.c	Sun Apr 13 23:31:42 1997
+++ linux-2.1.33.fix/arch/i386/kernel/i386_ksyms.c	Sun Apr 13 22:03:19 1997
@@ -17,6 +17,7 @@
 extern void dump_thread(struct pt_regs *, struct user *);
 extern int dump_fpu(elf_fpregset_t *);
 extern void __lock_kernel(void);
+extern unsigned char global_irq_holder;
 
 /* platform dependent support */
 EXPORT_SYMBOL(EISA_bus);
@@ -42,6 +43,13 @@
 EXPORT_SYMBOL(active_kernel_processor);
 EXPORT_SYMBOL(smp_invalidate_needed);
 EXPORT_SYMBOL_NOVERS(__lock_kernel);
+EXPORT_SYMBOL(__global_cli);
+EXPORT_SYMBOL(__global_restore_flags);
+EXPORT_SYMBOL(__global_save_flags);
+EXPORT_SYMBOL(__global_sti);
+EXPORT_SYMBOL(global_irq_holder);
+EXPORT_SYMBOL(tqueue_lock);
+EXPORT_SYMBOL(waitqueue_lock);
 #endif
 
 #ifdef CONFIG_MCA
---

And, I tried to test kernels 2.1.3x.

2.1.30 - 2.1.33 : Some typo in codes, but they have less problem. 2.1.34 : Sometimes, it hangs up. 1st: running `find' command 2nd: running `m18ned emacs'

Are there some problems in 2.1.34, especially disk access?

Thank you for your reading my poor English.

Akira Yoshiyama <yosshy@jedi.seg.kobe-u.ac.jp>