lkml.org 
[lkml]   [2009]   [Jun]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 39/39] kbuild: fix "Argument list too long" error for "make headers_check",
    Date
    From: Sergei Poselenov <sposelenov@emcraft.com>

    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 <sposelenov@emcraft.com>
    Cc: Wolfgang Denk <wd@denx.de>
    Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
    ---
    scripts/Makefile.headersinst | 8 ++++++--
    1 files changed, 6 insertions(+), 2 deletions(-)

    diff --git a/scripts/Makefile.headersinst b/scripts/Makefile.headersinst
    index 095cfc8..0fcd838 100644
    --- a/scripts/Makefile.headersinst
    +++ b/scripts/Makefile.headersinst
    @@ -54,8 +54,12 @@ quiet_cmd_remove = REMOVE $(unwanted)
    cmd_remove = rm -f $(unwanted-file)

    quiet_cmd_check = CHECK $(printdir) ($(words $(all-files)) files)
    - cmd_check = $(PERL) $< $(INSTALL_HDR_PATH)/include $(SRCARCH) \
    - $(addprefix $(install)/, $(all-files)); \
    +# Headers list can be pretty long, xargs helps to avoid
    +# the "Argument list too long" error.
    + cmd_check = for f in $(all-files); do \
    + echo "$(install)/$${f}"; done \
    + | xargs \
    + $(PERL) $< $(INSTALL_HDR_PATH)/include $(SRCARCH); \
    touch $@

    PHONY += __headersinst __headerscheck
    --
    1.6.3.rc3.40.g75b44


    \
     
     \ /
      Last update: 2009-06-06 01:53    [W:0.023 / U:31.124 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site