Messages in this thread Patch in this message | | | Date | Sun, 30 Jul 2000 23:51:18 +0200 (MET DST) | From | Mikael Pettersson <> | Subject | Re: 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/
| |