14 Nov, 2019

1 commit

  • 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
     

24 Jun, 2019

1 commit

  • Since commit d5470d14431e ("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
    | 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: d5470d14431e ("kbuild: re-implement Makefile.headersinst without recursion")
    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

15 Jun, 2019

3 commits

  • Now that headers_install.sh is invoked per file, remove the for-loop
    in the shell script.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • Since commit fcc8487d477a ("uapi: export all headers under uapi
    directories"), the headers in uapi directories are all exported by
    default although exceptional cases are still allowed by the syntax
    'no-export-headers'.

    The traditional directory descending has been kept (in a somewhat
    hacky way), but it is actually unneeded.

    Get rid of it to simplify the code.

    Also, handle files one by one instead of the previous per-directory
    processing. This will emit much more log, but I like it.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     
  • In Linux build system, build targets and installation targets are
    separated.

    Examples are:

    - 'make vmlinux' -> 'make install'
    - 'make modules' -> 'make modules_install'
    - 'make dtbs' -> 'make dtbs_install'
    - 'make vdso' -> 'make vdso_install'

    The intention is to run the build targets under the normal privilege,
    then the installation targets under the root privilege since we need
    the write permission to the system directories.

    We have 'make headers_install' but the corresponding 'make headers'
    stage does not exist. The purpose of headers_install is to provide
    the kernel interface to C library. So, nobody would try to install
    headers to /usr/include directly.

    If 'sudo make INSTALL_HDR_PATH=/usr/include headers_install' were run,
    some build artifacts in the kernel tree would be owned by root because
    some of uapi headers are generated by 'uapi-asm-generic', 'archheaders'
    targets.

    Anyway, I believe it makes sense to split the header installation into
    two stages.

    [1] 'make headers'
    Process headers in uapi directories by scripts/headers_install.sh
    and copy them to usr/include

    [2] 'make headers_install'
    Copy '*.h' verbatim from usr/include to $(INSTALL_HDR_PATH)/include

    For the backward compatibility, 'headers_install' depends on 'headers'.

    Some samples expect uapi headers in usr/include. So, the 'headers'
    target is useful to build up them in the fixed location usr/include
    irrespective of INSTALL_HDR_PATH.

    Another benefit is to stop polluting the final destination with the
    time-stamp files '.install' and '.check'. Maybe you can see them in
    your toolchains.

    Lastly, my main motivation is to prepare for compile-testing uapi
    headers. To build something, we have to save an object and .*.cmd
    somewhere. The usr/include/ will be the work directory for that.

    Signed-off-by: Masahiro Yamada

    Masahiro Yamada
     

06 Jan, 2019

1 commit

  • Some time ago, Sam pointed out a certain degree of overwrap between
    generic-y and mandatory-y. (https://lkml.org/lkml/2017/7/10/121)

    I tweaked the meaning of mandatory-y a little bit; now it defines the
    minimum set of ASM headers that all architectures must have.

    If arch does not have specific implementation of a mandatory header,
    Kbuild will let it fallback to the asm-generic one by automatically
    generating a wrapper. This will allow to drop lots of redundant
    generic-y defines.

    Previously, "mandatory" was used in the context of UAPI, but I guess
    this can be extended to kernel space ASM headers.

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

    Masahiro Yamada
     

08 Dec, 2018

1 commit


18 Nov, 2017

1 commit

  • Pull Kbuild updates from Masahiro Yamada:
    "One of the most remarkable improvements in this cycle is, Kbuild is
    now able to cache the result of shell commands. Some variables are
    expensive to compute, for example, $(call cc-option,...) invokes the
    compiler. It is not efficient to redo this computation every time,
    even when we are not actually building anything. Kbuild creates a
    hidden file ".cache.mk" that contains invoked shell commands and their
    results. The speed-up should be noticeable.

    Summary:

    - Fix arch build issues (hexagon, sh)

    - Clean up various Makefiles and scripts

    - Fix wrong usage of {CFLAGS,LDFLAGS}_MODULE in arch Makefiles

    - Cache variables that are expensive to compute

    - Improve cc-ldopton and ld-option for Clang

    - Optimize output directory creation"

    * tag 'kbuild-v4.15' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (30 commits)
    kbuild: move coccicheck help from scripts/Makefile.help to top Makefile
    sh: decompressor: add shipped files to .gitignore
    frv: .gitignore: ignore vmlinux.lds
    selinux: remove unnecessary assignment to subdir-
    kbuild: specify FORCE in Makefile.headersinst as .PHONY target
    kbuild: remove redundant mkdir from ./Kbuild
    kbuild: optimize object directory creation for incremental build
    kbuild: create object directories simpler and faster
    kbuild: filter-out PHONY targets from "targets"
    kbuild: remove redundant $(wildcard ...) for cmd_files calculation
    kbuild: create directory for make cache only when necessary
    sh: select KBUILD_DEFCONFIG depending on ARCH
    kbuild: fix linker feature test macros when cross compiling with Clang
    kbuild: shrink .cache.mk when it exceeds 1000 lines
    kbuild: do not call cc-option before KBUILD_CFLAGS initialization
    kbuild: Cache a few more calls to the compiler
    kbuild: Add a cache for generated variables
    kbuild: add forward declaration of default target to Makefile.asm-generic
    kbuild: remove KBUILD_SUBDIR_ASFLAGS and KBUILD_SUBDIR_CCFLAGS
    hexagon/kbuild: replace CFLAGS_MODULE with KBUILD_CFLAGS_MODULE
    ...

    Linus Torvalds
     

16 Nov, 2017

2 commits


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
     

10 Oct, 2017

1 commit


11 Jul, 2017

2 commits


10 Jul, 2017

2 commits


22 Jun, 2017

1 commit

  • Since commit fcc8487d477a ("uapi: export all headers under uapi
    directories") fakechroot make bindeb-pkg fails, mismatching files for
    directories:
    touch: cannot touch 'usr/include/video/uvesafb.h/.install': Not a
    directory

    This due to a bug in fakechroot:
    when using the function $(wildcard $(srcdir)/*/.) in a makefile, under a
    fakechroot environment, not only directories but also files are
    returned.

    To circumvent that, we are using the functions:
    $(sort $(dir $(wildcard $(srcdir)/*/))))

    Fixes: fcc8487d477a ("uapi: export all headers under uapi directories")
    Signed-off-by: Richard Genoud
    Signed-off-by: Masahiro Yamada

    Richard Genoud
     

18 May, 2017

1 commit

  • Since commit 61562f981e92 ("uapi: export all arch specifics
    directories"), "make INSTALL_HDR_PATH=$root/usr headers_install"
    deletes standard glibc headers and others in $(root)/usr/include.

    The cause of the issue is that headers_install now starts descending
    from arch/$(hdr-arch)/include/uapi with $(root)/usr/include for its
    destination when installing asm headers. So, headers already there
    are assumed to be unwanted.

    When headers_install starts descending from include/uapi with
    $(root)/usr/include for its destination, it works around the problem
    by creating an dummy destination $(root)/usr/include/uapi, but this
    is tricky.

    To fix the problem in a clean way is to skip headers install/check
    in include/uapi and arch/$(hdr-arch)/include/uapi because we know
    there are only sub-directories in uapi directories. A good side
    effect is the empty destination $(root)/usr/include/uapi will go
    away.

    I am also removing the trailing slash in the headers_check target to
    skip checking in arch/$(hdr-arch)/include/uapi.

    Fixes: 61562f981e92 ("uapi: export all arch specifics directories")
    Reported-by: Dan Williams
    Signed-off-by: Masahiro Yamada
    Tested-by: Dan Williams
    Acked-by: Nicolas Dichtel

    Masahiro Yamada
     

10 May, 2017

4 commits

  • This patch removes the need of subdir-y. Now all files/directories under
    arch//include/uapi/ are exported.

    The only change for userland is the layout of the command 'make
    headers_install_all': directories asm- are replaced by arch-/.
    Those new directories contains all files/directories of the specified arch.

    Note that only cris and tile have more directories than only asm:
    - arch-v[10|32] for cris;
    - arch for tile.

    Signed-off-by: Nicolas Dichtel
    Signed-off-by: Masahiro Yamada

    Nicolas Dichtel
     
  • Regularly, when a new header is created in include/uapi/, the developer
    forgets to add it in the corresponding Kbuild file. This error is usually
    detected after the release is out.

    In fact, all headers under uapi directories should be exported, thus it's
    useless to have an exhaustive list.

    After this patch, the following files, which were not exported, are now
    exported (with make headers_install_all):
    asm-arc/kvm_para.h
    asm-arc/ucontext.h
    asm-blackfin/shmparam.h
    asm-blackfin/ucontext.h
    asm-c6x/shmparam.h
    asm-c6x/ucontext.h
    asm-cris/kvm_para.h
    asm-h8300/shmparam.h
    asm-h8300/ucontext.h
    asm-hexagon/shmparam.h
    asm-m32r/kvm_para.h
    asm-m68k/kvm_para.h
    asm-m68k/shmparam.h
    asm-metag/kvm_para.h
    asm-metag/shmparam.h
    asm-metag/ucontext.h
    asm-mips/hwcap.h
    asm-mips/reg.h
    asm-mips/ucontext.h
    asm-nios2/kvm_para.h
    asm-nios2/ucontext.h
    asm-openrisc/shmparam.h
    asm-parisc/kvm_para.h
    asm-powerpc/perf_regs.h
    asm-sh/kvm_para.h
    asm-sh/ucontext.h
    asm-tile/shmparam.h
    asm-unicore32/shmparam.h
    asm-unicore32/ucontext.h
    asm-x86/hwcap2.h
    asm-xtensa/kvm_para.h
    drm/armada_drm.h
    drm/etnaviv_drm.h
    drm/vgem_drm.h
    linux/aspeed-lpc-ctrl.h
    linux/auto_dev-ioctl.h
    linux/bcache.h
    linux/btrfs_tree.h
    linux/can/vxcan.h
    linux/cifs/cifs_mount.h
    linux/coresight-stm.h
    linux/cryptouser.h
    linux/fsmap.h
    linux/genwqe/genwqe_card.h
    linux/hash_info.h
    linux/kcm.h
    linux/kcov.h
    linux/kfd_ioctl.h
    linux/lightnvm.h
    linux/module.h
    linux/nbd-netlink.h
    linux/nilfs2_api.h
    linux/nilfs2_ondisk.h
    linux/nsfs.h
    linux/pr.h
    linux/qrtr.h
    linux/rpmsg.h
    linux/sched/types.h
    linux/sed-opal.h
    linux/smc.h
    linux/smc_diag.h
    linux/stm.h
    linux/switchtec_ioctl.h
    linux/vfio_ccw.h
    linux/wil6210_uapi.h
    rdma/bnxt_re-abi.h

    Note that I have removed from this list the files which are generated in every
    exported directories (like .install or .install.cmd).

    Thanks to Julien Floret for the tip to get all
    subdirs with a pure makefile command.

    For the record, note that exported files for asm directories are a mix of
    files listed by:
    - include/uapi/asm-generic/Kbuild.asm;
    - arch//include/uapi/asm/Kbuild;
    - arch//include/asm/Kbuild.

    Signed-off-by: Nicolas Dichtel
    Acked-by: Daniel Vetter
    Acked-by: Russell King
    Acked-by: Mark Salter
    Acked-by: Michael Ellerman (powerpc)
    Signed-off-by: Masahiro Yamada

    Nicolas Dichtel
     
  • This option was added in commit c7bb349e7c25 ("kbuild: introduce destination-y
    for exported headers") but never used in-tree.

    Signed-off-by: Nicolas Dichtel
    Acked-by: Paul Bolle
    Signed-off-by: Masahiro Yamada

    Nicolas Dichtel
     
  • After the last three patches, all exported headers are under uapi/, thus
    input-files2 are not needed anymore.
    The side effect is that input-files1-name is exactly header-y.

    Note also that input-files3-name is genhdr-y.

    Signed-off-by: Nicolas Dichtel
    Signed-off-by: Masahiro Yamada

    Nicolas Dichtel
     

26 Nov, 2014

1 commit

  • The shorthand "clean" is defined in both the top Makefile and
    scripts/Makefile.clean. Likewise, the "hdr-inst" is defined in
    both the top Makefile and scripts/Makefile.headersinst.

    To reduce code duplication, this commit collects them into
    scripts/Kbuild.include like the "build" and "modbuiltin" shorthands.
    It requires scripts/Makefile.clean to include scripts/Kbuild.include,
    but its impact on the performance of "make clean" should be
    negligible.

    Signed-off-by: Masahiro Yamada
    Signed-off-by: Michal Marek

    Masahiro Yamada
     

18 May, 2013

1 commit

  • If headers_install is executed from a deep/long directory structure, the
    shell's maximum argument length can be execeeded, which breaks the operation
    with:

    | make[2]: execvp: /bin/sh: Argument list too long
    | make[2]: ***

    Instead of passing each files name with the entire path, I give only the file
    name without the source path and give this path as a new argument to
    headers_install.pl.

    Because there is three possible paths, I have tree input-files list, one per
    path.

    Signed-off-by: Nicolas Dichtel
    Tested-by: Bruce Ashfield
    Signed-off-by: Michal Marek

    Nicolas Dichtel
     

09 Apr, 2013

1 commit

  • Remove perl from make headers_install by replacing a perl script (doing a
    simple regex search and replace) with a smaller, faster, simpler,
    POSIX-2008 shell script implementation. The new shell script is a single
    for loop calling sed and piping its output through unifdef to produce the
    target file.

    Same as last time except for minor tweak to deal with code review from
    here: http://lkml.indiana.edu/hypermail/linux/kernel/1302.3/00078.html

    (Note that this drops the "arch" argument, which isn't used. Kbuild
    already points to the right input files on the command line.)

    Signed-off-by: Rob Landley
    Cc: Thomas Gleixner
    Cc: Josh Boyer
    Cc: "Paul E. McKenney"
    Cc: David Howells
    Acked-by: Sam Ravnborg
    Signed-off-by: Andrew Morton
    Signed-off-by: Michal Marek

    Rob Landley
     

05 Mar, 2013

1 commit

  • Commit 10b63956 ("UAPI: Plumb the UAPI Kbuilds into the user header
    installation and checking") introduced a dependency of make 3.81
    due to use of $(or ...)

    We do not want to lift the requirement to gmake 3.81 just yet...
    Included are a straightforward conversion to $(if ...)

    Bisected-and-tested-by: Tetsuo Handa
    Cc: David Howells
    Signed-off-by: Sam Ravnborg
    Cc: [v3.7+]
    Signed-off-by: Michal Marek

    Sam Ravnborg
     

22 Feb, 2013

1 commit

  • Commit 10b63956fce7f369cc37fd4d994f09bd5203efe4 which plumbed in UAPI
    broke the destination-y functionality of scripts/Makefile.headersinst.

    The variable destination-y is used in a := assignment and so is expanded at
    declaration time, and the include of the Kbuild fragments that set
    destination-y to something is after this time, so it now always expands empty.

    There are no in-tree users of destination-y, but it allows any
    Kbuild-fragment to redirect where headers are installed.

    Just move the assignment of the variable that uses it below the include
    of the Kbuild fragment.

    Signed-off-by: Jesper Nilsson
    Cc: Michal Marek
    Cc: David Howells
    Signed-off-by: Michal Marek

    Jesper Nilsson
     

03 Oct, 2012

2 commits

  • Plumb the UAPI Kbuilds into the user header installation and checking system.
    As the headers are split the entries will be transferred across from the old
    Kbuild files to the UAPI Kbuild files.

    The changes made in this commit are:

    (1) Exported generated files (of which there are currently four) are moved to
    uapi/ directories under the appropriate generated/ directory, thus we
    get:

    include/generated/uapi/linux/version.h
    arch/x86/include/generated/uapi/asm/unistd_32.h
    arch/x86/include/generated/uapi/asm/unistd_64.h
    arch/x86/include/generated/uapi/asm/unistd_x32.h

    These paths were added to the build as -I flags in a previous patch.

    (2) scripts/Makefile.headersinst is now given the UAPI path to install from
    rather than the old path.

    It then determines the old path from that and includes that Kbuild also
    if it exists, thus permitting the headers to exist in either directory
    during the changeover.

    I also renamed the "install" variable to "installdir" as it refers to a
    directory not the install program.

    (3) scripts/headers_install.pl is altered to take a list of source file paths
    instead of just their names so that the makefile can tell it exactly
    where to find each file.

    For the moment, files can be obtained from one of four places for each
    output directory:

    .../include/uapi/foo/
    .../include/generated/uapi/foo/
    .../include/foo/
    .../include/generated/foo/

    The non-UAPI paths will be dropped later.

    Signed-off-by: David Howells
    Acked-by: Arnd Bergmann
    Acked-by: Thomas Gleixner
    Acked-by: Paul E. McKenney
    Acked-by: Dave Jones

    David Howells
     
  • Remove the objhdr-y export list as it is no longer used. genhdr-y should be
    used instead.

    Signed-off-by: David Howells
    Acked-by: Arnd Bergmann
    Acked-by: Thomas Gleixner
    Acked-by: Paul E. McKenney
    Acked-by: Dave Jones

    David Howells
     

18 Nov, 2011

1 commit

  • Generated asm headers are supposed to live in
    arch/*/include/generated/asm, but objhdr-y expect them to live in the
    same directory they are generated in. Instead of trying to cut that
    particular Gordian knot, introduce genhdr-y that takes this into
    account; the sole user of objhdr-y, linux/version.h, should be
    migrated over at some later date.

    Suggested-by: David Woodhouse
    Acked-by: David Woodhouse
    Cc: Sam Ravnborg
    Cc: Michal Marek
    Signed-off-by: H. Peter Anvin

    H. Peter Anvin
     

29 Apr, 2011

1 commit

  • There is an increasing amount of header files
    shared between individual architectures in asm-generic.
    To avoid a lot of dummy wrapper files that just
    include the corresponding file in asm-generic provide
    some basic support in kbuild for this.

    With the following patch an architecture can maintain
    a list of files in the file arch/$(ARCH)/include/asm/Kbuild

    To use a generic file just add:

    generic-y +=

    For each file listed kbuild will generate the necessary
    wrapper in arch/$(ARCH)/include/generated/asm.

    When installing userspace headers a wrapper is likewise created.

    The original inspiration for this came from the unicore32
    patchset - although a different method is used.

    The patch includes several improvements from Arnd Bergmann.
    Michael Marek contributed Makefile.asm-generic.

    Remis Baima did an intial implementation along to achive
    the same - see https://patchwork.kernel.org/patch/13352/

    Signed-off-by: Sam Ravnborg
    Acked-by: Guan Xuetao
    Tested-by: Guan Xuetao
    Acked-by: Arnd Bergmann
    Cc: Remis Lima Baima
    Signed-off-by: Michal Marek

    Sam Ravnborg
     

15 Aug, 2010

1 commit


10 Jun, 2009

1 commit

  • I'm trying to install kernel headers to build a cross-toolchain, but got
    the following:

    make ARCH=arm
    INSTALL_HDR_PATH=/work/psl/eldk-builds/arm-2009-04-21/work/var/tmp/crosstool-0.43-3-root/usr/crosstool/gcc-4.2.2-glibc-20070515T2025-eldk/
    +arm-linux-gnueabi/arm-linux-gnueabi/
    headers_check
    ...
    CHECK include/linux/raid (2 files)
    CHECK include/linux/spi (1 files)
    CHECK include/linux/sunrpc (1 files)
    CHECK include/linux/tc_act (6 files)
    CHECK include/linux/tc_ematch (4 files)
    CHECK include/linux/usb (8 files)
    make[2]: execvp: /bin/sh: Argument list too long
    make[2]: ***
    [/work/psl/eldk-builds/arm-2009-04-21/work/var/tmp/crosstool-0.43-3-root/usr/crosstool/gcc-4.2.2-glibc-20070515T2025-eldk/arm-linux-gnueab
    +i/arm-linux-gnueabi//include/linux/.check]
    Error 127
    make[1]: *** [linux] Error 2
    make: *** [headers_check] Error 2
    ->

    Introduce use of xargs to fix this.

    Signed-off-by: Sergei Poselenov
    Cc: Wolfgang Denk
    Signed-off-by: Sam Ravnborg

    Sergei Poselenov
     

11 Apr, 2009

1 commit

  • xtensa and arm have asked for a possibility to export headers
    and locate them in a specific directory when exported.
    Introduce destiantion-y to support this.

    This patch in additiona adds some limited
    documentation for the variables used for exported headers.

    Signed-off-by: Sam Ravnborg
    Cc: Oskar Schirmer
    Cc: Mikael Starvik

    Sam Ravnborg
     

26 Jul, 2008

6 commits

  • We see some header files that are selected dependent on
    the actual architecture so force a reinstallation
    of all header files when the arch changes.
    This slows down "make headers_check_all" but then
    we better reflect reality.

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • Move the core functionality of headers_install
    and headers_check to two small perl scripts.
    The makefile is adapted to use the perl scrip and
    changed to operate on all files in a directory.
    So if one file is changed then all files in the
    directory is processed.

    perl were chosen for the helper scripts because this
    is pure text processing which perl is good at and
    especially the headers_check.pl script are expected to
    see changes / new checks implmented.

    The speed is ~300% faster on this box.
    And the output generated to the screen is now down to
    two lines per directory (one for install, one for check)
    so it is easier to scroll back after a kernel build.

    The perl scripts has been brought to sanity by patient
    feedback from: Vegard Nossum

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • Move it to the top-level file to decide if we install/check
    the generic headers or the arch specific headers.

    This revealed a long standing bug where "make headers_check_all"
    relied on the files in asm/ for the current architecture.
    So make headers_check_all is now broken by this commit.

    In addition:

    o add a simpler way to detect if an arch support
    exporting header files.

    o add 'set -e;' so we error out early if
    make headers_check_all fails.

    o add sparc64 and cris to arch we do not process
    in make headers_*_all because:

    sparc64 - use sparc to export headers
    cris - is know seriously broken

    Includes suggestions from: David Woodhouse
    .

    Signed-off-by: Sam Ravnborg
    Cc: David Woodhouse

    Sam Ravnborg
     
  • No functional changes just improved readability

    Signed-off-by: Sam Ravnborg

    Sam Ravnborg
     
  • ALTARCH is no longer used by any arch(*) so drop
    support for this from Makefile.headerinst

    Dropping ALTARCH support simplifies Makefile.headerinst

    (*) sparc64 uses it but work is ongoing to drop it
    and no furter usage is planned.

    Signed-off-by: Sam Ravnborg
    Cc: David Woodhouse
    Cc: David Miller

    Sam Ravnborg
     
  • unifdef utility is fast enough to warrant that we always
    run the scripts through unifdef.

    This patch runs all headers listed with header-y and unifdef-y
    through unifdef.
    Next step is to drop unifdef-y in all Kbuild files and
    that can now be done in smaller steps.

    Signed-off-by: Sam Ravnborg
    Cc: David Woodhouse
    Cc: Adrian Bunk

    Sam Ravnborg