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.pur...@linuxfoundation.org> > > gcc/ChangeLog: > > * Makefile.in: Fix "argument list too long" from install-plugins > > Signed-off-by: Richard Purdie <richard.pur...@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 \