Hide symbols from dependent libraries if HIDE_PRIVATE_SYMBOLS is ON. (#4041)
In current implementation HIDE_PRIVATE_SYMBOLS hides symbols from TVM itself but not from its dependent libraries. This is problematic when other third-party libraries with the same symbols are linked to the same executable. One example is using TVM with Mesa OpenCL drivers: they depend on LLVM and load its shared libraries with RTLD_GLOBAL flag, which results in conflicts with LLVM symbols that TVM uses. Arguably this particular issue belongs to Mesa (here's their tracking bug: https://gitlab.freedesktop.org/mesa/mesa/issues/236) but in general that's the right thing to do regardless of this particular bug. Note that I'm not enabling this functionality for Darwin as in my earlier tests their linker didn't seem to understand "--exclude-libs" (but I don't have test platform ATM to double-check).
Showing
Please
register
or
sign in
to comment