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 | # We are always building modules | 1649 | # We are always building modules |
| 1650 | KBUILD_MODULES := 1 | 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 | build-dirs := $(KBUILD_EXTMOD) | 1652 | build-dirs := $(KBUILD_EXTMOD) |
| 1661 | PHONY += modules | 1653 | PHONY += modules |
| 1662 | modules: descend $(objtree)/Module.symvers | 1654 | modules: descend |
| 1663 | $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost | 1655 | $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost |
| 1664 | 1656 | ||
| 1665 | PHONY += modules_install | 1657 | PHONY += modules_install |
| @@ -98,8 +98,11 @@ ifneq ($(findstring i,$(filter-out --%,$(MAKEFLAGS))),) · 97 unmodified lines | |||
| 98 | MODPOST += -n | 98 | MODPOST += -n |
| 99 | endif | 99 | endif |
| 100 | 100 | ||
| 101 | # Clear VPATH to not search for *.symvers in $(srctree). Check only $(objtree). | ||
| 102 | VPATH := | ||
| 101 | $(input-symdump): | 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 | # Read out modules.order to pass in modpost. | 107 | # Read out modules.order to pass in modpost. |
| 105 | # Otherwise, allmodconfig would fail with "Argument list too long". | 108 | # Otherwise, allmodconfig would fail with "Argument list too long". |