[PATCH 2/5] gcc: Fix "argument list too long" from install-plugins
Bernhard Reutner-Fischer
rep.dot.nop@gmail.com
Wed Oct 27 20:54:04 GMT 2021
On Wed, 27 Oct 2021 21:05:02 +0100
Richard Purdie via Gcc-patches <gcc-patches@gcc.gnu.org> wrote:
> When building in longer build paths (200+ characters), the
> "echo $(PLUGIN_HEADERS)" from the install-plugins target would cause an
> "argument list too long error" on some systems.
>
> Avoid this by calling make's sort function on the list which removes
> duplicates and stops the overflow from reaching the echo command.
> The original sort is left to handle the the .h and .def files.
you could as well $(subst $(srcdir),,$(wildcard $(addprefix
$(srcdir),*.h *.def))) and subst '' with '\012' wrapped in an outer
sort to completely do away with the echo and shell sort i suppose.
Just an idea.
thanks,
>
> 2021-10-26 Richard Purdie <richard.purdie@linuxfoundation.org>
>
> gcc/ChangeLog:
>
> * Makefile.in: Fix "argument list too long" from install-plugins
>
> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
> ---
> gcc/Makefile.in | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/gcc/Makefile.in b/gcc/Makefile.in
> index 658093c11c0..89482c6dd4e 100644
> --- a/gcc/Makefile.in
> +++ b/gcc/Makefile.in
> @@ -3685,7 +3685,7 @@ install-plugin: installdirs lang.install-plugin s-header-vars install-gengtype
> # We keep the directory structure for files in config, common/config or
> # c-family and .def files. All other files are flattened to a single directory.
> $(mkinstalldirs) $(DESTDIR)$(plugin_includedir)
> - headers=`echo $(PLUGIN_HEADERS) $$(cd $(srcdir); echo *.h *.def) | tr ' ' '\012' | sort -u`; \
> + headers=`echo $(sort $(PLUGIN_HEADERS)) $$(cd $(srcdir); echo *.h *.def) | tr ' ' '\012' | sort -u`; \
> srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`; \
> for file in $$headers; do \
> if [ -f $$file ] ; then \
More information about the Gcc-patches
mailing list