[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