17 Oct, 2019

1 commit

  • The option --sort=ORDER was only introduced in tar 1.28 (2014), which
    is rather new and might not be available in some setups.

    This patch tries to replicate the previous behaviour as closely as
    possible to fix the kheaders build for older environments. It does
    not produce identical archives compared to the previous version due
    to minor sorting differences but produces reproducible results itself
    in my tests.

    Reported-by: Andreas Schwab
    Signed-off-by: Dmitry Goldin
    Tested-by: Andreas Schwab
    Tested-by: Quentin Perret
    Signed-off-by: Masahiro Yamada

    Dmitry Goldin
     

05 Oct, 2019

1 commit

  • In commit 43d8ce9d65a5 ("Provide in-kernel headers to make
    extending kernel easier") a new mechanism was introduced, for kernels
    >=5.2, which embeds the kernel headers in the kernel image or a module
    and exposes them in procfs for use by userland tools.

    The archive containing the header files has nondeterminism caused by
    header files metadata. This patch normalizes the metadata and utilizes
    KBUILD_BUILD_TIMESTAMP if provided and otherwise falls back to the
    default behaviour.

    In commit f7b101d33046 ("kheaders: Move from proc to sysfs") it was
    modified to use sysfs and the script for generation of the archive was
    renamed to what is being patched.

    Signed-off-by: Dmitry Goldin
    Reviewed-by: Greg Kroah-Hartman
    Reviewed-by: Joel Fernandes (Google)
    Signed-off-by: Masahiro Yamada

    Dmitry Goldin
     

09 Jul, 2019

2 commits

  • Currently, kheaders_data.tar.xz contains some build scripts as well as
    headers. None of them is needed in the header archive.

    For ARCH=x86, this commit excludes the following from the archive:

    arch/x86/include/asm/Kbuild
    arch/x86/include/uapi/asm/Kbuild
    include/asm-generic/Kbuild
    include/config/auto.conf
    include/config/kernel.release
    include/config/tristate.conf
    include/uapi/asm-generic/Kbuild
    include/uapi/Kbuild
    kernel/gen_kheaders.sh

    This change is actually motivated for the planned header compile-testing
    because it will generate more build artifacts, which should not be
    included in the archive.

    Signed-off-by: Masahiro Yamada
    Reviewed-by: Joel Fernandes (Google)

    Masahiro Yamada
     
  • The -R option of 'ls' is supposed to be used for directories.

    -R, --recursive
    list subdirectories recursively

    Since 'find ... -type f' only matches to regular files, we do not
    expect directories passed to the 'ls' command here.

    Giving -R is harmless at least, but unneeded.

    Signed-off-by: Masahiro Yamada
    Reviewed-by: Joel Fernandes (Google)

    Masahiro Yamada
     

25 May, 2019

2 commits

  • Linus reported an issue that doing an allmodconfig was causing the
    kheaders archive to be regenerated even though the config is the same.
    This patch fixes the issue by ignoring the config-related header files
    for "knowing when to regenerate based on timestamps". Instead, if the
    CONFIG_X_Y option really changes, then we there are the
    include/config/X/Y.h which will already tells us "if a config really
    changed". So we don't really need these files for regeneration detection
    anyway, and ignoring them fixes Linus's issue.

    Reported-by: Linus Torvalds
    Signed-off-by: Joel Fernandes (Google)
    Signed-off-by: Greg Kroah-Hartman

    Joel Fernandes (Google)
     
  • The kheaders archive consisting of the kernel headers used for compiling
    bpf programs is in /proc. However there is concern that moving it here
    will make it permanent. Let us move it to /sys/kernel as discussed [1].

    [1] https://lore.kernel.org/patchwork/patch/1067310/#1265969

    Suggested-by: Steven Rostedt
    Signed-off-by: Joel Fernandes (Google)
    Signed-off-by: Greg Kroah-Hartman

    Joel Fernandes (Google)