On Tue, Sep 11, 2012 at 9:22 AM, Richard Purdie <richard.pur...@linuxfoundation.org> wrote: > Unfortunately whilst rerunning configure and make against a project will > mostly > work there are situations where it does not correctly do the right thing. > > In particular, eglibc and gcc will fail out with errors where settings > do not match a previously built configuration. It could be argued they are > broken but the situation is what it is. There is the possibility of more > subtle > errors too. > > This patch adds removal of the build directory (${B}) when configure is > rerunning, the sstate checksum for do_configure has changed and ${S} != ${B}. > We could simply use a stamp but saving out the previous configuration checksum > adds some data at no real overhead. > > If we find there are things where we want to disable this behaviour with > CONFIGURESTAMPFILE = "" in the recipe, or users could disable it globally. > > [YOCTO #2774] > [YOCTO #2848] > > This is particularly helpful for eglibc and gcc which use split builds by > default and > are a particular source of reconfigure type problems. > > Signed-off-by: Richard Purdie <richard.pur...@linuxfoundation.org>
Is it feasible to back port this to denzil? I've encountered what I think are similar issues reconfiguring gcc for example. -M > --- > diff --git a/meta/classes/autotools.bbclass b/meta/classes/autotools.bbclass > index 4c4bf87..a5997c5 100644 > --- a/meta/classes/autotools.bbclass > +++ b/meta/classes/autotools.bbclass > @@ -89,6 +89,27 @@ oe_runconf () { > > AUTOTOOLS_AUXDIR ?= "${S}" > > +CONFIGURESTAMPFILE = "${WORKDIR}/configure.sstate" > + > +autotools_preconfigure() { > + if [ -n "${CONFIGURESTAMPFILE}" -a -e "${CONFIGURESTAMPFILE}" ]; then > + if [ "`cat ${CONFIGURESTAMPFILE}`" != "${BB_TASKHASH}" -a > "${S}" != "${B}" ]; then > + echo "Previously configured separate build directory > detected, cleaning ${B}" > + rm -rf ${B} > + mkdir ${B} > + fi > + fi > +} > + > +autotools_postconfigure(){ > + if [ -n "${CONFIGURESTAMPFILE}" ]; then > + echo ${BB_TASKHASH} > ${CONFIGURESTAMPFILE} > + fi > +} > + > +do_configure[prefuncs] += "autotools_preconfigure" > +do_configure[postfuncs] += "autotools_postconfigure" > + > autotools_do_configure() { > case ${PN} in > autoconf*) > > > > _______________________________________________ > Openembedded-core mailing list > Openembedded-core@lists.openembedded.org > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core