Re: Undefined symbols in 2.4.0-test6pre[12]

From: John Silva (jps@aerizen.com)
Date: Tue Aug 08 2000 - 13:17:13 EST


This worked much better than my patches. Thanks!

Mikael Pettersson wrote:

> John Silva wrote:
>
> > I've been getting errors from depmod when booting 2.4.0-test6pre[12]
> > with modules.
> > ...
> > depmod: __io_virt_debug
> > depmod: __generic_copy_from_user
> > depmod: schedule
> > depmod: iounmap
> > depmod: __ioremap
> > depmod: __const_udelay
> > depmod: __generic_copy_to_user
> > ...
> > CONFIG_MODVERSIONS=y
>
> Looks like you too have been hit by the modversions.h bug -- make can
> fail to build a correct modversions.h during 'make dep', which causes
> the symptoms you described.
>
> Try the patch below (against 2.4.0-test6-pre6, but it should apply to
> any recent test kernel) and let us know if it solves your problem.
>
> /Mikael
>
> --- linux-2.4.0-test6-pre6/Makefile.~1~ Mon Aug 7 11:40:17 2000
> +++ linux-2.4.0-test6-pre6/Makefile Mon Aug 7 11:40:56 2000
> @@ -428,6 +428,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
> @@ -436,7 +439,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-test6-pre6/Rules.make.~1~ Mon Aug 7 11:40:17 2000
> +++ linux-2.4.0-test6-pre6/Rules.make Mon Aug 7 11:40:56 2000
> @@ -208,8 +208,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>"; \
> @@ -218,11 +226,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/



This archive was generated by hypermail 2b29 : Tue Aug 15 2000 - 21:00:15 EST