[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