<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Feb 19, 2016 at 1:06 PM, Galina Kistanova via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: gkistanova<br>
Date: Fri Feb 19 15:06:00 2016<br>
New Revision: 261363<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=261363&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=261363&view=rev</a><br>
Log:<br>
Commit based on <a href="http://reviews.llvm.org/D17364.Refactored" rel="noreferrer" target="_blank">http://reviews.llvm.org/D17364.Refactored</a> sanitizer builder to use cmake and ninja.<br>
<br>
Added:<br>
zorg/trunk/zorg/buildbot/builders/ClangLTOBuilder3Stage.py<br>
<br>
Added: zorg/trunk/zorg/buildbot/builders/ClangLTOBuilder3Stage.py<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/zorg/trunk/zorg/buildbot/builders/ClangLTOBuilder3Stage.py?rev=261363&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/zorg/trunk/zorg/buildbot/builders/ClangLTOBuilder3Stage.py?rev=261363&view=auto</a><br>
==============================================================================<br>
--- zorg/trunk/zorg/buildbot/builders/ClangLTOBuilder3Stage.py (added)<br>
+++ zorg/trunk/zorg/buildbot/builders/ClangLTOBuilder3Stage.py Fri Feb 19 15:06:00 2016<br>
@@ -0,0 +1,140 @@<br>
+from buildbot.steps.source import SVN<br>
+from buildbot.steps.shell import SetProperty<br>
+from buildbot.steps.shell import ShellCommand<br>
+from buildbot.steps.shell import WarningCountingShellCommand<br>
+from buildbot.process.factory import BuildFactory<br>
+from buildbot.process.properties import WithProperties<br>
+<br>
+def get3StageClangLTOBuildFactory(<br>
+ clean=True,<br>
+ env=None,<br>
+ build_gold=False,<br>
+ cmake_cache_file=None,<br>
+ extra_cmake_options=None,<br>
+ ):<br>
+<br>
+ llvm_srcdir = "llvm.src"<br>
+ llvm_objdir = "llvm-stage1.obj"<br>
+<br>
+ merged_env = {<br>
+ 'TERM' : 'dumb' # Make sure Clang doesn't use color escape sequences.<br>
+ }<br>
+ if env is not None:<br>
+ merged_env.update(env)<br>
+<br>
+ f = BuildFactory()<br>
+<br>
+ f.addStep(<br>
+ SVN(<br>
+ name='svn-llvm',<br>
+ mode='update',<br>
+ baseURL='<a href="http://llvm.org/svn/llvm-project/llvm/" rel="noreferrer" target="_blank">http://llvm.org/svn/llvm-project/llvm/</a>',<br>
+ defaultBranch='trunk',<br>
+ workdir=llvm_srcdir<br>
+ )<br>
+ )<br>
+<br>
+ f.addStep(<br>
+ SVN(<br>
+ name='svn-clang',<br>
+ mode='update',<br>
+ baseURL='<a href="http://llvm.org/svn/llvm-project/cfe/" rel="noreferrer" target="_blank">http://llvm.org/svn/llvm-project/cfe/</a>',<br>
+ defaultBranch='trunk',<br>
+ workdir='%s/tools/clang' % llvm_srcdir<br>
+ )<br>
+ )<br>
+<br>
+ # We have to programatically determine the current llvm version.<br>
+ f.addStep(<br>
+ SetProperty(<br>
+ name="get_llvm_ver",<br>
+ command=["grep 'release =' %s/tools/clang/docs/conf.py | awk '{print $3;}' | sed \"s/'//g\"" % llvm_srcdir],<br>
+ property="llvm_ver",<br>
+ description="get llvm release ver",<br>
+ workdir=llvm_srcdir,<br>
+ env=merged_env<br>
+ )<br>
+ )<br>
+<br>
+ # Clean directory, if requested.<br>
+ cleanBuildRequested = lambda step: step.build.getProperty("clean") or clean<br>
+ f.addStep(<br>
+ doStepIf=cleanBuildRequested,<br>
+ name="rm-llvm_objdir",<br>
+ command=["rm", "-rf", llvm_objdir],<br>
+ haltOnFailure=True,<br>
+ description=["rm build dir", "llvm"],<br>
+ workdir=".",<br>
+ env=merged_env<br>
+ )<br>
+<br>
+ cmake_command = ["cmake"]<br>
+<br>
+ if cmake_cache_file:<br>
+ cmake_command += "-C %s" % (" ".join(cmake_cache_file))<br>
+<br>
+ if extra_cmake_options:<br>
+ cmake_command += extra_cmake_options<br>
+<br>
+ cmake_command += [<br>
+ "../%s" % llvm_srcdir<br>
+ ]<br>
+<br>
+ # Note: ShellCommand does not pass the params with special symbols right.<br>
+ # The " ".join is a workaround for this bug.<br>
+ f.addStep(<br>
+ WarningCountingShellCommand(<br>
+ name="cmake-configure",<br>
+ description=["cmake configure"],<br>
+ haltOnFailure=True,<br>
+ command=WithProperties(" ".join(cmake_command)),<br>
+ workdir=llvm_objdir,<br>
+ env=merged_env<br>
+ )<br>
+ )<br>
+<br>
+ if build_gold:<br>
+ f.addStep(<br>
+ NinjaCommand(name='build',<br>
+ targets=['lib/LLVMgold.so'],<br>
+ haltOnFailure=True,<br>
+ warnOnWarnings=True,<br>
+ description=["3 Stage Build Clang"],<br>
+ workdir=llvm_objdir,<br>
+ env=merged_env)<br>
+ )<br>
+<br>
+ f.addStep(<br>
+ NinjaCommand(name='build',<br>
+ targets=['stage3-clang'],<br>
+ haltOnFailure=True,<br>
+ warnOnWarnings=True,<br>
+ description=["3 Stage Build Clang"],<br>
+ workdir=llvm_objdir,<br>
+ env=merged_env)<br>
+ )<br>
+<br>
+ f.addStep(<br>
+ NinjaCommand(name='build',<br>
+ targets=['stage3-check-clang'],<br>
+ haltOnFailure=True,<br>
+ warnOnWarnings=True,<br>
+ description=["Check Clang"],<br>
+ workdir=llvm_objdir,<br>
+ env=merged_env)<br>
+ )<br>
+<br>
+ # Compare stage2 & stage3 clang<br>
+ shell_command = ["diff", "-q", "tools/clang/stage2-bins/bin/clang-%(llvm_ver)s", "tools/clang/stage2-bins/tools/clang/stage3-bins/bin/clang-%(llvm_ver)s"]<br></blockquote><div><br></div><div>`cmp` is probably better than `diff -q`.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+ f.addStep(<br>
+ ShellCommand(<br>
+ name="compare",<br>
+ description=["comapre stage2 & stage3 clang"],<br></blockquote><div><br></div><div>typo: comapre</div><div><br></div><div>-- Sean Silva</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
+ haltOnFailure=True,<br>
+ command=WithProperties(" ".join(shell_command)),<br>
+ workdir=llvm_objdir,<br>
+ env=merged_env<br>
+ )<br>
+ )<br>
+<br>
+ return f<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@lists.llvm.org">llvm-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div></div>