10 Aug, 2020

1 commit

  • To build host programs, you need to add the program names to 'hostprogs'
    to use the necessary build rule, but it is not enough to build them
    because there is no dependency.

    There are two types of host programs: built as the prerequisite of
    another (e.g. gen_crc32table in lib/Makefile), or always built when
    Kbuild visits the Makefile (e.g. genksyms in scripts/genksyms/Makefile).

    The latter is typical in Makefiles under scripts/, which contains host
    programs globally used during the kernel build. To build them, you need
    to add them to both 'hostprogs' and 'always-y'.

    This commit adds hostprogs-always-y as a shorthand.

    The same applies to user programs. net/bpfilter/Makefile builds
    bpfilter_umh on demand, hence always-y is unneeded. In contrast,
    programs under samples/ are added to both 'userprogs' and 'always-y'
    so they are always built when Kbuild visits the Makefiles.

    userprogs-always-y works as a shorthand.

    Signed-off-by: Masahiro Yamada
    Acked-by: Miguel Ojeda

    Masahiro Yamada
     

17 May, 2020

1 commit

  • This userspace program includes UAPI headers exported to usr/include/.
    'make headers' always works for the target architecture (i.e. the same
    architecture as the kernel), so the sample program should be built for
    the target as well. Kbuild now supports 'userprogs' for that.

    $(CC) can always compile cn_text.o since it is the kenrel-space code,
    but building ucon requires libc.

    I guarded it by:

    always-$(CONFIG_CC_CAN_LINK) := $(userprogs)

    Signed-off-by: Masahiro Yamada
    Acked-by: Sam Ravnborg

    Masahiro Yamada
     

25 Mar, 2020

1 commit


04 Feb, 2020

1 commit

  • In old days, the "host-progs" syntax was used for specifying host
    programs. It was renamed to the current "hostprogs-y" in 2004.

    It is typically useful in scripts/Makefile because it allows Kbuild to
    selectively compile host programs based on the kernel configuration.

    This commit renames like follows:

    always -> always-y
    hostprogs-y -> hostprogs

    So, scripts/Makefile will look like this:

    always-$(CONFIG_BUILD_BIN2C) += ...
    always-$(CONFIG_KALLSYMS) += ...
    ...
    hostprogs := $(always-y) $(always-m)

    I think this makes more sense because a host program is always a host
    program, irrespective of the kernel configuration. We want to specify
    which ones to compile by CONFIG options, so always-y will be handier.

    The "always", "hostprogs-y", "hostprogs-m" will be kept for backward
    compatibility for a while.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

31 May, 2019

1 commit

  • Based on 1 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license as published by
    the free software foundation either version 2 of the license or at
    your option any later version this program is distributed in the
    hope that it will be useful but without any warranty without even
    the implied warranty of merchantability or fitness for a particular
    purpose see the gnu general public license for more details you
    should have received a copy of the gnu general public license along
    with this program if not write to the free software foundation inc
    59 temple place suite 330 boston ma 02111 1307 usa

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-or-later

    has been chosen to replace the boilerplate/reference in 1334 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Allison Randal
    Reviewed-by: Richard Fontana
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190527070033.113240726@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

01 Dec, 2018

1 commit

  • SUBDIRS has been kept as a backward compatibility since
    commit ("[PATCH] kbuild: external module support") in 2002.

    We do not need multiple ways to do the same thing, so I will remove
    SUBDIRS after the Linux 5.3 release. I cleaned up in-tree code, and
    updated the document so that nobody would try to use it.

    Meanwhile, display the following warning if SUBDIRS is used.

    Makefile:189: ================= WARNING ================
    Makefile:190: 'SUBDIRS' will be removed after Linux 5.3
    Makefile:191: Please use 'M=' or 'KBUILD_EXTMOD' instead
    Makefile:192: ==========================================

    Signed-off-by: Masahiro Yamada
    Acked-by: Boris Brezillon # for scx200_docflash.c
    Acked-by: Guenter Roeck # for scx200_wdt.c

    Masahiro Yamada
     

14 Nov, 2017

1 commit

  • Pull documentation updates from Jonathan Corbet:
    "A relatively calm cycle for the docs tree again.

    - The old driver statement has been added to the kernel docs.

    - We have a couple of new helper scripts. find-unused-docs.sh from
    Sayli Karnic will point out kerneldoc comments that are not actually
    used in the documentation. Jani Nikula's
    documentation-file-ref-check finds references to non-existing files.

    - A new ftrace document from Steve Rostedt.

    - Vinod Koul converted the dmaengine docs to RST

    Beyond that, it's mostly simple fixes.

    This set reaches outside of Documentation/ a bit more than most. In
    all cases, the changes are to comment docs, mostly from Randy, in
    places where there didn't seem to be anybody better to take them"

    * tag 'docs-4.15' of git://git.lwn.net/linux: (52 commits)
    documentation: fb: update list of available compiled-in fonts
    MAINTAINERS: update DMAengine documentation location
    dmaengine: doc: ReSTize pxa_dma doc
    dmaengine: doc: ReSTize dmatest doc
    dmaengine: doc: ReSTize client API doc
    dmaengine: doc: ReSTize provider doc
    dmaengine: doc: Add ReST style dmaengine document
    ftrace/docs: Add documentation on how to use ftrace from within the kernel
    bug-hunting.rst: Fix an example and a typo in a Sphinx tag
    scripts: Add a script to find unused documentation
    samples: Convert timers to use timer_setup()
    documentation: kernel-api: add more info on bitmap functions
    Documentation: fix selftests related file refs
    Documentation: fix ref to power basic-pm-debugging
    Documentation: fix ref to trace stm content
    Documentation: fix ref to coccinelle content
    Documentation: fix ref to workqueue content
    Documentation: fix ref to sphinx/kerneldoc.py
    Documentation: fix locking rt-mutex doc refs
    docs: dev-tools: correct Coccinelle version number
    ...

    Linus Torvalds
     

02 Nov, 2017

1 commit

  • Many source files in the tree are missing licensing information, which
    makes it harder for compliance tools to determine the correct license.

    By default all files without license information are under the default
    license of the kernel, which is GPL version 2.

    Update the files which contain no license information with the 'GPL-2.0'
    SPDX license identifier. The SPDX identifier is a legally binding
    shorthand, which can be used instead of the full boiler plate text.

    This patch is based on work done by Thomas Gleixner and Kate Stewart and
    Philippe Ombredanne.

    How this work was done:

    Patches were generated and checked against linux-4.14-rc6 for a subset of
    the use cases:
    - file had no licensing information it it.
    - file was a */uapi/* one with no licensing information in it,
    - file was a */uapi/* one with existing licensing information,

    Further patches will be generated in subsequent months to fix up cases
    where non-standard license headers were used, and references to license
    had to be inferred by heuristics based on keywords.

    The analysis to determine which SPDX License Identifier to be applied to
    a file was done in a spreadsheet of side by side results from of the
    output of two independent scanners (ScanCode & Windriver) producing SPDX
    tag:value files created by Philippe Ombredanne. Philippe prepared the
    base worksheet, and did an initial spot review of a few 1000 files.

    The 4.13 kernel was the starting point of the analysis with 60,537 files
    assessed. Kate Stewart did a file by file comparison of the scanner
    results in the spreadsheet to determine which SPDX license identifier(s)
    to be applied to the file. She confirmed any determination that was not
    immediately clear with lawyers working with the Linux Foundation.

    Criteria used to select files for SPDX license identifier tagging was:
    - Files considered eligible had to be source code files.
    - Make and config files were included as candidates if they contained >5
    lines of source
    - File already had some variant of a license header in it (even if
    Reviewed-by: Philippe Ombredanne
    Reviewed-by: Thomas Gleixner
    Signed-off-by: Greg Kroah-Hartman

    Greg Kroah-Hartman
     

20 Oct, 2017

1 commit


11 Dec, 2016

1 commit


28 Apr, 2016

1 commit

  • A small bug with the new autoksyms support showed that there are
    two kernel modules in the Documentation directory that qualify
    as samples, while all other samples are in the samples/ directory.

    This patch was originally meant as a workaround for that bug, but
    it has now been solved in a different way. However, I still think
    it makes sense as a cleanup to consolidate all sample code in
    one place.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: Jonathan Corbet

    Arnd Bergmann