[zorg] r176981 - The LTO phased clang builder was having issues finding the right libLTO. This patch should hopefully fix that.

Michael Gottesman mgottesman at apple.com
Tue Mar 19 14:37:25 PDT 2013


Can you do a checkconfig instead of a reconfig? You might need to restart the master.

Michael

On Mar 19, 2013, at 11:38 AM, Galina Kistanova <gkistanova at gmail.com> wrote:

> Hi Michael,
> 
> I am getting exception on master reconfig with this change.
> Please have a look at this?
> 
> Thanks
> 
> Galina
> 
> 
> 2013-03-19 11:29:32-0700 [-] Unhandled Error
>         Traceback (most recent call last):
>           File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/buildbot/master.py", line 197, in loadTheConfigFile
>             d = self.loadConfig(f)
>           File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/buildbot/master.py", line 579, in loadConfig
>             d.addCallback(do_load)
>           File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/twisted/internet/defer.py", line 298, in addCallback
>             callbackKeywords=kw)
>           File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/twisted/internet/defer.py", line 287, in addCallbacks
>             self._runCallbacks()
>         --- <exception caught here> ---
>           File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/twisted/internet/defer.py", line 545, in _runCallbacks
>             current.result = callback(current.result, *args, **kw)
>           File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/buildbot/master.py", line 226, in do_load
>             exec f in localDict
>           File "/Volumes/Macintosh HD2/llvm.buildmaster/zorg/buildbot/osuosl/master/master.cfg", line 23, in <module>
>             reload(config.builders)
>           File "/Volumes/Macintosh HD2/llvm.buildmaster/zorg/buildbot/osuosl/master/config/builders.py", line 2, in <module>
>             reload(ClangBuilder)
>           File "/Volumes/Macintosh HD2/llvm.buildmaster/zorg/zorg/buildbot/builders/ClangBuilder.py", line 17, in <module>
>             from zorg.buildbot.PhasedBuilderUtils import find_liblto
>         exceptions.ImportError: cannot import name find_liblto
> 
> 
> 
> 
> On Wed, Mar 13, 2013 at 2:51 PM, Michael Gottesman <mgottesman at apple.com> wrote:
> Author: mgottesman
> Date: Wed Mar 13 16:51:16 2013
> New Revision: 176981
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=176981&view=rev
> Log:
> The LTO phased clang builder was having issues finding the right libLTO. This patch should hopefully fix that.
> 
> Modified:
>     zorg/trunk/zorg/buildbot/PhasedBuilderUtils.py
>     zorg/trunk/zorg/buildbot/builders/ClangBuilder.py
> 
> Modified: zorg/trunk/zorg/buildbot/PhasedBuilderUtils.py
> URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/zorg/buildbot/PhasedBuilderUtils.py?rev=176981&r1=176980&r2=176981&view=diff
> ==============================================================================
> --- zorg/trunk/zorg/buildbot/PhasedBuilderUtils.py (original)
> +++ zorg/trunk/zorg/buildbot/PhasedBuilderUtils.py Wed Mar 13 16:51:16 2013
> @@ -149,6 +149,14 @@ def find_cxx(status, stdin, stdout):
>              return { 'cxx_path' : cxx_path }
>      return {}
> 
> +def find_liblto(status, stdin, stdout):
> +    lines = filter(bool, stdin.split('\n'))
> +    for line in lines:
> +        if 'lib/libLTO.dylib' in line:
> +            liblto_path = line
> +            return { 'liblto_path' : liblto_path }
> +    return {}
> +
>  def determine_phase_id(props):
>      # phase_id should be generated by the first phase to run and copied as a
>      # propery to downstream builds
> 
> Modified: zorg/trunk/zorg/buildbot/builders/ClangBuilder.py
> URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/zorg/buildbot/builders/ClangBuilder.py?rev=176981&r1=176980&r2=176981&view=diff
> ==============================================================================
> --- zorg/trunk/zorg/buildbot/builders/ClangBuilder.py (original)
> +++ zorg/trunk/zorg/buildbot/builders/ClangBuilder.py Wed Mar 13 16:51:16 2013
> @@ -14,6 +14,7 @@ from zorg.buildbot.commands import Suppr
>  from zorg.buildbot.commands.BatchFileDownload import BatchFileDownload
>  from zorg.buildbot.commands.LitTestCommand import LitTestCommand
>  from zorg.buildbot.PhasedBuilderUtils import GetLatestValidated, find_cc
> +from zorg.buildbot.PhasedBuilderUtils import find_liblto
> 
>  def getClangBuildFactory(
>              triple=None,
> @@ -711,12 +712,7 @@ def phasedClang(config_options, is_boots
>                             '--without-llvmgcc', '--without-llvmgxx',
>                             '--enable-keep-symbols'])
>      configure_args.append(
> -        WithProperties('--prefix=%(builddir)s/clang-install'))
> -
> -    # If we need to use lto, add in proper flags here.
> -    if use_lto:
> -      configure_args.append(
> -        '--with-extra-options=-flto -gline-tables-only')
> +        WithProperties('--prefix=%(builddir)s/clang-install'))
> 
>      # If we are using a previously built compiler, download it and override CC
>      # and CXX.
> @@ -737,14 +733,30 @@ def phasedClang(config_options, is_boots
>      configure_args.extend([
>              WithProperties('CC=%(builddir)s/%(cc_path)s'),
>              WithProperties('CXX=%(builddir)s/%(cc_path)s++')])
> +
> +    # If we need to use lto, find liblto, add in proper flags here, etc.
> +    if use_lto:
> +        liblto_command = ['find', 'host-compiler', '-name', 'libLTO.dylib']
> +        f.addStep(buildbot.steps.shell.ShellCommand(
> +                name='find.liblto',
> +                command=liblto_command,
> +                extract_fn=find_liblto,
> +                workdir=WithProperties('%(builddir)s')))
> +        configure_args.append(
> +          '--with-extra-options=-flto -gline-tables-only')
> +
>      # Configure the LLVM build.
>      f.addStep(buildbot.steps.shell.ShellCommand(
>                name='configure.with.host', command=configure_args,
>                haltOnFailure=True, description=['configure'],
>                workdir=clang_build_dir))
>      # Build the compiler.
> +    make_command = ['make', '-j', WithProperties('%(jobs)s')]
> +    if use_lto:
> +        make_command.append(WithProperties('DYLD_LIBRARY_PATH=%(liblto_path)s'))
> +
>      f.addStep(buildbot.steps.shell.ShellCommand(
> -              name='make', command=['make', '-j', WithProperties('%(jobs)s')],
> +              name='make', command=make_command,
>                haltOnFailure=True, description=['make'], workdir=clang_build_dir))
>      # Use make install-clang to produce minimal archive for use by downstream
>      # builders.
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20130319/8ac18b9a/attachment.html>


More information about the llvm-commits mailing list