From: Richard Purdie <richard.purdie@linuxfoundation.org>
Subject: [PATCH 2/5] gcc: Fix "argument list too long" from install-plugins

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.

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>

Submitted [https://gcc.gnu.org/pipermail/gcc-patches/2021-October/582722.html]
Upstream-Status: Backport [https://gcc.gnu.org/git/?p=gcc.git;a=commit;h=66e157188bd2f789809e17e85f917534c9381599]
---
 gcc/Makefile.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Index: gcc-11.2.0/gcc/Makefile.in
===================================================================
--- gcc-11.2.0.orig/gcc/Makefile.in
+++ gcc-11.2.0/gcc/Makefile.in
@@ -3678,7 +3678,7 @@ install-plugin: installdirs lang.install
 # 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 \
