dlopen()
追加のモジュールをロードするために使用するアプリケーションがあります。アプリケーションとモジュールは、gcc 4.6 を使用して Ubuntu 12.04 x86_64 でビルドされていますが、i386 arch 用です。その後、バイナリはまったく同じ OS の別のマシンにコピーされ、正常に動作します。
ただし、それらを Ubuntu 12.04 i386 にコピーすると、一部の (すべてではない) モジュールが次のメッセージでロードに失敗します。
dlopen: cannot load any more object with static TLS
__thread
これは、変数の使用が原因であると思われます。ただし、そのような変数はロードされたモジュールでは使用されず、ローダー モジュール自体でのみ使用されます。
誰かが追加情報を提供できますか?その理由は何ですか?
変数の数を減らし__thread
てそれらを最適化しています(などで)、ほとんど同じシステム-ftls-model
で機能しないのはなぜですか。