Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Mark
dlsym
with __attribute__((noinline))
.
In some circumstances (e.g. under higher optimization modes when compiled with LLVM), `dlsym` gets inlined into `libvirtcpuid_init_dso`. When this happens, dlsym's use of `__builtin_return_address(0)` no longer returns the address of `dlsym` and instead returns the address of `libvirtcpuid_init_dso`. When that happens, `_dl_sym` fails to find the next `dlsym` and the process crashes.
- Loading branch information