All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/1] linux-libc-headers: do_install: fix "Argument list too long" error
@ 2013-09-13  8:23 Robert Yang
  2013-09-13  8:23 ` [PATCH 1/1] " Robert Yang
  2013-09-13 13:39 ` [PATCH 0/1] " Bruce Ashfield
  0 siblings, 2 replies; 5+ messages in thread
From: Robert Yang @ 2013-09-13  8:23 UTC (permalink / raw)
  To: openembedded-core

Hi Saul and Bruce,

This patch is only for linux-libc-headers, the linux-yocto also has the
file Makefile.headersinst, but we don't use it when build linux-yocto,
so it works well, I'm not sure whether we should apply this to
linux-yocto.

// Robert

The following changes since commit c6dc3cb329428e92cb035be504e044c1c3c0e939:

  icu-native: do_install: Segmentation fault (2013-09-12 05:29:07 -0400)

are available in the git repository at:

  git://git.pokylinux.org/poky-contrib robert/linux_headers
  http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=robert/linux_headers

Robert Yang (1):
  linux-libc-headers: do_install: fix "Argument list too long" error

 ...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

-- 
1.7.10.4



^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/1] linux-libc-headers: do_install: fix "Argument list too long" error
  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 ` Robert Yang
  2013-09-13 13:43   ` Bruce Ashfield
  2013-09-13 13:39 ` [PATCH 0/1] " Bruce Ashfield
  1 sibling, 1 reply; 5+ messages in thread
From: Robert Yang @ 2013-09-13  8:23 UTC (permalink / raw)
  To: openembedded-core

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
+
+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"
 
 SRC_URI[md5sum] = "72d0a9b3e60cd86fabcd3f24b1708944"
 SRC_URI[sha256sum] = "46c9e55e1fddf40813b8d697d5645037a8e2af5c1a8dff52b3fe82b5021582b8"
-- 
1.7.10.4



^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH 0/1] linux-libc-headers: do_install: fix "Argument list too long" error
  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:39 ` Bruce Ashfield
  1 sibling, 0 replies; 5+ messages in thread
From: Bruce Ashfield @ 2013-09-13 13:39 UTC (permalink / raw)
  To: Robert Yang; +Cc: Patches and discussions about the oe-core layer

On Fri, Sep 13, 2013 at 4:23 AM, Robert Yang <liezhi.yang@windriver.com> wrote:
> Hi Saul and Bruce,

You need to cc me directly on patches like this. I nearly missed this
in the storm
of morning email.

>
> This patch is only for linux-libc-headers, the linux-yocto also has the
> file Makefile.headersinst, but we don't use it when build linux-yocto,
> so it works well, I'm not sure whether we should apply this to
> linux-yocto.

No, we don't need to apply it to linux-yocto, this is a very specific
case, that we've
been trying to get sorted out upstream .. with no luck yet. But since we don't
install headers from the kernel tree itself at the moment, and even if
we do, it isn't
from such a deep directory path, there's no need to carry a change.

That being said, I have issues with the patch, I'll follow up on that
email directly.

Bruce

>
> // Robert
>
> The following changes since commit c6dc3cb329428e92cb035be504e044c1c3c0e939:
>
>   icu-native: do_install: Segmentation fault (2013-09-12 05:29:07 -0400)
>
> are available in the git repository at:
>
>   git://git.pokylinux.org/poky-contrib robert/linux_headers
>   http://git.pokylinux.org/cgit.cgi/poky-contrib/log/?h=robert/linux_headers
>
> Robert Yang (1):
>   linux-libc-headers: do_install: fix "Argument list too long" error
>
>  ...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
>
> --
> 1.7.10.4
>
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core



-- 
"Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end"


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/1] linux-libc-headers: do_install: fix "Argument list too long" error
  2013-09-13  8:23 ` [PATCH 1/1] " Robert Yang
@ 2013-09-13 13:43   ` Bruce Ashfield
  2013-09-14  1:38     ` Robert Yang
  0 siblings, 1 reply; 5+ messages in thread
From: Bruce Ashfield @ 2013-09-13 13:43 UTC (permalink / raw)
  To: Robert Yang; +Cc: Patches and discussions about the oe-core layer

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.

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 ..

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



-- 
"Thou shalt not follow the NULL pointer, for chaos and madness await
thee at its end"


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 1/1] linux-libc-headers: do_install: fix "Argument list too long" error
  2013-09-13 13:43   ` Bruce Ashfield
@ 2013-09-14  1:38     ` Robert Yang
  0 siblings, 0 replies; 5+ messages in thread
From: Robert Yang @ 2013-09-14  1:38 UTC (permalink / raw)
  To: Bruce Ashfield; +Cc: Patches and discussions about the oe-core layer



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
>
>
>


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2013-09-14  1:39 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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
2013-09-13 13:39 ` [PATCH 0/1] " Bruce Ashfield

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.