Date: Sat, 26 Oct 2019 14:57:47 +0000 From: bugzilla-noreply@freebsd.org To: ports-bugs@FreeBSD.org Subject: [Bug 233495] devel/llvm: LLVM ERROR: Inconsistency in commandline options with multiple OpenCL vendor libraries installed Message-ID: <bug-233495-7788-el2ci7Rtln@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-233495-7788@https.bugs.freebsd.org/bugzilla/> References: <bug-233495-7788@https.bugs.freebsd.org/bugzilla/>
next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D233495 O. Hartmann <ohartmann@walstatt.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|devel/llvm70: devel/llvm60: |devel/llvm: LLVM ERROR: |Inconsistency in |Inconsistency in |commandline options with |commandline options with |multiple OpenCL vendor |multiple OpenCL vendor |libraries installed |libraries installed --- Comment #4 from O. Hartmann <ohartmann@walstatt.org> --- This problem seems to be a real pain in the ass. I'm with 12-STABLE (12.1-STABLE #42 r354111: Sat Oct 26 06:19:21 CEST 2019 amd64) and 13-CURRENT (FreeBSD 13.0-CURRENT #62 r354083: Fri Oct 25 19:05:54 CEST 2019 am64), ports tree is at r515672. It is NOT possible to have multiple OpenCL vendor libraries installed, of w= hich each vendor OpenCL library is dynamically linked against LLVM 9.0.0 (or LLVM 8.0.0, it started with LLVM 4.0.0), for instance lang/clover: AMD GPUs lang/beignet: Intel iGPUs lang/pocl: CPU Using devel/ocl-icd ICD to dynamically select/switch the propper/fastest platform/device provided or even utilize all of them, if available, isn't possible on recent FreeBSD platforms. Even worse, some applications, like graphics/blender, also quit working with the error shown below if more than= one OpenCL venodr library is linked against the same LLVM backend and installed: # clinfo : CommandLine Error: Option 'limited-coverage-experimental' registered more than once! LLVM ERROR: inconsistency in registered CommandLine options Nothing to output ! The option 'limited-coverage-experimental' can be replaced with other optio= ns issued and depends on which one is issued first. The problem is reported upstream (LLVM) here https://bugs.llvm.org/show_bug.cgi?id=3D30587 and mentioned for POCL here https://github.com/pocl/pocl/issues/474 As long as lang/clover and lang/beignet are installed and linked against different version of LLVM, the problem doesn't reveal itself. As of today a= nd with the reported revision of the portstree (see above), checking the installation of lang/beignet with # ldd /usr/local/lib/beignet/libgbe.so /usr/local/lib/beignet/libgbe.so: libdrm_intel.so.1 =3D> /usr/local/lib/libdrm_intel.so.1 (0x80069100= 0) libdrm.so.2 =3D> /usr/local/lib/libdrm.so.2 (0x8006b9000) libclang-cpp.so.9 =3D> /usr/local/llvm90/lib/libclang-cpp.so.9 (0x801000000) libLLVM-9.so =3D> /usr/local/llvm90/lib/libLLVM-9.so (0x803600000) libc++.so.1 =3D> /usr/lib/libc++.so.1 (0x8006d0000) libcxxrt.so.1 =3D> /lib/libcxxrt.so.1 (0x8007ae000) libm.so.5 =3D> /lib/libm.so.5 (0x800f8d000) libgcc_s.so.1 =3D> /lib/libgcc_s.so.1 (0x8007d5000) libthr.so.3 =3D> /lib/libthr.so.3 (0x800fc0000) libc.so.7 =3D> /lib/libc.so.7 (0x80024d000) libpciaccess.so.0 =3D> /usr/local/lib/libpciaccess.so.0 (0x8007ec00= 0) libedit.so.0 =3D> /usr/local/lib/libedit.so.0 (0x8035a0000) libz.so.6 =3D> /lib/libz.so.6 (0x8035d9000) librt.so.1 =3D> /usr/lib/librt.so.1 (0x8007f6000) libexecinfo.so.1 =3D> /usr/lib/libexecinfo.so.1 (0x800fed000) libncurses.so.8 =3D> /lib/libncurses.so.8 (0x8079e1000) libelf.so.2 =3D> /lib/libelf.so.2 (0x807a3f000) shows ibLLVM-9.so=20 and lang/clover gives # ldd /usr/local/lib/libMesaOpenCL.so /usr/local/lib/libMesaOpenCL.so: libdrm.so.2 =3D> /usr/local/lib/libdrm.so.2 (0x800691000) libz.so.6 =3D> /lib/libz.so.6 (0x8006a8000) libexpat.so.1 =3D> /usr/local/lib/libexpat.so.1 (0x8006c4000) libelf.so.2 =3D> /lib/libelf.so.2 (0x8006f1000) libLLVM-8.so =3D> /usr/local/llvm80/lib/libLLVM-8.so (0x802400000) libthr.so.3 =3D> /lib/libthr.so.3 (0x80070e000) libc++.so.1 =3D> /usr/lib/libc++.so.1 (0x80225f000) libcxxrt.so.1 =3D> /lib/libcxxrt.so.1 (0x80073b000) libm.so.5 =3D> /lib/libm.so.5 (0x800762000) libc.so.7 =3D> /lib/libc.so.7 (0x80024d000) libgcc_s.so.1 =3D> /lib/libgcc_s.so.1 (0x800795000) libedit.so.0 =3D> /usr/local/lib/libedit.so.0 (0x8007ac000) librt.so.1 =3D> /usr/lib/librt.so.1 (0x8007e5000) libexecinfo.so.1 =3D> /usr/lib/libexecinfo.so.1 (0x8007ed000) libncurses.so.8 =3D> /lib/libncurses.so.8 (0x80233d000) it is ibLLVM-8.so=20 and for lang/pocl it is # ldd /usr/local/lib/libpocl.so /usr/local/lib/libpocl.so: libdl.so.1 =3D> /usr/lib/libdl.so.1 (0x800692000) libhwloc.so.5 =3D> /usr/local/lib/libhwloc.so.5 (0x800696000) libm.so.5 =3D> /lib/libm.so.5 (0x8006ca000) libLLVM-9.so =3D> /usr/local/llvm90/lib/libLLVM-9.so (0x802a00000) libc++.so.1 =3D> /usr/lib/libc++.so.1 (0x8006fd000) libcxxrt.so.1 =3D> /lib/libcxxrt.so.1 (0x802958000) libthr.so.3 =3D> /lib/libthr.so.3 (0x80297f000) libc.so.7 =3D> /lib/libc.so.7 (0x80024d000) libpciaccess.so.0 =3D> /usr/local/lib/libpciaccess.so.0 (0x8007db00= 0) libxml2.so.2 =3D> /usr/local/lib/libxml2.so.2 (0x806de1000) libedit.so.0 =3D> /usr/local/lib/libedit.so.0 (0x8029ac000) libz.so.6 =3D> /lib/libz.so.6 (0x806f7e000) librt.so.1 =3D> /usr/lib/librt.so.1 (0x8007e5000) libexecinfo.so.1 =3D> /usr/lib/libexecinfo.so.1 (0x8007ed000) libncurses.so.8 =3D> /lib/libncurses.so.8 (0x806f9a000) libgcc_s.so.1 =3D> /lib/libgcc_s.so.1 (0x8029e5000) liblzma.so.5 =3D> /usr/lib/liblzma.so.5 (0x806ff8000) libelf.so.2 =3D> /lib/libelf.so.2 (0x807027000) and again libLLVM-9.so. It is easy to confirm the phenomenon with devel/clinfo or benchmarks/clpeak= .=20 Having installed lang/pocl, lang/beignet and lang/clover with the dependenc= ies shown above, no OpenCL related application works and throwing the error sho= wn above. Leaving lang/pocl (LLVM-9) and lang/clover (LLVM-8), deleting lang/beignet (LLVM-9) makes the environment working again as expected. Compiling lang/pocl against devel/llvm80, makes lang/clover to be deleted to make the environment working again as expected, which can be easily prooven. I consider the problem a serious one and it will popp up the day lang/clover AND lang/beignet refer to the same LLVM backend one day. --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-233495-7788-el2ci7Rtln>