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