-
Notifications
You must be signed in to change notification settings - Fork 234
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unable to use address sanitizer in a program that links against compute-runtime #376
Comments
With further investigation I have found that this is still broken in a strange way. When running cmake with This behaviour is different from the behaviour of every other library that I am working with. With all other libraries I am able to enable address sanitization in my own program without needing to recompile any of the other libraries. Is there some way to either remove If we consider the scenario of someone linking against the compute runtime library that they obtained from a prebuilt deb package (like the ones provided on the github releases page) and they try to run the address sanitizer on their own code they will meet the error that I received in my original post. The only way they will be able to do this is to download and compile the compute runtime and all of its dependencies from source, which they shouldn't ever have to do. |
Hello, Issue with DEEPBIND should be resolved by: 66f4c75 In order to disable passing DEEPBIND flag to dlopen() in NEO, you need to set two environment variables: Please let us know if such configuration resolves the issue. Mateusz |
One must set both environment variables `NEOReadDebugKeys=1 DisableDeepBind=1`, since compute-runtime on Intel loads shared objects with `RTLD_DEEPBIND`. That breaks asan. See intel/compute-runtime#376
It works,. I can run now tsan (and other sanitizers!). |
it doesnt work for me NEOReadDebugKeys=1 DisableDeepBind=1 doesnt work for me |
|
I am running an application that links against the compute-runtime that I am trying to run an address sanitizer on. At runtime I get the following error
I noticed in https://github.com/intel/compute-runtime/blob/master/shared/source/os_interface/linux/os_library_linux.cpp#L37-L42 that you are checking for a
SANITIZER_BUILD
compile definition and disablingRTLD_DEEPBIND
if it is defined. However, this only works if the compute-runtime was compiled with this flag defined. Is it possible to move this check into a header file so that when people wish to use address sanitizers in their applications they don't need to recompile the compute-runtime as well?The text was updated successfully, but these errors were encountered: