[v3] libstdc++/22554/23734
David Edelsohn
dje@watson.ibm.com
Tue Sep 13 17:57:00 GMT 2005
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
More information about the Libstdc++
mailing list