Hi Michael,<br><br>I am getting exception on master reconfig with this change.<br>Please have a look at this?<br><br>Thanks<br><br>Galina<br><br><br>2013-03-19 11:29:32-0700 [-] Unhandled Error<br>        Traceback (most recent call last):<br>
          File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/buildbot/master.py", line 197, in loadTheConfigFile<br>            d = self.loadConfig(f)<br>          File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/buildbot/master.py", line 579, in loadConfig<br>
            d.addCallback(do_load)<br>          File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/twisted/internet/defer.py", line 298, in addCallback<br>            callbackKeywords=kw)<br>
          File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/twisted/internet/defer.py", line 287, in addCallbacks<br>            self._runCallbacks()<br>        --- <exception caught here> ---<br>
          File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/twisted/internet/defer.py", line 545, in _runCallbacks<br>            current.result = callback(current.result, *args, **kw)<br>
          File "/opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/buildbot/master.py", line 226, in do_load<br>            exec f in localDict<br>          File "/Volumes/Macintosh HD2/llvm.buildmaster/zorg/buildbot/osuosl/master/master.cfg", line 23, in <module><br>
            reload(config.builders)<br>          File "/Volumes/Macintosh HD2/llvm.buildmaster/zorg/buildbot/osuosl/master/config/builders.py", line 2, in <module><br>            reload(ClangBuilder)<br>          File "/Volumes/Macintosh HD2/llvm.buildmaster/zorg/zorg/buildbot/builders/ClangBuilder.py", line 17, in <module><br>
            from zorg.buildbot.PhasedBuilderUtils import find_liblto<br>        exceptions.ImportError: cannot import name find_liblto<br><br><br><br><br><div class="gmail_quote">On Wed, Mar 13, 2013 at 2:51 PM, Michael Gottesman <span dir="ltr"><<a href="mailto:mgottesman@apple.com" target="_blank">mgottesman@apple.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: mgottesman<br>
Date: Wed Mar 13 16:51:16 2013<br>
New Revision: 176981<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=176981&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=176981&view=rev</a><br>
Log:<br>
The LTO phased clang builder was having issues finding the right libLTO. This patch should hopefully fix that.<br>
<br>
Modified:<br>
    zorg/trunk/zorg/buildbot/PhasedBuilderUtils.py<br>
    zorg/trunk/zorg/buildbot/builders/ClangBuilder.py<br>
<br>
Modified: zorg/trunk/zorg/buildbot/PhasedBuilderUtils.py<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/zorg/trunk/zorg/buildbot/PhasedBuilderUtils.py?rev=176981&r1=176980&r2=176981&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/zorg/trunk/zorg/buildbot/PhasedBuilderUtils.py?rev=176981&r1=176980&r2=176981&view=diff</a><br>

==============================================================================<br>
--- zorg/trunk/zorg/buildbot/PhasedBuilderUtils.py (original)<br>
+++ zorg/trunk/zorg/buildbot/PhasedBuilderUtils.py Wed Mar 13 16:51:16 2013<br>
@@ -149,6 +149,14 @@ def find_cxx(status, stdin, stdout):<br>
             return { 'cxx_path' : cxx_path }<br>
     return {}<br>
<br>
+def find_liblto(status, stdin, stdout):<br>
+    lines = filter(bool, stdin.split('\n'))<br>
+    for line in lines:<br>
+        if 'lib/libLTO.dylib' in line:<br>
+            liblto_path = line<br>
+            return { 'liblto_path' : liblto_path }<br>
+    return {}<br>
+<br>
 def determine_phase_id(props):<br>
     # phase_id should be generated by the first phase to run and copied as a<br>
     # propery to downstream builds<br>
<br>
Modified: zorg/trunk/zorg/buildbot/builders/ClangBuilder.py<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/zorg/trunk/zorg/buildbot/builders/ClangBuilder.py?rev=176981&r1=176980&r2=176981&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/zorg/trunk/zorg/buildbot/builders/ClangBuilder.py?rev=176981&r1=176980&r2=176981&view=diff</a><br>

==============================================================================<br>
--- zorg/trunk/zorg/buildbot/builders/ClangBuilder.py (original)<br>
+++ zorg/trunk/zorg/buildbot/builders/ClangBuilder.py Wed Mar 13 16:51:16 2013<br>
@@ -14,6 +14,7 @@ from zorg.buildbot.commands import Suppr<br>
 from zorg.buildbot.commands.BatchFileDownload import BatchFileDownload<br>
 from zorg.buildbot.commands.LitTestCommand import LitTestCommand<br>
 from zorg.buildbot.PhasedBuilderUtils import GetLatestValidated, find_cc<br>
+from zorg.buildbot.PhasedBuilderUtils import find_liblto<br>
<br>
 def getClangBuildFactory(<br>
             triple=None,<br>
@@ -711,12 +712,7 @@ def phasedClang(config_options, is_boots<br>
                            '--without-llvmgcc', '--without-llvmgxx',<br>
                            '--enable-keep-symbols'])<br>
     configure_args.append(<br>
-        WithProperties('--prefix=%(builddir)s/clang-install'))<br>
-<br>
-    # If we need to use lto, add in proper flags here.<br>
-    if use_lto:<br>
-      configure_args.append(<br>
-        '--with-extra-options=-flto -gline-tables-only')<br>
+        WithProperties('--prefix=%(builddir)s/clang-install'))<br>
<br>
     # If we are using a previously built compiler, download it and override CC<br>
     # and CXX.<br>
@@ -737,14 +733,30 @@ def phasedClang(config_options, is_boots<br>
     configure_args.extend([<br>
             WithProperties('CC=%(builddir)s/%(cc_path)s'),<br>
             WithProperties('CXX=%(builddir)s/%(cc_path)s++')])<br>
+<br>
+    # If we need to use lto, find liblto, add in proper flags here, etc.<br>
+    if use_lto:<br>
+        liblto_command = ['find', 'host-compiler', '-name', 'libLTO.dylib']<br>
+        f.addStep(buildbot.steps.shell.ShellCommand(<br>
+                name='find.liblto',<br>
+                command=liblto_command,<br>
+                extract_fn=find_liblto,<br>
+                workdir=WithProperties('%(builddir)s')))<br>
+        configure_args.append(<br>
+          '--with-extra-options=-flto -gline-tables-only')<br>
+<br>
     # Configure the LLVM build.<br>
     f.addStep(buildbot.steps.shell.ShellCommand(<br>
               name='configure.with.host', command=configure_args,<br>
               haltOnFailure=True, description=['configure'],<br>
               workdir=clang_build_dir))<br>
     # Build the compiler.<br>
+    make_command = ['make', '-j', WithProperties('%(jobs)s')]<br>
+    if use_lto:<br>
+        make_command.append(WithProperties('DYLD_LIBRARY_PATH=%(liblto_path)s'))<br>
+<br>
     f.addStep(buildbot.steps.shell.ShellCommand(<br>
-              name='make', command=['make', '-j', WithProperties('%(jobs)s')],<br>
+              name='make', command=make_command,<br>
               haltOnFailure=True, description=['make'], workdir=clang_build_dir))<br>
     # Use make install-clang to produce minimal archive for use by downstream<br>
     # builders.<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br>