[OE-core] [dizzy][PATCH] mesa: update --with-llvm-shared-libs configure option

Martin Jansa martin.jansa at gmail.com
Thu May 14 12:18:46 UTC 2015


On Wed, May 13, 2015 at 06:29:26PM +0200, martin.jansa at gmail.com wrote:
> On Wed, May 06, 2015 at 11:37:44PM -0700, Khem Raj wrote:
> > 
> > > On May 6, 2015, at 8:39 AM, Martin Jansa <martin.jansa at gmail.com> wrote:
> > > 
> > > On Fri, May 01, 2015 at 07:47:42PM +0200, Martin Jansa wrote:
> > >> From: Andre McCurdy <armccurdy at gmail.com>
> > >> 
> > >> As per the Mesa 10.2 release notes, "--with-llvm-shared-libs"
> > >> has been renamed to "--enable-llvm-shared-libs".
> > >> 
> > >>  http://www.mesa3d.org/relnotes/10.2.html
> > > 
> > > Be aware that this correctly enables gallium-llvm, but then
> > > gbm_gallium_drm can fail to find LLVM libs:
> > > 
> > > ld: cannot find -lLLVMMCJIT
> > > | collect2: error: ld returned 1 exit status
> > > | make[3]: *** [gbm_gallium_drm.la] Error 1
> > > 
> > > at least in some configurations, I'm looking what's the difference in
> > > builds I'm seeing failing.
> > 
> > is LLVM_CONFIG set to point to valid llvm-config ?
> 
> Yes, but the libraries weren't staged by llvm3.3
> 
> sysroots/qemux86/usr/bin/crossscripts/llvm-config --libs
> -lLLVMTableGen -lLLVMDebugInfo -lLLVMOption -lLLVMX86Disassembler
> -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMSelectionDAG -lLLVMAsmPrinter
> -lLLVMX86Desc -lLLVMX86Info -lLLVMX86AsmPrinter -lLLVMX86Utils
> -lLLVMIRReader -lLLVMAsmParser -lLLVMMCDisassembler -lLLVMMCParser
> -lLLVMInstrumentation -lLLVMArchive -lLLVMBitReader -lLLVMInterpreter
> -lLLVMipo -lLLVMVectorize -lLLVMLinker -lLLVMBitWriter -lLLVMMCJIT
> -lLLVMJIT -lLLVMCodeGen -lLLVMObjCARCOpts -lLLVMScalarOpts
> -lLLVMInstCombine -lLLVMTransformUtils -lLLVMipa -lLLVMAnalysis
> -lLLVMRuntimeDyld -lLLVMExecutionEngine -lLLVMTarget -lLLVMMC
> -lLLVMObject -lLLVMCore -lLLVMSupport
> 
> Maybe the LLVM_COMPONENTS passed from mesa configure are a bit wider
> now:
> 
> sysroots/qemux86/usr/bin/crossscripts/llvm-config --libs engine
> bitwriter
> -lLLVMBitWriter -lLLVMX86Disassembler -lLLVMX86AsmParser
> -lLLVMX86CodeGen -lLLVMSelectionDAG -lLLVMAsmPrinter -lLLVMMCParser
> -lLLVMX86Desc -lLLVMX86Info -lLLVMX86AsmPrinter -lLLVMX86Utils -lLLVMJIT
> -lLLVMRuntimeDyld -lLLVMExecutionEngine -lLLVMCodeGen -lLLVMObjCARCOpts
> -lLLVMScalarOpts -lLLVMInstCombine -lLLVMTransformUtils -lLLVMipa
> -lLLVMAnalysis -lLLVMTarget -lLLVMMC -lLLVMObject -lLLVMCore
> -lLLVMSupport
> 
> sysroots/qemux86/usr/bin/crossscripts/llvm-config --libs engine
> bitwriter
> -lLLVMBitWriter -lLLVMX86Disassembler -lLLVMX86AsmParser
> -lLLVMX86CodeGen -lLLVMSelectionDAG -lLLVMAsmPrinter -lLLVMMCParser
> -lLLVMX86Desc -lLLVMX86Info -lLLVMX86AsmPrinter -lLLVMX86Utils -lLLVMJIT
> -lLLVMRuntimeDyld -lLLVMExecutionEngine -lLLVMCodeGen -lLLVMObjCARCOpts
> -lLLVMScalarOpts -lLLVMInstCombine -lLLVMTransformUtils -lLLVMipa
> -lLLVMAnalysis -lLLVMTarget -lLLVMMC -lLLVMObject -lLLVMCore
> -lLLVMSupport
> 
> sysroots/qemux86/usr/bin/crossscripts/llvm-config --ldflags
> -L<myprefix>/sysroots/qemux86/usr/lib/llvm3.3
> -lz -lpthread -lrt -ldl -lm
> 
> sysroot only has these:
> /sysroots/qemux86/usr/lib/libLLVM-3.3.so
> /sysroots/qemux86/usr/lib/llvm3.3/libLTO.so
> /sysroots/qemux86/usr/lib/llvm3.3/LLVMHello.so
> /sysroots/qemux86/usr/lib/llvm3.3/BugpointPasses.so
> /sysroots/qemux86/usr/lib/llvm3.3/libprofile_rt.so
> /sysroots/qemux86/usr/lib/llvm3.3/libLLVM-3.3.so
> /sysroots/qemux86/usr/lib/llvm3.3/
> /sysroots/qemux86/usr/lib/
> 
> static libs were built:
> ../../../llvm3.3/3.3-r0/llvm-3.3.build/Release/lib/libLLVMJIT.a
> ../../../llvm3.3/3.3-r0/image/usr/lib/llvm3.3/libLLVMJIT.a
> ../../../llvm3.3/3.3-r0/package/usr/lib/llvm3.3/libLLVMJIT.a
> but not staged.

I'm sorry for false alarm, the last sentence is the key. In webOS builds
we have filter for staging static libraries (to prevent accidental usage
of static library with unwanted license in our components) and of course
I forgot to whitelist these llvm libraries used by mesa.

Once staged in sysroot mesa builds with gallium-llvm again OK, so this
change is good to go.

Thanks

> I don't see anything obvious in log.do_configure, most suspicious part
> is:
> 
> llvm3.3/3.3-r0/llvm-3.3.src/configure: line 1990: -O2: command not found
> llvm3.3/3.3-r0/llvm-3.3.src/configure: line 1991: -O2: command not found
> 
> caused by:
> ${CFLAGS=}
> ${CXXFLAGS=}
> 
> in configure script
> 
> I'll try to downgrade mesa to see what was different there.
> 
> Regards,

-- 
Martin 'JaMa' Jansa     jabber: Martin.Jansa at gmail.com



More information about the Openembedded-core mailing list