[Beignet] Weird clinfo ouput @ FreeBSD-11.0/Intel GPU

Rebecca N. Palmer rebecca_palmer at zoho.com
Tue Oct 18 06:58:38 UTC 2016


> builtin_kernel_block_motion_estimate_intel()    [SUCCESS]
> runtime_climage_from_boname()Unresolved symbol:
> _Z22__gen_ocl_write_imagef11ocl_image2dDv2_iDv4_f
> Aborting...

That message is from backend/src/llvm/llvm_gen_backend.hpp:97, and means 
it can't find that function (in its internal list, not the actual 
library files): possibly a name demangling problem?

To find out, try this:

--- a/backend/src/llvm/llvm_gen_backend.hpp
+++ b/backend/src/llvm/llvm_gen_backend.hpp
@@ -80,12 +80,13 @@ namespace gbe
     gbe::map<std::string, OCLInstrinsic> map;
     OCLInstrinsic find(const std::string symbol) const {
       auto it = map.find(symbol);
+      std::string realFnName, stripName;
+      int status;

       if (it == map.end()) {
-        int status;
         char *realName = abi::__cxa_demangle(symbol.c_str(), NULL, NULL, &status);
         if (status == 0) {
-          std::string realFnName(realName), stripName;
+          realFnName=std::string(realName);
           stripName = realFnName.substr(0, realFnName.find("("));
           it = map.find(stripName);
         }
@@ -94,7 +95,7 @@ namespace gbe
       // FIXME, should create a complete error reporting mechanism
       // when found error in beignet managed passes including Gen pass.
       if (it == map.end()) {
-        std::cerr << "Unresolved symbol: " << symbol << std::endl;
+        std::cerr << "Unresolved symbol: " << symbol << " " << realFnName << " " << stripName << " " << status << std::endl;
         std::cerr << "Aborting..." << std::endl;
         return GEN_OCL_NOT_FOUND;
       }



More information about the Beignet mailing list