<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>