Skip to content
  • Masahiro Yamada's avatar
    kbuild: fix 'No such file or directory' warning for headers_install · 7ff4f080
    Masahiro Yamada authored
    Since commit d5470d14 ("kbuild: re-implement Makefile.headersinst
    without recursion"), headers_install emits an ugly warning.
    
    $ make headers_install
      [ snip ]
      UPD     include/generated/uapi/linux/version.h
    find: ‘./include/uapi/Kbuild’: No such file or directory
      HDRINST usr/include/video/uvesafb.h
        ...
    
    This happens for GNU Make <= 4.2.1
    
    When I wrote that commit, I missed this warning because I was using the
    state-of-the-art Make version compiled from the git tree.
    
    $(wildcard $(src)/*/) is intended to match to only existing directories
    since it has a trailing slash, but actually matches to regular files too.
    (include/uapi/Kbuild in this case)
    
    This is a bug of GNU Make, and was fixed by:
    
    | commit b7acb10e86dc8f5fdf2a2bbd87e1059c315e31d6
    | Author: spagoveanu@gmail.com <spagoveanu@gmail.com>
    | Date:   Wed Jun 20 02:03:48 2018 +0300
    |
    |    * src/dir.c: Preserve glob d_type field
    
    We need to cater to old Make versions. Add '$(filter %/,...) to filter
    out the regular files.
    
    Fixes: d5470d14
    
     ("kbuild: re-implement Makefile.headersinst without recursion")
    Signed-off-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
    7ff4f080