Openembedded Core Discussions
 help / color / mirror / Atom feed
From: Martin Jansa <martin.jansa@gmail.com>
To: Khem Raj <raj.khem@gmail.com>
Cc: openembedded-core@lists.openembedded.org
Subject: Re: [dizzy][PATCH] mesa: update --with-llvm-shared-libs configure option
Date: Thu, 14 May 2015 14:18:46 +0200	[thread overview]
Message-ID: <20150514121846.GB2402@jama> (raw)
In-Reply-To: <20150513162926.GC2411@jama>

On Wed, May 13, 2015 at 06:29:26PM +0200, martin.jansa@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@gmail.com> wrote:
> > > 
> > > On Fri, May 01, 2015 at 07:47:42PM +0200, Martin Jansa wrote:
> > >> From: Andre McCurdy <armccurdy@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@gmail.com


      reply	other threads:[~2015-05-14 12:18 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-01 17:47 [dizzy][PATCH] mesa: update --with-llvm-shared-libs configure option Martin Jansa
2015-05-04 23:07 ` akuster808
2015-06-04  8:36   ` Martin Jansa
2015-06-04 17:51     ` akuster808
2015-05-06 15:39 ` Martin Jansa
2015-05-07  6:37   ` Khem Raj
2015-05-13 16:29     ` martin.jansa
2015-05-14 12:18       ` Martin Jansa [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20150514121846.GB2402@jama \
    --to=martin.jansa@gmail.com \
    --cc=openembedded-core@lists.openembedded.org \
    --cc=raj.khem@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox