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
+*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. +
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
So, for mesa build missing 32bit udis86 and probably 32bit llvm-config (which overwrites 64bit)..
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
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
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