If modpost fails to load a symbol dump file, it cannot check unresolved symbols, hence module dependency will not be added. Nor CRCs can be added. Currently, external module builds check only $(objtree)/Module.symvers, but it should check files specified by KBUILD_EXTRA_SYMBOLS as well. Move the warning message from the top Makefile to scripts/Makefile.modpost and print the warning if any dump file is missing.
Unified · Split
| @@ -1649,17 +1649,9 @@ else # KBUILD_EXTMOD · 1648 unmodified lines | ||
| 1649 | 1649 | # We are always building modules |
| 1650 | 1650 | KBUILD_MODULES := 1 |
| 1651 | 1651 | |
| 1652 | −PHONY += $(objtree)/Module.symvers | |
| 1653 | −$(objtree)/Module.symvers: | |
| 1654 | − @test -e $(objtree)/Module.symvers || ( \ | |
| 1655 | − echo; \ | |
| 1656 | − echo " WARNING: Symbol version dump $(objtree)/Module.symvers"; \ | |
| 1657 | − echo " is missing; modules will have no dependencies and modversions."; \ | |
| 1658 | − echo ) | |
| 1659 | − | |
| 1660 | 1652 | build-dirs := $(KBUILD_EXTMOD) |
| 1661 | 1653 | PHONY += modules |
| 1662 | −modules: descend $(objtree)/Module.symvers | |
| 1654 | +modules: descend | |
| 1663 | 1655 | $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost |
| 1664 | 1656 | |
| 1665 | 1657 | PHONY += modules_install |
| @@ -98,8 +98,11 @@ ifneq ($(findstring i,$(filter-out --%,$(MAKEFLAGS))),) · 97 unmodified lines | ||
| 98 | 98 | MODPOST += -n |
| 99 | 99 | endif |
| 100 | 100 | |
| 101 | +# Clear VPATH to not search for *.symvers in $(srctree). Check only $(objtree). | |
| 102 | +VPATH := | |
| 101 | 103 | $(input-symdump): |
| 102 | − @: | |
| 104 | + @echo >&2 'WARNING: Symbol version dump "$@" is missing.' | |
| 105 | + @echo >&2 ' Modules may not have dependencies or modversions.' | |
| 103 | 106 | |
| 104 | 107 | # Read out modules.order to pass in modpost. |
| 105 | 108 | # Otherwise, allmodconfig would fail with "Argument list too long". |