This is the mail archive of the
libstdc++@gcc.gnu.org
mailing list for the libstdc++ project.
Re: [v3] libstdc++/22554/23734
- From: David Edelsohn <dje at watson dot ibm dot com>
- To: Benjamin Kosnik <benjamin dot kosnik at gmail dot com>
- Cc: gcc-patches at gcc dot gnu dot org, libstdc++ at gcc dot gnu dot org
- Date: Tue, 13 Sep 2005 13:57:15 -0400
- Subject: Re: [v3] libstdc++/22554/23734
- References: <20050912175432.1851a2df.benjamin.kosnik@gmail.com>
Ben,
Thanks for applying the patch. Unfortunately your modifications
to my proposed patch undo the benefit. I'm sorry that I wasn't clearer in
the original bug report.
When I split the headers up into sub-value, my stamp-assoc rule
installed each of the groups separately, e.g.,
@mkdir -p ${assoc_subdirs}
@cd ${assoc_builddir} && for h in ${assoc_headers1}; do \
build_name=`echo $$h | sed -e "s|${assoc_srcdir}|.|g"` ;\
$(LN_S) $$h $${build_name} || true ;\
done
@cd ${assoc_builddir} && for h in ${assoc_headers2}; do \
build_name=`echo $$h | sed -e "s|${assoc_srcdir}|.|g"` ;\
$(LN_S) $$h $${build_name} || true ;\
done
Your rule concatenates all of the sub-commands into one large command:
@if [ ! -d "${assoc_builddir}" ]; then \
mkdir -p ${assoc_subdirs} ;\
fi ;\
if [ ! -f stamp-assoc ]; then \
(cd ${assoc_builddir} && for h in ${assoc_headers1}; do \
build_name=`echo $$h | sed -e "s|${assoc_srcdir}|.|g"` ;\
$(LN_S) $$h $${build_name} || true ;\
done) ;\
(cd ${assoc_builddir} && for h in ${assoc_headers2}; do \
build_name=`echo $$h | sed -e "s|${assoc_srcdir}|.|g"` ;\
$(LN_S) $$h $${build_name} || true ;\
done) ;\
which expands the variables and overflows the execvp limit in much the
same way as if the headers were all in one variable. To avoid overflow,
the commands cannot be strung together.
David