driOpenDriver() does this: handle = dlopen(realDriverName, RTLD_NOW | RTLD_GLOBAL) When "realDriveName" == "radeonsi", we get libstdc++ loaded, because: $ ldd /usr/lib64/dri/radeonsi_dri.so | grep libstdc++ libstdc++.so.6 => /lib64/libstdc++.so.6 (0x00007f2b2ee30000) So this dri driver is linked with libstdc++. RTLD_GLOBAL makes a problem when the main program or some other lib is built with clang's libc++. There happens to be a mix of symbols with same name, and an imminent, hard to debug crash. Please use RTLD_LOCAL to avoid the problem. I've found this patch: https://lists.freedesktop.org/archives/mesa-commit/2014-June/050035.html which reverts to RTLD_GLOBAL in 3 places. The problem is described here: https://lists.freedesktop.org/archives/mesa-dev/2014-May/060441.html Based on that description, I think it was enough to use RTLD_GLOBAL only for "libGL.so.1", leaving other places with RTLD_LOCAL.
-- GitLab Migration Automatic Message -- This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/mesa/mesa/issues/1033.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.