[zorg] r261363 - Commit based on http://reviews.llvm.org/D17364.Refactored sanitizer builder to use cmake and ninja.

Sean Silva via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 19 17:23:01 PST 2016


On Fri, Feb 19, 2016 at 1:06 PM, Galina Kistanova via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

> Author: gkistanova
> Date: Fri Feb 19 15:06:00 2016
> New Revision: 261363
>
> URL: http://llvm.org/viewvc/llvm-project?rev=261363&view=rev
> Log:
> Commit based on http://reviews.llvm.org/D17364.Refactored sanitizer
> builder to use cmake and ninja.
>
> Added:
>     zorg/trunk/zorg/buildbot/builders/ClangLTOBuilder3Stage.py
>
> Added: zorg/trunk/zorg/buildbot/builders/ClangLTOBuilder3Stage.py
> URL:
> http://llvm.org/viewvc/llvm-project/zorg/trunk/zorg/buildbot/builders/ClangLTOBuilder3Stage.py?rev=261363&view=auto
>
> ==============================================================================
> --- zorg/trunk/zorg/buildbot/builders/ClangLTOBuilder3Stage.py (added)
> +++ zorg/trunk/zorg/buildbot/builders/ClangLTOBuilder3Stage.py Fri Feb 19
> 15:06:00 2016
> @@ -0,0 +1,140 @@
> +from buildbot.steps.source import SVN
> +from buildbot.steps.shell import SetProperty
> +from buildbot.steps.shell import ShellCommand
> +from buildbot.steps.shell import WarningCountingShellCommand
> +from buildbot.process.factory import BuildFactory
> +from buildbot.process.properties import WithProperties
> +
> +def get3StageClangLTOBuildFactory(
> +           clean=True,
> +           env=None,
> +           build_gold=False,
> +           cmake_cache_file=None,
> +           extra_cmake_options=None,
> +    ):
> +
> +    llvm_srcdir = "llvm.src"
> +    llvm_objdir = "llvm-stage1.obj"
> +
> +    merged_env = {
> +        'TERM' : 'dumb' # Make sure Clang doesn't use color escape
> sequences.
> +    }
> +    if env is not None:
> +        merged_env.update(env)
> +
> +    f = BuildFactory()
> +
> +    f.addStep(
> +        SVN(
> +            name='svn-llvm',
> +            mode='update',
> +            baseURL='http://llvm.org/svn/llvm-project/llvm/',
> +            defaultBranch='trunk',
> +            workdir=llvm_srcdir
> +        )
> +    )
> +
> +    f.addStep(
> +        SVN(
> +            name='svn-clang',
> +            mode='update',
> +            baseURL='http://llvm.org/svn/llvm-project/cfe/',
> +            defaultBranch='trunk',
> +            workdir='%s/tools/clang' % llvm_srcdir
> +        )
> +    )
> +
> +    # We have to programatically determine the current llvm version.
> +    f.addStep(
> +        SetProperty(
> +            name="get_llvm_ver",
> +            command=["grep 'release =' %s/tools/clang/docs/conf.py | awk
> '{print $3;}' | sed \"s/'//g\"" % llvm_srcdir],
> +            property="llvm_ver",
> +            description="get llvm release ver",
> +            workdir=llvm_srcdir,
> +            env=merged_env
> +        )
> +    )
> +
> +    # Clean directory, if requested.
> +    cleanBuildRequested = lambda step: step.build.getProperty("clean") or
> clean
> +    f.addStep(
> +        doStepIf=cleanBuildRequested,
> +        name="rm-llvm_objdir",
> +        command=["rm", "-rf", llvm_objdir],
> +        haltOnFailure=True,
> +        description=["rm build dir", "llvm"],
> +        workdir=".",
> +        env=merged_env
> +    )
> +
> +    cmake_command = ["cmake"]
> +
> +    if cmake_cache_file:
> +        cmake_command += "-C %s" % (" ".join(cmake_cache_file))
> +
> +    if extra_cmake_options:
> +        cmake_command += extra_cmake_options
> +
> +    cmake_command += [
> +        "../%s" % llvm_srcdir
> +    ]
> +
> +    # Note: ShellCommand does not pass the params with special symbols
> right.
> +    # The " ".join is a workaround for this bug.
> +    f.addStep(
> +        WarningCountingShellCommand(
> +            name="cmake-configure",
> +            description=["cmake configure"],
> +            haltOnFailure=True,
> +            command=WithProperties(" ".join(cmake_command)),
> +            workdir=llvm_objdir,
> +            env=merged_env
> +        )
> +    )
> +
> +    if build_gold:
> +        f.addStep(
> +            NinjaCommand(name='build',
> +                targets=['lib/LLVMgold.so'],
> +                haltOnFailure=True,
> +                warnOnWarnings=True,
> +                description=["3 Stage Build Clang"],
> +                workdir=llvm_objdir,
> +                env=merged_env)
> +        )
> +
> +    f.addStep(
> +        NinjaCommand(name='build',
> +            targets=['stage3-clang'],
> +            haltOnFailure=True,
> +            warnOnWarnings=True,
> +            description=["3 Stage Build Clang"],
> +            workdir=llvm_objdir,
> +            env=merged_env)
> +    )
> +
> +    f.addStep(
> +        NinjaCommand(name='build',
> +            targets=['stage3-check-clang'],
> +            haltOnFailure=True,
> +            warnOnWarnings=True,
> +            description=["Check Clang"],
> +            workdir=llvm_objdir,
> +            env=merged_env)
> +    )
> +
> +    # Compare stage2 & stage3 clang
> +    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"]
>

`cmp` is probably better than `diff -q`.


> +    f.addStep(
> +        ShellCommand(
> +            name="compare",
> +            description=["comapre stage2 & stage3 clang"],
>

typo: comapre

-- Sean Silva


> +            haltOnFailure=True,
> +            command=WithProperties(" ".join(shell_command)),
> +            workdir=llvm_objdir,
> +            env=merged_env
> +        )
> +    )
> +
> +    return f
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160219/2d225689/attachment.html>


More information about the llvm-commits mailing list