Commit d0509f67 authored by Alexander Alekhin's avatar Alexander Alekhin

Merge pull request #9449 from ribalda:ocv

parents 1fc9425b 6fc56979
......@@ -134,6 +134,24 @@ static void* WinGetProcAddress(const char* name)
#include <dlfcn.h>
#include <stdio.h>
static void *GetHandle(const char *file)
{
void *handle;
handle = dlopen(file, RTLD_LAZY | RTLD_GLOBAL);
if (!handle)
return NULL;
if (dlsym(handle, OPENCL_FUNC_TO_CHECK_1_1) == NULL)
{
fprintf(stderr, ERROR_MSG_INVALID_VERSION);
dlclose(handle);
return NULL;
}
return handle;
}
static void* GetProcAddress(const char* name)
{
static bool initialized = false;
......@@ -143,20 +161,18 @@ static void* GetProcAddress(const char* name)
cv::AutoLock lock(cv::getInitializationMutex());
if (!initialized)
{
const char* path = "libOpenCL.so";
const char* envPath = getenv("OPENCV_OPENCL_RUNTIME");
if (envPath)
path = envPath;
handle = dlopen(path, RTLD_LAZY | RTLD_GLOBAL);
if (handle == NULL)
{
if (envPath)
handle = GetHandle(envPath);
if (!handle)
fprintf(stderr, ERROR_MSG_CANT_LOAD);
}
else if (dlsym(handle, OPENCL_FUNC_TO_CHECK_1_1) == NULL)
else
{
fprintf(stderr, ERROR_MSG_INVALID_VERSION);
handle = NULL;
handle = GetHandle("libOpenCL.so");
if (!handle)
handle = GetHandle("libOpenCL.so.1");
}
initialized = true;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment