27 Nov, 2012

1 commit

  • Strip the _UAPI prefix from header guards during header installation so
    that any userspace dependencies aren't affected. glibc, for example,
    checks for linux/types.h, linux/kernel.h, linux/compiler.h and
    linux/list.h by their guards - though the last two aren't actually
    exported.

    libtool: compile: gcc -std=gnu99 -DHAVE_CONFIG_H -I. -Wall -Werror -Wformat -Wformat-security -D_FORTIFY_SOURCE=2 -fno-delete-null-pointer-checks -fstack-protector -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m32 -march=i686 -mtune=atom -fasynchronous-unwind-tables -c child.c -fPIC -DPIC -o .libs/child.o
    In file included from cli.c:20:0:
    common.h:152:8: error: redefinition of 'struct sysinfo'
    In file included from /usr/include/linux/kernel.h:4:0,
    from /usr/include/linux/sysctl.h:25,
    from /usr/include/sys/sysctl.h:43,
    from common.h:50,
    from cli.c:20:
    /usr/include/linux/sysinfo.h:7:8: note: originally defined here

    Reported-by: Tomasz Torcz
    Signed-off-by: David Howells
    Acked-by: Josh Boyer
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    David Howells
     

03 Oct, 2012

1 commit

  • 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
     

24 Jun, 2011

1 commit

  • checkpatch.pl warns about using __attribute__((packed)) in kernel
    headers: "__packed is preferred over __attribute__((packed))". If one
    follows that advice it could cause problems in the exported header
    files, because the outside world doesn't know about this shortcut.

    For example busybox will fail to compile:
    CC miscutils/ubi_attach_detach.o
    In file included from miscutils/ubi_attach_detach.c:27:0:
    /usr/include/mtd/ubi-user.h:330:3: error: conflicting types for ‘__packed’
    /usr/include/mtd/ubi-user.h:314:3: note: previous declaration of ‘__packed’ was here
    ...

    Fix the problem by substituting __packed with __attribute__((packed)) in
    the header_install.pl script.

    Cc: Artem Bityutskiy
    CC: Joe Perches
    Signed-off-by: Markus Trippelsdorf
    Signed-off-by: Michal Marek

    Markus Trippelsdorf
     

14 Dec, 2010

1 commit


08 Mar, 2010

1 commit


12 Oct, 2009

1 commit

  • User applications frequently hit problems when they try to use
    the kernel headers directly, rather than the exported headers.

    This adds an explicit warning for this case, and points to
    a URL holding an explanation of why this is wrong and what
    to do about it.

    Signed-off-by: Arnd Bergmann
    Signed-off-by: Sam Ravnborg

    Arnd Bergmann
     

03 Jan, 2009

1 commit


30 Oct, 2008

1 commit

  • Fix headers_install.pl and headers_check.pl to be compatible with versions
    of Perl less than 5.6.0. It has been tested with Perl 5.005_03 and 5.8.8.
    I realize this may not be an issue for most people, but there will still
    be some that hit it, I imagine. There are three basic issues:

    1. Prior to 5.6.0 open() only used 2 arguments, and the versions of
    the scripts in 2.6.27.1 use 3.
    2. 5.6.0 also introduced the ability to use uninitialized scalar
    variables as file handles, which the current scripts make use of.
    3. Lastly, 5.6.0 also introduced the pragma 'use warnings'. We can use
    the -w switch and be backwards compatible.

    Signed-off-by: Jeremy Huntwork
    Signed-off-by: Andrew Morton
    Signed-off-by: Sam Ravnborg

    Jeremy Huntwork
     

26 Jul, 2008

2 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