Library with no TLS symbols gives error : dlopen: cannot load any more object with static TLS
Library with no TLS symbols gives error : dlopen: cannot load any more object with static TLS
以下调用无法动态加载库,抱怨无法使用静态 TLS 加载更多对象:
dlopen("libfoo.so",RTLD_LOCAL | RTLD_NOW);
然而在我检查之后:
readelf -a libfoo.so | grep TLS
没有 TLS 符号。
知道加载失败的原因吗?
Any ideas why it would be failing to load
这个库可能依赖于其他一些带有 TLS 段的库。
您可以运行 ldd libfoo.so
,然后在每个依赖库上readelf -l
。其中之一必须有一个 TLS
段,否则您将不会收到您收到的错误。
以下调用无法动态加载库,抱怨无法使用静态 TLS 加载更多对象:
dlopen("libfoo.so",RTLD_LOCAL | RTLD_NOW);
然而在我检查之后:
readelf -a libfoo.so | grep TLS
没有 TLS 符号。
知道加载失败的原因吗?
Any ideas why it would be failing to load
这个库可能依赖于其他一些带有 TLS 段的库。
您可以运行 ldd libfoo.so
,然后在每个依赖库上readelf -l
。其中之一必须有一个 TLS
段,否则您将不会收到您收到的错误。