Skip to content
Snippets Groups Projects
  1. Mar 01, 2020
  2. Feb 26, 2020
  3. Feb 24, 2020
  4. Feb 16, 2020
  5. Feb 10, 2020
  6. Feb 05, 2020
  7. Jan 27, 2020
  8. Jan 20, 2020
  9. Jan 15, 2020
  10. Jan 13, 2020
  11. Jan 06, 2020
    • Masahiro Yamada's avatar
      kbuild: create modules.builtin without Makefile.modbuiltin or tristate.conf · 8b41fc44
      Masahiro Yamada authored
      
      Commit bc081dd6 ("kbuild: generate modules.builtin") added
      infrastructure to generate modules.builtin, the list of all
      builtin modules.
      
      Basically, it works like this:
      
        - Kconfig generates include/config/tristate.conf, the list of
          tristate CONFIG options with a value in a capital letter.
      
        - scripts/Makefile.modbuiltin makes Kbuild descend into
          directories to collect the information of builtin modules.
      
      I am not a big fan of it because Kbuild ends up with traversing
      the source tree twice.
      
      I am not sure how perfectly it should work, but this approach cannot
      avoid false positives; even if the relevant CONFIG option is tristate,
      some Makefiles forces obj-m to obj-y.
      
      Some examples are:
      
        arch/powerpc/platforms/powermac/Makefile:
          obj-$(CONFIG_NVRAM:m=y)         += nvram.o
      
        net/ipv6/Makefile:
          obj-$(subst m,y,$(CONFIG_IPV6)) += inet6_hashtables.o
      
        net/netlabel/Makefile:
          obj-$(subst m,y,$(CONFIG_IPV6)) += netlabel_calipso.o
      
      Nobody has complained about (or noticed) it, so it is probably fine to
      have false positives in modules.builtin.
      
      This commit simplifies the implementation. Let's exploit the fact
      that every module has MODULE_LICENSE(). (modpost shows a warning if
      MODULE_LICENSE is missing. If so, 0-day bot would already have blocked
      such a module.)
      
      I added MODULE_FILE to <linux/module.h>. When the code is being compiled
      as builtin, it will be filled with the file path of the module, and
      collected into modules.builtin.info. Then, scripts/link-vmlinux.sh
      extracts the list of builtin modules out of it.
      
      This new approach fixes the false-positives above, but adds another
      type of false-positives; non-modular code may have MODULE_LICENSE()
      by mistake. This is not a big deal, it is just the code is always
      orphan. We can clean it up if we like. You can see cleanup examples by:
      
        $ git log --grep='make.* explicitly non-modular'
      
      To sum up, this commits deletes lots of code, but still produces almost
      equivalent results. Please note it does not increase the vmlinux size at
      all. As you can see in include/asm-generic/vmlinux.lds.h, the .modinfo
      section is discarded in the link stage.
      
      Signed-off-by: default avatarMasahiro Yamada <masahiroy@kernel.org>
      8b41fc44
  12. Jan 05, 2020
  13. Dec 29, 2019
  14. Dec 23, 2019
  15. Dec 15, 2019
  16. Dec 14, 2019
  17. Dec 08, 2019
  18. Nov 25, 2019
  19. Nov 23, 2019
  20. Nov 17, 2019
  21. Nov 14, 2019
  22. Nov 11, 2019
  23. Nov 03, 2019
  24. Oct 27, 2019
  25. Oct 20, 2019
  26. Oct 15, 2019
  27. Oct 13, 2019
  28. Oct 07, 2019
  29. Oct 06, 2019
  30. Oct 01, 2019
    • Shuah Khan's avatar
      selftests: Add kselftest-all and kselftest-install targets · 17eac6c2
      Shuah Khan authored
      
      Add kselftest-all target to build tests from the top level
      Makefile. This is to simplify kselftest use-cases for CI and
      distributions where build and test systems are different.
      
      Current kselftest target builds and runs tests on a development
      system which is a developer use-case.
      
      Add kselftest-install target to install tests from the top level
      Makefile. This is to simplify kselftest use-cases for CI and
      distributions where build and test systems are different.
      
      This change addresses requests from developers and testers to add
      support for installing kselftest from the main Makefile.
      
      In addition, make the install directory the same when install is
      run using "make kselftest-install" or by running kselftest_install.sh.
      Also fix the INSTALL_PATH variable conflict between main Makefile and
      selftests Makefile.
      
      Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
      Acked-by: default avatarMasahiro Yamada <yamada.masahiro@socionext.com>
      Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
      17eac6c2
Loading