lkml.org 
[lkml]   [2019]   [Dec]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 4.14 096/267] kbuild: fix single target build for external module
    Date
    From: Masahiro Yamada <yamada.masahiro@socionext.com>

    [ Upstream commit e07db28eea38ed4e332b3a89f3995c86b713cb5b ]

    Building a single target in an external module fails due to missing
    .tmp_versions directory.

    For example,

    $ make -C /lib/modules/$(uname -r)/build M=$PWD foo.o

    will fail in the following way:

    CC [M] /home/masahiro/foo/foo.o
    /bin/sh: 1: cannot create /home/masahiro/foo/.tmp_versions/foo.mod: Directory nonexistent

    This is because $(cmd_crmodverdir) is executed only before building
    /, %/, %.ko single targets of external modules. Create .tmp_versions
    in the 'prepare' target.

    Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    Makefile | 11 +++--------
    1 file changed, 3 insertions(+), 8 deletions(-)

    diff --git a/Makefile b/Makefile
    index d97288c0754fe..4de172b2e1fba 100644
    --- a/Makefile
    +++ b/Makefile
    @@ -1529,9 +1529,6 @@ else # KBUILD_EXTMOD

    # We are always building modules
    KBUILD_MODULES := 1
    -PHONY += crmodverdir
    -crmodverdir:
    - $(cmd_crmodverdir)

    PHONY += $(objtree)/Module.symvers
    $(objtree)/Module.symvers:
    @@ -1543,7 +1540,7 @@ $(objtree)/Module.symvers:

    module-dirs := $(addprefix _module_,$(KBUILD_EXTMOD))
    PHONY += $(module-dirs) modules
    -$(module-dirs): crmodverdir $(objtree)/Module.symvers
    +$(module-dirs): prepare $(objtree)/Module.symvers
    $(Q)$(MAKE) $(build)=$(patsubst _module_%,%,$@)

    modules: $(module-dirs)
    @@ -1584,7 +1581,8 @@ help:

    # Dummies...
    PHONY += prepare scripts
    -prepare: ;
    +prepare:
    + $(cmd_crmodverdir)
    scripts: ;
    endif # KBUILD_EXTMOD

    @@ -1709,17 +1707,14 @@ endif

    # Modules
    /: prepare scripts FORCE
    - $(cmd_crmodverdir)
    $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
    $(build)=$(build-dir)
    # Make sure the latest headers are built for Documentation
    Documentation/ samples/: headers_install
    %/: prepare scripts FORCE
    - $(cmd_crmodverdir)
    $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
    $(build)=$(build-dir)
    %.ko: prepare scripts FORCE
    - $(cmd_crmodverdir)
    $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
    $(build)=$(build-dir) $(@:.ko=.o)
    $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
    --
    2.20.1


    \
     
     \ /
      Last update: 2019-12-16 18:55    [W:4.024 / U:0.348 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site