27 Jan, 2020

1 commit


20 Jan, 2020

1 commit


13 Jan, 2020

1 commit


06 Jan, 2020

1 commit


30 Dec, 2019

1 commit


23 Dec, 2019

1 commit


22 Dec, 2019

1 commit

  • …asahiroy/linux-kbuild

    Pull Kbuild fixes from Masahiro Yamada:

    - fix warning in out-of-tree 'make clean'

    - add READELF variable to the top Makefile

    - fix broken builds when LINUX_COMPILE_BY contains a backslash

    - fix build warning in kallsyms

    - fix NULL pointer access in expr_eq() in Kconfig

    - fix missing dependency on rsync in deb-pkg build

    - remove ---help--- from documentation

    - fix misleading documentation about directory descending

    * tag 'kbuild-fixes-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild:
    kbuild: clarify the difference between obj-y and obj-m w.r.t. descending
    kconfig: remove ---help--- from documentation
    scripts: package: mkdebian: add missing rsync dependency
    kconfig: don't crash on NULL expressions in expr_eq()
    scripts/kallsyms: fix offset overflow of kallsyms_relative_base
    mkcompile_h: use printf for LINUX_COMPILE_BY
    mkcompile_h: git rid of UTS_TRUNCATE from LINUX_COMPILE_{BY,HOST}
    x86/boot: kbuild: allow readelf executable to be specified
    kbuild: fix 'No such file or directory' warning when cleaning

    Linus Torvalds
     

16 Dec, 2019

1 commit


14 Dec, 2019

1 commit

  • Introduce a new READELF variable to top-level Makefile, so the name of
    readelf binary can be specified.

    Before this change the name of the binary was hardcoded to
    "$(CROSS_COMPILE)readelf" which might not be present for every
    toolchain.

    This allows to build with LLVM Object Reader by using make parameter
    READELF=llvm-readelf.

    Link: https://github.com/ClangBuiltLinux/linux/issues/771
    Signed-off-by: Dmitry Golovin
    Reviewed-by: Nick Desaulniers
    Signed-off-by: Masahiro Yamada

    Dmitry Golovin
     

09 Dec, 2019

1 commit


03 Dec, 2019

1 commit

  • Pull Kbuild updates from Masahiro Yamada:

    - remove unneeded asm headers from hexagon, ia64

    - add 'dir-pkg' target, which works like 'tar-pkg' but skips archiving

    - add 'helpnewconfig' target, which shows help for new CONFIG options

    - support 'make nsdeps' for external modules

    - make rebuilds faster by deleting $(wildcard $^) checks

    - remove compile tests for kernel-space headers

    - refactor modpost to simplify modversion handling

    - make single target builds faster

    - optimize and clean up scripts/kallsyms.c

    - refactor various Makefiles and scripts

    * tag 'kbuild-v5.5' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (59 commits)
    MAINTAINERS: update Kbuild/Kconfig maintainer's email address
    scripts/kallsyms: remove redundant initializers
    scripts/kallsyms: put check_symbol_range() calls close together
    scripts/kallsyms: make check_symbol_range() void function
    scripts/kallsyms: move ignored symbol types to is_ignored_symbol()
    scripts/kallsyms: move more patterns to the ignored_prefixes array
    scripts/kallsyms: skip ignored symbols very early
    scripts/kallsyms: add const qualifiers where possible
    scripts/kallsyms: make find_token() return (unsigned char *)
    scripts/kallsyms: replace prefix_underscores_count() with strspn()
    scripts/kallsyms: add sym_name() to mitigate cast ugliness
    scripts/kallsyms: remove unneeded length check for prefix matching
    scripts/kallsyms: remove redundant is_arm_mapping_symbol()
    scripts/kallsyms: set relative_base more effectively
    scripts/kallsyms: shrink table before sorting it
    scripts/kallsyms: fix definitely-lost memory leak
    scripts/kallsyms: remove unneeded #ifndef ARRAY_SIZE
    kbuild: make single target builds even faster
    modpost: respect the previous export when 'exported twice' is warned
    modpost: do not set ->preloaded for symbols from Module.symvers
    ...

    Linus Torvalds
     

25 Nov, 2019

1 commit


23 Nov, 2019

1 commit

  • Commit 2dffd23f81a3 ("kbuild: make single target builds much faster")
    made the situation much better.

    To improve it even more, apply the similar idea to the top Makefile.
    Trim unrelated directories from build-dirs.

    The single build code must be moved above the 'descend' target.

    Signed-off-by: Masahiro Yamada
    Tested-by: Jens Axboe

    Masahiro Yamada
     

18 Nov, 2019

1 commit


14 Nov, 2019

3 commits

  • Currently, some sanity checks for uapi headers are done by
    scripts/headers_check.pl, which is wired up to the 'headers_check'
    target in the top Makefile.

    It is true compiling headers has better test coverage, but there
    are still several headers excluded from the compile test. I like
    to keep headers_check.pl for a while, but we can delete a lot of
    code by moving the build rule to usr/include/Makefile.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • There are both positive and negative options about this feature.
    At first, I thought it was a good idea, but actually Linus stated a
    negative opinion (https://lkml.org/lkml/2019/9/29/227). I admit it
    is ugly and annoying.

    The baseline I'd like to keep is the compile-test of uapi headers.
    (Otherwise, kernel developers have no way to ensure the correctness
    of the exported headers.)

    I will maintain a small build rule in usr/include/Makefile.
    Remove the other header test functionality.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Sparse uses the same executable for all archs and uses flags
    like -m64, -mbig-endian or -D__arm__ for arch-specific parameters.
    But Sparse also uses value from the host machine used to build
    Sparse as default value for the target machine.

    This works, of course, well for native build but can create
    problems when cross-compiling, like defining both '__i386__'
    and '__arm__' when cross-compiling for arm on a x86-64 machine.

    Fix this by explicitely telling sparse the target architecture.

    Reported-by: Ben Dooks
    Signed-off-by: Luc Van Oostenryck
    Signed-off-by: Masahiro Yamada

    Luc Van Oostenryck
     

11 Nov, 2019

7 commits

  • scripts/nsdeps is written to take care of only in-tree modules.
    Perhaps, this is not a bug, but just a design. At least,
    Documentation/core-api/symbol-namespaces.rst focuses on in-tree modules.

    Having said that, some people already tried nsdeps for external modules.
    So, it would be nice to support it.

    Reported-by: Steve French
    Reported-by: Jessica Yu
    Signed-off-by: Masahiro Yamada
    Tested-by: Jessica Yu
    Acked-by: Jessica Yu
    Reviewed-by: Matthias Maennich
    Tested-by: Matthias Maennich

    Masahiro Yamada
     
  • The modpost, with the -d option given, generates per-module .ns_deps
    files.

    Kbuild generates per-module .mod files to carry module information.
    This is convenient because Make handles multiple jobs in parallel
    when the -j option is given.

    On the other hand, the modpost always runs as a single thread.
    I do not see a strong reason to produce separate .ns_deps files.

    This commit changes the modpost to generate just one file,
    modules.nsdeps, each line of which has the following format:

    :

    Please note it contains *missing* namespaces instead of required ones.
    So, modules.nsdeps is empty if the namespace dependency is all good.

    This will work more efficiently because spatch will no longer process
    already imported namespaces. I removed the '(if needed)' from the
    nsdeps log since spatch is invoked only when needed.

    This also solves the stale .ns_deps problem reported by Jessica Yu:

    https://lkml.org/lkml/2019/10/28/467

    Signed-off-by: Masahiro Yamada
    Tested-by: Jessica Yu
    Acked-by: Jessica Yu
    Reviewed-by: Matthias Maennich
    Tested-by: Matthias Maennich

    Masahiro Yamada
     
  • 'make nsdeps' invokes the modpost three times at most; before linking
    vmlinux, before building modules, and finally for generating .ns_deps
    files. Running the modpost again and again is not efficient.

    The last two can be unified. When the -d option is given, the modpost
    still does the usual job, and in addition, generates .ns_deps files.

    Signed-off-by: Masahiro Yamada
    Tested-by: Matthias Maennich
    Reviewed-by: Matthias Maennich

    Masahiro Yamada
     
  • There are 6 defconfigs with names longer than 24 characters, breaking
    alignment in "make help".

    The "winner" is "ecovec24-romimage_defconfig", counting in at 27
    characters.

    Extend the defconfig field size to 27 to restore alignment.
    Don't use a larger value, to not encourage people to create even longer
    defconfig names.

    Signed-off-by: Geert Uytterhoeven
    Acked-by: Hans-Christian Egtvedt
    Signed-off-by: Masahiro Yamada

    Geert Uytterhoeven
     
  • Some "make help" text lines extend beyond 80 characters.
    Wrap them before an opening parenthesis, or before 80 characters.

    Signed-off-by: Geert Uytterhoeven
    Signed-off-by: Masahiro Yamada

    Geert Uytterhoeven
     
  • When single-build is set, everything in $(MAKECMDGOALS) is a single
    target. You can use $(MAKECMDGOALS) to list out the single targets.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Linus Torvalds
     

04 Nov, 2019

1 commit


28 Oct, 2019

1 commit


21 Oct, 2019

1 commit


15 Oct, 2019

1 commit


14 Oct, 2019

1 commit


12 Oct, 2019

1 commit

  • Pull module fixes from Jessica Yu:
    "Code cleanups and kbuild/namespace related fixups from Masahiro.

    Most importantly, it fixes a namespace-related modpost issue for
    external module builds

    - Fix broken external module builds due to a modpost bug in
    read_dump(), where the namespace was not being strdup'd and
    sym->namespace would be set to bogus data.

    - Various namespace-related kbuild fixes and cleanups thanks to
    Masahiro Yamada"

    * tag 'modules-for-v5.4-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux:
    doc: move namespaces.rst from kbuild/ to core-api/
    nsdeps: make generated patches independent of locale
    nsdeps: fix hashbang of scripts/nsdeps
    kbuild: fix build error of 'make nsdeps' in clean tree
    module: rename __kstrtab_ns_* to __kstrtabns_* to avoid symbol conflict
    modpost: fix broken sym->namespace for external module builds
    module: swap the order of symbol.namespace
    scripts: add_namespace: Fix coccicheck failed

    Linus Torvalds
     

09 Oct, 2019

1 commit

  • …/git/shuah/linux-kselftest

    Pull Kselftest fixes from Shuah Khan:
    "Fixes for existing tests and the framework.

    Cristian Marussi's patches add the ability to skip targets (tests) and
    exclude tests that didn't build from run-list. These patches improve
    the Kselftest results. Ability to skip targets helps avoid running
    tests that aren't supported in certain environments. As an example,
    bpf tests from mainline aren't supported on stable kernels and have
    dependency on bleeding edge llvm. Being able to skip bpf on systems
    that can't meet this llvm dependency will be helpful.

    Kselftest can be built and installed from the main Makefile. This
    change help simplify Kselftest use-cases which addresses request from
    users.

    Kees Cook added per test timeout support to limit individual test
    run-time"

    * tag 'linux-kselftest-5.4-rc3' of git://git.kernel.org/pub/scm/linux/kernel/git/shuah/linux-kselftest:
    selftests: watchdog: Add command line option to show watchdog_info
    selftests: watchdog: Validate optional file argument
    selftests/kselftest/runner.sh: Add 45 second timeout per test
    kselftest: exclude failed TARGETS from runlist
    kselftest: add capability to skip chosen TARGETS
    selftests: Add kselftest-all and kselftest-install targets

    Linus Torvalds
     

08 Oct, 2019

1 commit

  • Running 'make nsdeps' in a clean source tree fails as follows:

    $ make -s clean; make -s defconfig; make nsdeps
    [ snip ]
    awk: fatal: cannot open file `init/modules.order' for reading (No such file or directory)
    make: *** [Makefile;1307: modules.order] Error 2
    make: *** Deleting file 'modules.order'
    make: *** Waiting for unfinished jobs....

    The cause of the error is 'make nsdeps' does not build modules at all.
    Set KBUILD_MODULES to fix it.

    Reviewed-by: Matthias Maennich
    Signed-off-by: Masahiro Yamada
    Signed-off-by: Jessica Yu

    Masahiro Yamada
     

07 Oct, 2019

1 commit


02 Oct, 2019

1 commit

  • 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: Shuah Khan
    Acked-by: Masahiro Yamada
    Signed-off-by: Shuah Khan

    Shuah Khan
     

01 Oct, 2019

3 commits


23 Sep, 2019

1 commit

  • Pull modules updates from Jessica Yu:
    "The main bulk of this pull request introduces a new exported symbol
    namespaces feature. The number of exported symbols is increasingly
    growing with each release (we're at about 31k exports as of 5.3-rc7)
    and we currently have no way of visualizing how these symbols are
    "clustered" or making sense of this huge export surface.

    Namespacing exported symbols allows kernel developers to more
    explicitly partition and categorize exported symbols, as well as more
    easily limiting the availability of namespaced symbols to other parts
    of the kernel. For starters, we have introduced the USB_STORAGE
    namespace to demonstrate the API's usage. I have briefly summarized
    the feature and its main motivations in the tag below.

    Summary:

    - Introduce exported symbol namespaces.

    This new feature allows subsystem maintainers to partition and
    categorize their exported symbols into explicit namespaces. Module
    authors are now required to import the namespaces they need.

    Some of the main motivations of this feature include: allowing
    kernel developers to better manage the export surface, allow
    subsystem maintainers to explicitly state that usage of some
    exported symbols should only be limited to certain users (think:
    inter-module or inter-driver symbols, debugging symbols, etc), as
    well as more easily limiting the availability of namespaced symbols
    to other parts of the kernel.

    With the module import requirement, it is also easier to spot the
    misuse of exported symbols during patch review.

    Two new macros are introduced: EXPORT_SYMBOL_NS() and
    EXPORT_SYMBOL_NS_GPL(). The API is thoroughly documented in
    Documentation/kbuild/namespaces.rst.

    - Some small code and kbuild cleanups here and there"

    * tag 'modules-for-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/jeyu/linux:
    module: Remove leftover '#undef' from export header
    module: remove unneeded casts in cmp_name()
    module: move CONFIG_UNUSED_SYMBOLS to the sub-menu of MODULES
    module: remove redundant 'depends on MODULES'
    module: Fix link failure due to invalid relocation on namespace offset
    usb-storage: export symbols in USB_STORAGE namespace
    usb-storage: remove single-use define for debugging
    docs: Add documentation for Symbol Namespaces
    scripts: Coccinelle script for namespace dependencies.
    modpost: add support for generating namespace dependencies
    export: allow definition default namespaces in Makefiles or sources
    module: add config option MODULE_ALLOW_MISSING_NAMESPACE_IMPORTS
    modpost: add support for symbol namespaces
    module: add support for symbol namespaces.
    export: explicitly align struct kernel_symbol
    module: support reading multiple values per modinfo tag

    Linus Torvalds
     

20 Sep, 2019

2 commits

  • Pull Kbuild updates from Masahiro Yamada:

    - add modpost warn exported symbols marked as 'static' because 'static'
    and EXPORT_SYMBOL is an odd combination

    - break the build early if gold linker is used

    - optimize the Bison rule to produce .c and .h files by a single
    pattern rule

    - handle PREEMPT_RT in the module vermagic and UTS_VERSION

    - warn CONFIG options leaked to the user-space except existing ones

    - make single targets work properly

    - rebuild modules when module linker scripts are updated

    - split the module final link stage into scripts/Makefile.modfinal

    - fix the missed error code in merge_config.sh

    - improve the error message displayed on the attempt of the O= build in
    unclean source tree

    - remove 'clean-dirs' syntax

    - disable -Wimplicit-fallthrough warning for Clang

    - add CONFIG_CC_OPTIMIZE_FOR_SIZE_O3 for ARC

    - remove ARCH_{CPP,A,C}FLAGS variables

    - add $(BASH) to run bash scripts

    - change *CFLAGS_.o to take the relative path to $(obj)
    instead of the basename

    - stop suppressing Clang's -Wunused-function warnings when W=1

    - fix linux/export.h to avoid genksyms calculating CRC of trimmed
    exported symbols

    - misc cleanups

    * tag 'kbuild-v5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (63 commits)
    genksyms: convert to SPDX License Identifier for lex.l and parse.y
    modpost: use __section in the output to *.mod.c
    modpost: use MODULE_INFO() for __module_depends
    export.h, genksyms: do not make genksyms calculate CRC of trimmed symbols
    export.h: remove defined(__KERNEL__), which is no longer needed
    kbuild: allow Clang to find unused static inline functions for W=1 build
    kbuild: rename KBUILD_ENABLE_EXTRA_GCC_CHECKS to KBUILD_EXTRA_WARN
    kbuild: refactor scripts/Makefile.extrawarn
    merge_config.sh: ignore unwanted grep errors
    kbuild: change *FLAGS_.o to take the path relative to $(obj)
    modpost: add NOFAIL to strndup
    modpost: add guid_t type definition
    kbuild: add $(BASH) to run scripts with bash-extension
    kbuild: remove ARCH_{CPP,A,C}FLAGS
    kbuild,arc: add CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE_O3 for ARC
    kbuild: Do not enable -Wimplicit-fallthrough for clang for now
    kbuild: clean up subdir-ymn calculation in Makefile.clean
    kbuild: remove unneeded '+' marker from cmd_clean
    kbuild: remove clean-dirs syntax
    kbuild: check clean srctree even earlier
    ...

    Linus Torvalds
     
  • Pull Devicetree updates from Rob Herring:

    - a bunch of DT binding conversions to DT schema format

    - clean-ups of the Arm idle-states binding

    - support a default number of cells in of_for_each_phandle() when the
    cells name is missing

    - expose dtbs_check and dt_binding_check in the make help

    - convert writting-schema.md to ReST

    - HiSilicon reset controller binding updates

    - add documentation for MT8516 RNG

    * tag 'devicetree-for-5.4' of git://git.kernel.org/pub/scm/linux/kernel/git/robh/linux: (46 commits)
    of: restore old handling of cells_name=NULL in of_*_phandle_with_args()
    bus: qcom: fix spelling mistake "ambigous" -> "ambiguous"
    of: Let of_for_each_phandle fallback to non-negative cell_count
    iommu: pass cell_count = -1 to of_for_each_phandle with cells_name
    dt-bindings: arm: Convert Realtek board/soc bindings to json-schema
    dt-bindings: arm: Convert Actions Semi bindings to jsonschema
    dt-bindings: Correct spelling in example schema
    dt-bindings: cpu: Add a support cpu type for cortex-a55
    dt-bindings: gpu: mali-midgard: Add samsung exynos5250 compatible
    dt-bindings: arm: idle-states: Move exit-latency-us explanation
    dt-bindings: arm: idle-states: Add punctuation to improve readability
    dt-bindings: arm: idle-states: Correct "constraint guarantees"
    dt-bindings: arm: idle-states: Correct references to wake-up delay
    dt-bindings: arm: idle-states: Use "e.g." and "i.e." consistently
    pinctrl-mcp23s08: Fix property-name in dt-example
    dt-bindings: Clarify interrupts-extended usage
    dt-bindings: Convert Arm Mali Utgard GPU to DT schema
    dt-bindings: Convert Arm Mali Bifrost GPU to DT schema
    dt-bindings: Convert Arm Mali Midgard GPU to DT schema
    dt-bindings: irq: Convert Allwinner NMI Controller to a schema
    ...

    Linus Torvalds