<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class=""><div><div class="">On Nov 9, 2015, at 11:42 AM, David Blaikie via llvm-dev <<a href="mailto:llvm-dev@lists.llvm.org" class="">llvm-dev@lists.llvm.org</a>> wrote:</div><blockquote type="cite" class=""><div class=""><div dir="ltr" class=""><br class=""><div class="gmail_extra"><br class=""><div class="gmail_quote">On Mon, Nov 9, 2015 at 4:32 AM, Renato Golin <span dir="ltr" class=""><<a href="mailto:renato.golin@linaro.org" target="_blank" class="">renato.golin@linaro.org</a>></span> wrote:<br class=""><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi David/Galina,<br class="">
<br class="">
FYI, I found one big reason why self-hosting bots fail long after the<br class="">
offending commit is tested: dirty builds.<br class="">
<br class="">
In a dirty build (no make clean), when a file X is changed that breaks<br class="">
file Y, the bot will only accuse the failure when file Y is changed,<br class="">
too, so that stage1 with modified X will compile file Y, and break.<br class=""></blockquote><div class=""><br class=""></div><div class="">That sounds like a bug in the build system - do you have any examples of this? We should fix them.<br class=""><br class="">The build should be reliable - any case where a clean build produces a different result from a dirty build reduces/removes confidence in incremental builds & hurts developer productivity (just like flakey tests, etc).<br class=""></div></div></div></div></div></blockquote></div><div class=""><br class=""></div><div class="">I think he meant that the /second-stage/ build should always be done as a clean build -- to make sure that all of the source gets rebuilt with the newly-compiled compiler, instead of only rebuilding the modified sources with the newly-built compiler.</div><div class=""><br class=""></div><div class="">Build systems typically aren't expected to watch out for the compiler itself changing out from under them.</div></body></html>