No se puede cargar ningún objeto más con TLS estático

Tengo una aplicación que usodlopen() para cargar módulos adicionales. La aplicación y los módulos están construidos en Ubuntu 12.04 x86_64 usando gcc 4.6 pero para i386 arch. Los archivos binarios se copian a otra máquina con exactamente el mismo sistema operativo y funcionan bien.

Sin embargo, si se copian en Ubuntu 12.04 i386, algunos módulos (pero no todos) no se pueden cargar con el siguiente mensaje:

dlopen: cannot load any more object with static TLS

Sospecho que esto es causado por el uso de__thread variables Sin embargo, tales variables no se utilizan en los módulos cargados, solo en el módulo del cargador en sí.

¿Puede alguien proporcionar información adicional, cuál puede ser la razón?

Estoy reduciendo numero de__thread variables y optimizándolas (con-ftls-model etc), tengo curiosidad por qué no funciona encasi mismo sistema

Respuestas a la pregunta(1)

Su respuesta a la pregunta