Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 335399 - app-emulation/emul-linux-x86-baselibs: please add llvm
Summary: app-emulation/emul-linux-x86-baselibs: please add llvm
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: AMD64 Linux
: High normal (vote)
Assignee: AMD64 Project
URL:
Whiteboard:
Keywords:
Depends on: 336371
Blocks: emul-tracker
  Show dependency tree
 
Reported: 2010-08-31 12:21 UTC by David Heidelberg (okias)
Modified: 2011-01-31 11:51 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments
mesa_with_llvm.log (mesa_with_llvm.log,11.62 KB, text/plain)
2011-01-30 21:54 UTC, David Heidelberg (okias)
Details

Note You need to log in before you can comment on or make changes to this bug.
Description David Heidelberg (okias) 2010-08-31 12:21:45 UTC
I using x86-emul-libs to play games under wine, which are pretty slow, with default r300 driver (my graphics is RS690), so I compiling my own mesa on top x86-emul-libs, with r300g driver.

Problem is in still slow r300g driver. So I was complaining on radeon irc channel and dev eosie pointed me to enable llvm support. I tested it on regular mesa- 9999 ~amd64 package with llvm flag enabled and it improved speed at least twice.

So I really apriciate if in x86-emul-libs can be included llvm. I tried compile it a top actual x86-emul-libs, but it didn't successed.

Also it could be great step, to migration to r300g gallium driver, which will soon proviede better performance for games (so wine games/progs can benefit from that).

Thanks

Reproducible: Always
Comment 1 Pacho Ramos gentoo-dev 2010-09-15 11:27:38 UTC
+*emul-linux-x86-baselibs-20100915 (15 Sep 2010)
+
+  15 Sep 2010; Pacho Ramos <pacho@gentoo.org>
+  -emul-linux-x86-baselibs-20100220.ebuild,
+  -emul-linux-x86-baselibs-20100409.ebuild,
+  +emul-linux-x86-baselibs-20100915.ebuild:
+  Version bump including sys-devel/llvm as requested by okias (bug #335399).
+  Remove old.
+
Comment 2 David Heidelberg (okias) 2010-12-29 13:39:35 UTC
there still missing lot depencies


g++ -m32  -L/usr/lib64/llvm  -lpthread -lffi -ldl -lm  lp_test_format.o lp_test_main.o -o lp_test_format -Wl,--start-group  -L../../auxiliary/ -lgallium libllvmpipe.a -lLLVMBitWriter -lLLVMX86CodeGen -lLLVMX86Info -lLLVMX86AsmPrinter -lLLVMSelectionDAG -lLLVMAsmPrinter -lLLVMMCParser -lLLVMInterpreter -lLLVMJIT -lLLVMExecutionEngine -lLLVMCodeGen -lLLVMScalarOpts -lLLVMInstCombine -lLLVMTransformUtils -lLLVMipa -lLLVMAnalysis -lLLVMTarget -lLLVMMC -lLLVMCore -lLLVMSupport -lLLVMSystem -lstdc++  -lXext -lXdamage -lXfixes -lXxf86vm -lX11-xcb -lX11 -lxcb-glx -lxcb   -ldrm   -lm -lpthread -ldl -Wl,--end-group
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../libffi.so when searching for -lffi
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib/libffi.so when searching for -lffi
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lffi
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib64/llvm/libLLVMBitWriter.a when searching for -lLLVMBitWriter
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMBitWriter
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib64/llvm/libLLVMX86CodeGen.a when searching for -lLLVMX86CodeGen
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMX86CodeGen
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib64/llvm/libLLVMX86Info.a when searching for -lLLVMX86Info
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMX86Info
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib64/llvm/libLLVMX86AsmPrinter.a when searching for -lLLVMX86AsmPrinter
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMX86AsmPrinter
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib64/llvm/libLLVMSelectionDAG.a when searching for -lLLVMSelectionDAG
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMSelectionDAG
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib64/llvm/libLLVMAsmPrinter.a when searching for -lLLVMAsmPrinter
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMAsmPrinter
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib64/llvm/libLLVMMCParser.a when searching for -lLLVMMCParser
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMMCParser
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib64/llvm/libLLVMInterpreter.a when searching for -lLLVMInterpreter
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMInterpreter
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib64/llvm/libLLVMJIT.a when searching for -lLLVMJIT
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMJIT
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib64/llvm/libLLVMExecutionEngine.a when searching for -lLLVMExecutionEngine
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMExecutionEngine
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib64/llvm/libLLVMCodeGen.a when searching for -lLLVMCodeGen
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMCodeGen
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib64/llvm/libLLVMScalarOpts.a when searching for -lLLVMScalarOpts
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMScalarOpts
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib64/llvm/libLLVMInstCombine.a when searching for -lLLVMInstCombine
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMInstCombine
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib64/llvm/libLLVMTransformUtils.a when searching for -lLLVMTransformUtils
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMTransformUtils
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib64/llvm/libLLVMipa.a when searching for -lLLVMipa
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMipa
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib64/llvm/libLLVMAnalysis.a when searching for -lLLVMAnalysis
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMAnalysis
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib64/llvm/libLLVMTarget.a when searching for -lLLVMTarget
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMTarget
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib64/llvm/libLLVMMC.a when searching for -lLLVMMC
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMMC
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib64/llvm/libLLVMCore.a when searching for -lLLVMCore
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMCore
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib64/llvm/libLLVMSupport.a when searching for -lLLVMSupport
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMSupport
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: skipping incompatible /usr/lib64/llvm/libLLVMSystem.a when searching for -lLLVMSystem
/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.1/../../../../x86_64-pc-linux-gnu/bin/ld: cannot find -lLLVMSystem
collect2: ld returned 1 exit status
gmake[4]: *** [lp_test_format] Error 1
gmake[4]: Leaving directory `/root/32bit/mesa/src/gallium/drivers/llvmpipe'
gmake[3]: *** [default] Error 1
gmake[3]: Leaving directory `/root/32bit/mesa/src/gallium/drivers'
gmake[2]: *** [default] Error 1
gmake[2]: Leaving directory `/root/32bit/mesa/src/gallium'
gmake[1]: *** [subdirs] Error 1
gmake[1]: Leaving directory `/root/32bit/mesa/src'
gmake: *** [default] Error 1
Comment 3 David Heidelberg (okias) 2010-12-29 13:47:43 UTC
So,

for mesa build missing 32bit udis86 and probably 32bit llvm-config (which overwrites 64bit)..
Comment 4 Pacho Ramos gentoo-dev 2011-01-01 19:27:28 UTC
Looking at llvm-2.8-r1.ebuild doesn't seem to be missing libs in emul set:

DEPEND="dev-lang/perl
        >=sys-devel/make-3.79
        >=sys-devel/flex-2.5.4
        >=sys-devel/bison-1.28
        !~sys-devel/bison-1.85
        !~sys-devel/bison-1.875
        || ( >=sys-devel/gcc-3.0 >=sys-devel/gcc-apple-4.2.1 )
        || ( >=sys-devel/binutils-2.18 >=sys-devel/binutils-apple-3.2.3 )
        libffi? ( virtual/libffi )
        ocaml? ( dev-lang/ocaml )
        udis86? ( amd64? ( dev-libs/udis86[pic] )
                !amd64? ( dev-libs/udis86 ) )"
RDEPEND="dev-lang/perl"

Reading it looks like the only runtime dependency is "perl".

(In reply to comment #3)
> So,
> 
> for mesa build missing 32bit udis86 and probably 32bit llvm-config (which
> overwrites 64bit)..
> 

mesa-7.9 RDEPEND stated the following:

RDEPEND="
        !<x11-base/xorg-server-1.7
        !<=x11-proto/xf86driproto-2.0.3
        >=app-admin/eselect-mesa-0.0.3
        >=app-admin/eselect-opengl-1.1.1-r2
        dev-libs/expat
        dev-libs/libxml2[python]
        sys-libs/talloc
        x11-libs/libICE
        >=x11-libs/libX11-1.3.99.901
        x11-libs/libXdamage
        x11-libs/libXext
        x11-libs/libXi
        x11-libs/libXmu
        x11-libs/libXxf86vm
        motif? ( x11-libs/openmotif )
        gallium? (
                llvm? (
                        amd64? ( dev-libs/udis86 )
                        x86? ( dev-libs/udis86 )
                        x86-fbsd? ( dev-libs/udis86 )
                        sys-devel/llvm
                )
        )
        ${LIBDRM_DEPSTRING}[video_cards_nouveau?,video_cards_vmware?]
        video_cards_nouveau? ( <x11-libs/libdrm-2.4.23 )
"

Then:
- llvm-config is not even mentioned, if needed, could you tell me what does need it and what ebuild is providing.
- dev-libs/udis86 is missing... but it's only required for mesa-7.9, current emul set still provide 7.8 that shouldn't need it.

Then, looks like original bug is fixed (llvm stuff was added), but, in the next bump for emul-linux-x86 set, as mesa will be updated, that new dep will also need to be added... but it will be added at that time then 
Comment 5 David Heidelberg (okias) 2011-01-30 21:54:10 UTC
Created attachment 261123 [details]
mesa_with_llvm.log


# find /usr/lib32 | grep -i llvm
/usr/lib32/libplugin_llvmc_Base.a
/usr/lib32/libplugin_llvmc_Clang.a
/usr/lib32/llvm
/usr/lib32/llvm/libLTO.so
/usr/lib32/llvm/libLLVM-2.8.so
/usr/lib32/llvm/libEnhancedDisassembly.so
/usr/lib32/llvm/libLLVMHello.so
/usr/lib32/llvm/libprofile_rt.so
/usr/lib32/llvm/libBugpointPasses.so


# find /usr/lib64 | grep -i llvm
/usr/lib64/llvm
/usr/lib64/llvm/libLLVMMC.a
/usr/lib64/llvm/libLLVMAsmPrinter.a
/usr/lib64/llvm/libLLVMBitWriter.a
/usr/lib64/llvm/libLLVMInstrumentation.a
/usr/lib64/llvm/libLLVMipo.a
/usr/lib64/llvm/libLLVMX86AsmParser.a
/usr/lib64/llvm/libLLVMCore.a
/usr/lib64/llvm/libLLVMSelectionDAG.a
/usr/lib64/llvm/libCompilerDriver.a
/usr/lib64/llvm/libLLVMBitReader.a
/usr/lib64/llvm/libLTO.so
/usr/lib64/llvm/libEnhancedDisassembly.a
/usr/lib64/llvm/libUnitTestMain.a
/usr/lib64/llvm/libLLVMExecutionEngine.a
/usr/lib64/llvm/libLLVMTransformUtils.a
/usr/lib64/llvm/libLLVMSystem.a
/usr/lib64/llvm/libLLVM-2.8.so
/usr/lib64/llvm/libLLVMJIT.a
/usr/lib64/llvm/libLLVMX86Disassembler.a
/usr/lib64/llvm/libEnhancedDisassembly.so
/usr/lib64/llvm/libLLVMCodeGen.a
/usr/lib64/llvm/libLLVMHello.so
/usr/lib64/llvm/libLLVMAsmParser.a
/usr/lib64/llvm/libLLVMArchive.a
/usr/lib64/llvm/libLLVMScalarOpts.a
/usr/lib64/llvm/libLLVMInterpreter.a
/usr/lib64/llvm/libprofile_rt.so
/usr/lib64/llvm/libLLVMX86Info.a
/usr/lib64/llvm/libLLVMX86AsmPrinter.a
/usr/lib64/llvm/libLLVMSupport.a
/usr/lib64/llvm/libLLVMInstCombine.a
/usr/lib64/llvm/libLLVMTarget.a
/usr/lib64/llvm/libLLVMAnalysis.a
/usr/lib64/llvm/libLLVMX86CodeGen.a
/usr/lib64/llvm/libLTO.a
/usr/lib64/llvm/libLLVMMCDisassembler.a
/usr/lib64/llvm/libLLVMLinker.a
/usr/lib64/llvm/libLLVMipa.a
/usr/lib64/llvm/libLLVMMCParser.a
/usr/lib64/llvm/libBugpointPasses.so

seems to some libs are not avaliable in 32 bit version, probably that which mesa needs - look at attached log please. Thanks
Comment 6 Pacho Ramos gentoo-dev 2011-01-31 11:51:48 UTC
In that log I cannot see any reference to any missing library, also, why are you trying to compile against emul packages? 

All packages (only perl) listed as RDEPENDs in llvm-2.8-r1 ebuild (current stable) are included in emul set