All of lore.kernel.org
 help / color / mirror / Atom feed
From: Robert Yang <liezhi.yang@windriver.com>
To: Bruce Ashfield <bruce.ashfield@gmail.com>
Cc: Patches and discussions about the oe-core layer
	<openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH 1/1] linux-libc-headers: do_install: fix "Argument list too long" error
Date: Sat, 14 Sep 2013 09:38:52 +0800	[thread overview]
Message-ID: <5233BE2C.2010006@windriver.com> (raw)
In-Reply-To: <CADkTA4Ovp7SzxCT85f_Skhqt2OGTF81nNbw+ihm5X7OR=dMsEA@mail.gmail.com>



On 09/13/2013 09:43 PM, Bruce Ashfield wrote:
> On Fri, Sep 13, 2013 at 4:23 AM, Robert Yang <liezhi.yang@windriver.com> wrote:
>> There would be an "Argument list too long" error when the TMPDIR is in a deep
>> dir, for example, when "len(readlink -f TMPDIR) >= 350 (our supported value is
>> 410)". Use "$(foreach ,,$(shell echo))" to fix it.
>>
>> [YOCTO #5138]
>>
>> Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
>> ---
>>   ...cripts-Makefile.headersinst-args-too-long.patch |   36 ++++++++++++++++++++
>>   .../linux-libc-headers/linux-libc-headers_3.10.bb  |    1 +
>>   2 files changed, 37 insertions(+)
>>   create mode 100644 meta/recipes-kernel/linux-libc-headers/linux-libc-headers/scripts-Makefile.headersinst-args-too-long.patch
>>
>> diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/scripts-Makefile.headersinst-args-too-long.patch b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/scripts-Makefile.headersinst-args-too-long.patch
>> new file mode 100644
>> index 0000000..c0e1a06
>> --- /dev/null
>> +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers/scripts-Makefile.headersinst-args-too-long.patch
>> @@ -0,0 +1,36 @@
>> +Makefile.headersinst: fix "Argument list too long" error
>> +
>> +There would be an "Argument list too long" error when the src is in a
>> +deep dir, for example, when "len(readlink -f src_dir) >= 400", use
>> +"$(foreach ,,$(shell echo))" to fix it.
>> +
>> +Upstream-Status: Pending
>
> Put this as inappropriate. I've already tried to submit these
> upstream, and they didn't
> work. So just tag them as yocto specific, and I'll continue to work
> upstream on the
> issue.
>
>> +
>> +Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
>> +---
>> + scripts/Makefile.headersinst |    7 ++++++-
>> + 1 file changed, 6 insertions(+), 1 deletion(-)
>> +
>> +diff --git a/scripts/Makefile.headersinst b/scripts/Makefile.headersinst
>> +--- a/scripts/Makefile.headersinst
>> ++++ b/scripts/Makefile.headersinst
>> +@@ -98,10 +98,15 @@ __headersinst: $(subdirs) $(install-file)
>> +       @:
>> +
>> + targets += $(install-file)
>> ++# Use the $(foreach ,,$(shell echo)) to avoid the "Argument list too
>> ++# long" error, and use the "$(shell echo)" rather than "echo" to keep
>> ++# the order.
>> + $(install-file): scripts/headers_install.sh $(input-files) FORCE
>> +       $(if $(unwanted),$(call cmd,remove),)
>> +       $(if $(wildcard $(dir $@)),,$(shell mkdir -p $(dir $@)))
>> +-      @echo $(input-files) > $(INSTALL_HDR_PATH)/.input-files
>> ++      $(shell echo -n > $(INSTALL_HDR_PATH)/.input-files)
>> ++      $(foreach f,$(input-files),$(shell echo -n "$(f) " >> \
>> ++                      $(INSTALL_HDR_PATH)/.input-files))
>> +       $(call if_changed,install)
>> +       @rm $(INSTALL_HDR_PATH)/.input-files
>> +
>> +--
>> +1.7.10.4
>> +
>> diff --git a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_3.10.bb b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_3.10.bb
>> index 65df230..d056e7c 100644
>> --- a/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_3.10.bb
>> +++ b/meta/recipes-kernel/linux-libc-headers/linux-libc-headers_3.10.bb
>> @@ -2,6 +2,7 @@ require linux-libc-headers.inc
>>
>>   SRC_URI += "file://0001-ptrace.h-remove-ptrace_peeksiginfo_args.patch"
>>   SRC_URI += "file://scripts-Makefile.headersinst-install-headers-from-sc.patch"
>> +SRC_URI += "file://scripts-Makefile.headersinst-args-too-long.patch"
>
> When you looked at this .. didn't it strike you as wrong ? We already
> have a patch
> that was attempting to fix the same problem.
>

Sorry, I missed the previous patch, I will squash them into one.

> Technically even the foreach can still become to large and blow out the shells
> processing capabilities .. I know, since I wrote the same for loop at one point.
>
> That being said, if you have reproduced the problem and can show that this does
> fix at least the problem at hand, I'm ok with the change ..
>

Yes, this patch makes it work when len(TMPDIR) <= 410, this is what our
sanity.bbclass checks, I will send a V2 sooner.

// Robert

> BUT, it needs to be squashed into the previous patch and have both our Sign-offs
> left in the single patch.
>
> Cheers,
>
> Bruce
>
>>
>>   SRC_URI[md5sum] = "72d0a9b3e60cd86fabcd3f24b1708944"
>>   SRC_URI[sha256sum] = "46c9e55e1fddf40813b8d697d5645037a8e2af5c1a8dff52b3fe82b5021582b8"
>> --
>> 1.7.10.4
>>
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-core
>
>
>


  reply	other threads:[~2013-09-14  1:39 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-13  8:23 [PATCH 0/1] linux-libc-headers: do_install: fix "Argument list too long" error Robert Yang
2013-09-13  8:23 ` [PATCH 1/1] " Robert Yang
2013-09-13 13:43   ` Bruce Ashfield
2013-09-14  1:38     ` Robert Yang [this message]
2013-09-13 13:39 ` [PATCH 0/1] " Bruce Ashfield
  -- strict thread matches above, loose matches on Subject: below --
2013-09-14  2:48 [PATCH 0/1 V2] " Robert Yang
2013-09-14  2:48 ` [PATCH 1/1] " Robert Yang

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5233BE2C.2010006@windriver.com \
    --to=liezhi.yang@windriver.com \
    --cc=bruce.ashfield@gmail.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.