<html><head></head><body><div class="ydpce17be7dyahoo-style-wrap" style="font-family:Helvetica Neue, Helvetica, Arial, sans-serif;font-size:13px;"><div></div>
        <div>I looked at bugs 108308 and 108310 and tested the attached patch</div><div><br></div><div><span><pre class="ydpd5d0eb57bz_comment_text"><a href="https://bugs.freedesktop.org/attachment.cgi?id=141969" rel="nofollow" target="_blank">https://bugs.freedesktop.org/attachment.cgi?id=141969</a></pre></span><div><br></div><div>It seams to be a lot better than patchwork series 50108:</div><div><br></div><div>- it doesn't have build system specific code;<br></div><div><br></div><div>- no extra libraries so that Meson limitation regarding dependency modules addition based on dependency version is no longer hit;</div><div><br></div><div>- no LLVM modules requirements changes. Which means no build break with Scons or Meson and linking break between osmesa and swr. Needs testing with LLVM 6.0.1.<br></div></div><div><br></div>
        
        </div><div id="yahoo_quoted_9549680822" class="yahoo_quoted">
            <div style="font-family:'Helvetica Neue', Helvetica, Arial, sans-serif;font-size:13px;color:#26282a;">
                
                <div>
                    On Sunday, October 7, 2018, 6:35:26 AM GMT+3, Hota, Alok <alok.hota@intel.com> wrote:
                </div>
                <div><br></div>
                <div><br></div>
                <div><div id="yiv8833351369"><style>#yiv8833351369 #yiv8833351369 --
 
 _filtered #yiv8833351369 {panose-1:2 4 5 3 5 4 6 3 2 4;}
 _filtered #yiv8833351369 {font-family:Calibri;panose-1:2 15 5 2 2 2 4 3 2 4;}
 _filtered #yiv8833351369 {panose-1:0 0 0 0 0 0 0 0 0 0;}
#yiv8833351369  
#yiv8833351369 p.yiv8833351369MsoNormal, #yiv8833351369 li.yiv8833351369MsoNormal, #yiv8833351369 div.yiv8833351369MsoNormal
        {margin:0in;margin-bottom:.0001pt;font-size:12.0pt;font-family:New serif;}
#yiv8833351369 a:link, #yiv8833351369 span.yiv8833351369MsoHyperlink
        {color:blue;text-decoration:underline;}
#yiv8833351369 a:visited, #yiv8833351369 span.yiv8833351369MsoHyperlinkFollowed
        {color:purple;text-decoration:underline;}
#yiv8833351369 span.yiv8833351369EmailStyle17
        {font-family:sans-serif;color:#1F497D;}
#yiv8833351369 .yiv8833351369MsoChpDefault
        {font-size:10.0pt;}
 _filtered #yiv8833351369 {margin:1.0in 1.0in 1.0in 1.0in;}
#yiv8833351369 div.yiv8833351369WordSection1
        {}
#yiv8833351369 </style><div>
<div class="yiv8833351369WordSection1">
<p class="yiv8833351369MsoNormal"><a rel="nofollow" shape="rect" name="_MailEndCompose"><span style="font-size:11.0pt;">Thanks for the patch!</span></a></p> 
<p class="yiv8833351369MsoNormal"><span style="font-size:11.0pt;">And thanks for describing the linking error; we will look further into it. This patch should be a good starting point for resolving it.</span></p> 
<p class="yiv8833351369MsoNormal"><span style="font-size:11.0pt;">  </span></p> 
<div>
<p class="yiv8833351369MsoNormal"><span style="font-size:11.0pt;">-Alok</span></p> 
</div>
<p class="yiv8833351369MsoNormal"><span style="font-size:11.0pt;">  </span></p> 
<div class="yiv8833351369yqt4557579537" id="yiv8833351369yqt06031"><div>
<div style="border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in;">
<p class="yiv8833351369MsoNormal"><a rel="nofollow" shape="rect" name="_____replyseparator"></a><b><span style="font-size:11.0pt;">From:</span></b><span style="font-size:11.0pt;"> mesa-dev [mailto:mesa-dev-bounces@lists.freedesktop.org]
<b>On Behalf Of </b>Liviu Prodea<br clear="none">
<b>Sent:</b> Saturday, October 6, 2018 3:09 PM<br clear="none">
<b>To:</b> mesa-dev@lists.freedesktop.org<br clear="none">
<b>Cc:</b> mesa-stable@lists.freedesktop.org<br clear="none">
<b>Subject:</b> [Mesa-dev] [Mesa-stable] [PATCH] Scons: swr: fix LLVM >= 7 build</span></p> 
</div>
</div>
<p class="yiv8833351369MsoNormal">  </p> 
<div>
<div>
<p class="yiv8833351369MsoNormal"><span style="font-size:10.0pt;">Well I am more used with the merge / pull request model of sending patches so I am going to link it instead of inlining:</span></p> 
</div>
<div>
<p class="yiv8833351369MsoNormal"><span style="font-size:10.0pt;">  </span></p> 
</div>
<div>
<p class="yiv8833351369MsoNormal"><span style="font-size:10.0pt;">  </span></p> 
</div>
<div>
<p class="yiv8833351369MsoNormal"><span style="font-size:10.0pt;"><a rel="nofollow" shape="rect" target="_blank" href="https://raw.githubusercontent.com/pal1000/mesa-dist-win/master/patches/upstream/scons-swr-llvm7.patch">https://raw.githubusercontent.com/pal1000/mesa-dist-win/master/patches/upstream/scons-swr-llvm7.patch</a></span></p> 
</div>
<div>
<p class="yiv8833351369MsoNormal"><span style="font-size:10.0pt;">  </span></p> 
</div>
<div>
<p class="yiv8833351369MsoNormal"><span style="font-size:10.0pt;">  </span></p> 
</div>
<div>
<p class="yiv8833351369MsoNormal"><span style="font-size:10.0pt;">This patch depends on
<a rel="nofollow" shape="rect" target="_blank" href="https://patchwork.freedesktop.org/series/50108/">series 50108</a> to be effective but it can be safely merged either before or after it.</span></p> 
</div>
<div>
<p class="yiv8833351369MsoNormal"><span style="font-size:10.0pt;">  </span></p> 
</div>
<div>
<p class="yiv8833351369MsoNormal"><span style="font-size:10.0pt;">  </span></p> 
</div>
<div>
<p class="yiv8833351369MsoNormal"><span style="font-size:10.0pt;">Unfortunately this patch doesn't help osmesa linking with swr when using llvm >= 7 which is also an issue unaddressed by series 50108.</span></p> 
</div>
<div>
<p class="yiv8833351369MsoNormal"><span style="font-size:10.0pt;">  </span></p> 
</div>
<div>
<p class="yiv8833351369MsoNormal"><span style="font-size:10.0pt;">  </span></p> 
</div>
<div>
<p class="yiv8833351369MsoNormal"><span style="font-size:10.0pt;">If you try to build both swr and osmesa together when using LLVM 7.0 with Scons you get this after applying this patch otherwise would be way more unresolved symbols.
 This patch cuts 41 unresolved symbols resulting in successful build when not building osmesa.</span></p> 
</div>
<div>
<p class="yiv8833351369MsoNormal"><span style="font-size:10.0pt;">  </span></p> 
</div>
<div>
<p class="yiv8833351369MsoNormal"><span style="font-size:10.0pt;">  </span></p> 
</div>
<div>
<p class="yiv8833351369MsoNormal"><span style="font-size:10.0pt;">  </span></p> 
</div>
<div>
<p class="yiv8833351369MsoNormal"><span style="font-size:10.0pt;">Generating code<br clear="none">
Finished generating code<br clear="none">
Finished generating code<br clear="none">
Finished generating code<br clear="none">
  Archiving build\windows-x86_64\gallium\drivers\swr\swr.lib ...<br clear="none">
  Linking build\windows-x86_64\gallium\targets\osmesa\osmesa.dll ...<br clear="none">
  Linking build\windows-x86_64\gallium\targets\libgl-gdi\opengl32.dll ...<br clear="none">
   Creating library build\windows-x86_64\gallium\targets\osmesa\osmesa.lib and object build\windows-x86_64\gallium\targets\osmesa\osmesa.exp<br clear="none">
   Creating library build\windows-x86_64\gallium\targets\libgl-gdi\opengl32.lib and object build\windows-x86_64\gallium\targets\libgl-gdi\opengl32.exp<br clear="none">
swr.lib(JitManager.obj) : error LNK2001: unresolved external symbol "class llvm::ModulePass * __cdecl llvm::createPGOInstrumentationUseLegacyPass(class llvm::StringRef)" (?createPGOInstrumentationUseLegacyPass@llvm@@YAPEAVModulePass@1@VStringRef@1@@Z)<br clear="none">
swr.lib(JitManager.obj) : error LNK2001: unresolved external symbol "class llvm::ModulePass * __cdecl llvm::createPGOInstrumentationGenLegacyPass(void)" (?createPGOInstrumentationGenLegacyPass@llvm@@YAPEAVModulePass@1@XZ)<br clear="none">
swr.lib(JitManager.obj) : error LNK2001: unresolved external symbol "class llvm::FunctionPass * __cdecl llvm::createPGOMemOPSizeOptLegacyPass(void)" (?createPGOMemOPSizeOptLegacyPass@llvm@@YAPEAVFunctionPass@1@XZ)<br clear="none">
swr.lib(JitManager.obj) : error LNK2001: unresolved external symbol "class llvm::ModulePass * __cdecl llvm::createPGOIndirectCallPromotionLegacyPass(bool,bool)" (?createPGOIndirectCallPromotionLegacyPass@llvm@@YAPEAVModulePass@1@_N0@Z)<br clear="none">
swr.lib(JitManager.obj) : error LNK2001: unresolved external symbol "class llvm::ModulePass * __cdecl llvm::createInstrProfilingLegacyPass(struct llvm::InstrProfOptions const &)" (?createInstrProfilingLegacyPass@llvm@@YAPEAVModulePass@1@AEBUInstrProfOptions@1@@Z)<br clear="none">
swr.lib(JitManager.obj) : error LNK2001: unresolved external symbol "public: static struct llvm::GCOVOptions __cdecl llvm::GCOVOptions::getDefault(void)" (?getDefault@GCOVOptions@llvm@@SA?AU12@XZ)<br clear="none">
swr.lib(JitManager.obj) : error LNK2001: unresolved external symbol "class llvm::FunctionPass * __cdecl llvm::createBoundsCheckingLegacyPass(void)" (?createBoundsCheckingLegacyPass@llvm@@YAPEAVFunctionPass@1@XZ)<br clear="none">
swr.lib(JitManager.obj) : error LNK2001: unresolved external symbol "class llvm::ModulePass * __cdecl llvm::createGCOVProfilerPass(struct llvm::GCOVOptions const &)" (?createGCOVProfilerPass@llvm@@YAPEAVModulePass@1@AEBUGCOVOptions@1@@Z)<br clear="none">
build\windows-x86_64\gallium\targets\libgl-gdi\opengl32.dll : fatal error LNK1120: 8 unresolved externals<br clear="none">
scons: *** [build\windows-x86_64\gallium\targets\libgl-gdi\opengl32.dll] Error 1120<br clear="none">
swr.lib(JitManager.obj) : error LNK2001: unresolved external symbol "class llvm::ModulePass * __cdecl llvm::createPGOInstrumentationUseLegacyPass(class llvm::StringRef)" (?createPGOInstrumentationUseLegacyPass@llvm@@YAPEAVModulePass@1@VStringRef@1@@Z)<br clear="none">
swr.lib(JitManager.obj) : error LNK2001: unresolved external symbol "class llvm::ModulePass * __cdecl llvm::createPGOInstrumentationGenLegacyPass(void)" (?createPGOInstrumentationGenLegacyPass@llvm@@YAPEAVModulePass@1@XZ)<br clear="none">
swr.lib(JitManager.obj) : error LNK2001: unresolved external symbol "class llvm::FunctionPass * __cdecl llvm::createPGOMemOPSizeOptLegacyPass(void)" (?createPGOMemOPSizeOptLegacyPass@llvm@@YAPEAVFunctionPass@1@XZ)<br clear="none">
swr.lib(JitManager.obj) : error LNK2001: unresolved external symbol "class llvm::ModulePass * __cdecl llvm::createPGOIndirectCallPromotionLegacyPass(bool,bool)" (?createPGOIndirectCallPromotionLegacyPass@llvm@@YAPEAVModulePass@1@_N0@Z)<br clear="none">
swr.lib(JitManager.obj) : error LNK2001: unresolved external symbol "class llvm::ModulePass * __cdecl llvm::createInstrProfilingLegacyPass(struct llvm::InstrProfOptions const &)" (?createInstrProfilingLegacyPass@llvm@@YAPEAVModulePass@1@AEBUInstrProfOptions@1@@Z)<br clear="none">
swr.lib(JitManager.obj) : error LNK2001: unresolved external symbol "public: static struct llvm::GCOVOptions __cdecl llvm::GCOVOptions::getDefault(void)" (?getDefault@GCOVOptions@llvm@@SA?AU12@XZ)<br clear="none">
swr.lib(JitManager.obj) : error LNK2001: unresolved external symbol "class llvm::FunctionPass * __cdecl llvm::createBoundsCheckingLegacyPass(void)" (?createBoundsCheckingLegacyPass@llvm@@YAPEAVFunctionPass@1@XZ)<br clear="none">
swr.lib(JitManager.obj) : error LNK2001: unresolved external symbol "class llvm::ModulePass * __cdecl llvm::createGCOVProfilerPass(struct llvm::GCOVOptions const &)" (?createGCOVProfilerPass@llvm@@YAPEAVModulePass@1@AEBUGCOVOptions@1@@Z)<br clear="none">
build\windows-x86_64\gallium\targets\osmesa\osmesa.dll : fatal error LNK1120: 8 unresolved externals<br clear="none">
scons: *** [build\windows-x86_64\gallium\targets\osmesa\osmesa.dll] Error 1120<br clear="none">
scons: building terminated because of errors.</span></p> 
</div>
<div>
<p class="yiv8833351369MsoNormal"><span style="font-size:10.0pt;">  </span></p> 
</div>
<div>
<p class="yiv8833351369MsoNormal"><span style="font-size:10.0pt;">  </span></p> 
</div>
<div>
<p class="yiv8833351369MsoNormal"><span style="font-size:10.0pt;">  </span></p> 
</div>
</div></div>
</div>
</div></div></div>
            </div>
        </div></body></html>