Mit statischem TLS kann kein Objekt mehr geladen werden
Ich habe eine Anwendung, die verwendet wirddlopen()
zusätzliche Module laden. Die Anwendung und die Module basieren auf Ubuntu 12.04 x86_64 unter Verwendung von gcc 4.6, jedoch für i386 arch. Die Binärdateien werden dann auf einen anderen Computer mit genau demselben Betriebssystem kopiert und funktionieren einwandfrei.
Wenn sie jedoch auf Ubuntu 12.04 i386 kopiert werden, können einige (aber nicht alle) Module nicht mit der folgenden Meldung geladen werden:
dlopen: cannot load any more object with static TLS
Ich würde vermuten, dass dies durch die Verwendung von verursacht wird__thread
Variablen. Solche Variablen werden jedoch nicht in den geladenen Modulen verwendet - nur im Lademodul selbst.
Kann jemand zusätzliche Infos geben, woran kann das liegen?
Ich reduziere die Anzahl von__thread
Variablen und deren Optimierung (mit-ftls-model
etc), ich bin nur neugierig, warum es nicht funktioniertfast gleiches System.