lkml.org 
[lkml]   [2022]   [May]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] scripts/tags.sh: Invoke 'realpath' via 'xargs'
    Date
    When COMPILED_SOURCE is set, running

    make ARCH=x86_64 COMPILED_SOURCE=1 cscope tags

    could throw the following errors:

    scripts/tags.sh: line 98: /usr/bin/realpath: Argument list too long
    cscope: no source files found
    scripts/tags.sh: line 98: /usr/bin/realpath: Argument list too long
    ctags: No files specified. Try "ctags --help".

    This is most likely to happen when the kernel is configured to build a
    large number of modules, which has the consequence of passing too many
    arguments when calling 'realpath' in 'all_compiled_sources()'.

    Let's improve this by invoking 'realpath' through 'xargs', which takes
    care of properly limiting the argument list.

    Signed-off-by: Cristian Ciocaltea <cristian.ciocaltea@collabora.com>
    ---
    scripts/tags.sh | 11 +++++++----
    1 file changed, 7 insertions(+), 4 deletions(-)

    diff --git a/scripts/tags.sh b/scripts/tags.sh
    index 16d475b3e203..01fab3d4f90b 100755
    --- a/scripts/tags.sh
    +++ b/scripts/tags.sh
    @@ -95,10 +95,13 @@ all_sources()

    all_compiled_sources()
    {
    - realpath -es $([ -z "$KBUILD_ABS_SRCTREE" ] && echo --relative-to=.) \
    - include/generated/autoconf.h $(find $ignore -name "*.cmd" -exec \
    - grep -Poh '(?(?=^source_.* \K).*|(?=^ \K\S).*(?= \\))' {} \+ |
    - awk '!a[$0]++') | sort -u
    + {
    + echo include/generated/autoconf.h
    + find $ignore -name "*.cmd" -exec \
    + grep -Poh '(?(?=^source_.* \K).*|(?=^ \K\S).*(?= \\))' {} \+ |
    + awk '!a[$0]++'
    + } | xargs realpath -es $([ -z "$KBUILD_ABS_SRCTREE" ] && echo --relative-to=.) |
    + sort -u
    }

    all_target_sources()
    --
    2.36.1
    \
     
     \ /
      Last update: 2022-05-17 01:48    [W:4.210 / U:1.124 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site