From: Alexey Loukianov <l...@lexa2.ru> Environment block size on Windows is limited to ~32k. But contrary to typical posix limitation process arguments are not included in environment block and are separate from it. Thus it is not required to compare env_size with arg_max when checking for execl(e) limits in findutils.
This is important due to a fact that some software like linux kernel backports tend to export a lot of environment variables during build which leads to find/xargs failing with "environment is too large for exec" message when working under cygwin. Signed-off-by: Alexey Loukianov <l...@lexa2.ru> Signed-off-by: Rosen Penev <ros...@gmail.com> --- ...cygwin-env-is-not-included-into-args.patch | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 tools/findutils/patches/900-cygwin-env-is-not-included-into-args.patch diff --git a/tools/findutils/patches/900-cygwin-env-is-not-included-into-args.patch b/tools/findutils/patches/900-cygwin-env-is-not-included-into-args.patch new file mode 100644 index 0000000000..d96b2fce91 --- /dev/null +++ b/tools/findutils/patches/900-cygwin-env-is-not-included-into-args.patch @@ -0,0 +1,33 @@ +Index: findutils-4.6.0/lib/buildcmd.c +=================================================================== +--- findutils-4.6.0.orig/lib/buildcmd.c ++++ findutils-4.6.0/lib/buildcmd.c +@@ -509,6 +509,8 @@ bc_init_controlinfo (struct buildcmd_con + + ctl->exit_if_size_exceeded = 0; + ++ ++#ifndef __CYGWIN__ + /* Take the size of the environment into account. */ + if (size_of_environment > ctl->posix_arg_size_max) + { +@@ -525,9 +527,19 @@ bc_init_controlinfo (struct buildcmd_con + } + else + { ++ ctl->posix_arg_size_max -= headroom; + ctl->posix_arg_size_max -= size_of_environment; ++ } ++#else ++ if (headroom >= ctl->posix_arg_size_max) ++ { ++ return BC_INIT_CANNOT_ACCOMODATE_HEADROOM; ++ } ++ else ++ { + ctl->posix_arg_size_max -= headroom; + } ++#endif + + /* need to subtract 2 on the following line - for Linux/PPC */ + ctl->max_arg_count = (ctl->posix_arg_size_max / sizeof (char*)) - 2u; -- 2.17.1 _______________________________________________ openwrt-devel mailing list openwrt-devel@lists.openwrt.org https://lists.openwrt.org/mailman/listinfo/openwrt-devel