lkml.org 
[lkml]   [2000]   [Jul]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: Unresolved symbols in 2.4.0-test5
BaRT <bart11@dingoblue.net.au> wrote:

>I am having this problem with 2.4.0-test5:
>
>[root@fathom /root]# depmod -ae
>depmod: *** Unresolved symbols in /lib/modules/2.4.0-test5/fs/fat.o
>depmod: strtok
>depmod: __generic_copy_to_user
>...
>cpu MHz : 877.894528

Definitely looks like a bite from the modversions.h-race bug.
See the recent "CONFIG_MODVERSIONS problem identified" thread
in lkml for an explanation of what's going on (on fast machines,
make dep may fail to properly build modversions.h, resulting
in the Unresolved symbols problem you had).

The patch below should fix the problem. Please try it out.

/Mikael

--- linux-2.4.0-test5/Makefile.~1~ Fri Jul 28 13:44:14 2000
+++ linux-2.4.0-test5/Makefile Fri Jul 28 14:09:39 2000
@@ -439,6 +439,9 @@
scripts/mkdep init/*.c > .depend
scripts/mkdep `find $(FINDHPATH) -name SCCS -prune -o -follow -name \*.h ! -name modversions.h -print` > .hdepend
$(MAKE) $(patsubst %,_sfdep_%,$(SUBDIRS)) _FASTDEP_ALL_SUB_DIRS="$(SUBDIRS)"
+ifdef CONFIG_MODVERSIONS
+ $(MAKE) update-modverfile
+endif

ifdef CONFIG_MODVERSIONS
MODVERFILE := $(TOPDIR)/include/linux/modversions.h
@@ -447,7 +450,7 @@
endif
export MODVERFILE

-depend dep: dep-files $(MODVERFILE)
+depend dep: dep-files

# make checkconfig: Prune 'scripts' directory to avoid "false positives".
checkconfig:
--- linux-2.4.0-test5/Rules.make.~1~ Sat Jul 1 00:13:51 2000
+++ linux-2.4.0-test5/Rules.make Fri Jul 28 14:05:05 2000
@@ -215,8 +215,16 @@

$(addprefix $(MODINCL)/,$(SYMTAB_OBJS:.o=.ver)): $(TOPDIR)/include/linux/autoconf.h

-$(TOPDIR)/include/linux/modversions.h: $(addprefix $(MODINCL)/,$(SYMTAB_OBJS:.o=.ver))
- @echo updating $(TOPDIR)/include/linux/modversions.h
+# updates .ver files but not modversions.h
+fastdep: $(addprefix $(MODINCL)/,$(SYMTAB_OBJS:.o=.ver))
+
+# updates .ver files and modversions.h like before (is this needed?)
+dep: fastdep update-modverfile
+
+endif # SYMTAB_OBJS
+
+# update modversions.h, but only if it would change
+update-modverfile:
@(echo "#ifndef _LINUX_MODVERSIONS_H";\
echo "#define _LINUX_MODVERSIONS_H"; \
echo "#include <linux/modsetver.h>"; \
@@ -225,11 +233,14 @@
if [ -f $$f ]; then echo "#include <linux/modules/$${f}>"; fi; \
done; \
echo "#endif"; \
- ) > $@
-
-dep fastdep: $(TOPDIR)/include/linux/modversions.h
-
-endif # SYMTAB_OBJS
+ ) > $(TOPDIR)/include/linux/modversions.h.tmp
+ @if [ -r $(TOPDIR)/include/linux/modversions.h ] && cmp -s $(TOPDIR)/include/linux/modversions.h $(TOPDIR)/include/linux/modversions.h.tmp; then \
+ echo $(TOPDIR)/include/linux/modversions.h was not updated; \
+ rm -f $(TOPDIR)/include/linux/modversions.h.tmp; \
+ else \
+ echo $(TOPDIR)/include/linux/modversions.h was updated; \
+ mv -f $(TOPDIR)/include/linux/modversions.h.tmp $(TOPDIR)/include/linux/modversions.h; \
+ fi

$(M_OBJS): $(TOPDIR)/include/linux/modversions.h
ifdef MAKING_MODULES
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:57    [W:0.102 / U:0.248 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site