Não é possível carregar mais nenhum objeto com o TLS estático

Eu tenho um aplicativo que usadlopen() para carregar módulos adicionais. O aplicativo e os módulos são criados no Ubuntu 12.04 x86_64 usando o gcc 4.6, mas para o i386 arch. Os binários são então copiados para outra máquina com exatamente o mesmo sistema operacional e funcionam bem.

No entanto, se forem copiados para o Ubuntu 12.04 i386, alguns módulos (mas não todos) não serão carregados com a seguinte mensagem:

dlopen: cannot load any more object with static TLS

Eu suspeito que isso é causado pelo uso de__thread variáveis. No entanto, essas variáveis ​​não são usadas nos módulos carregados - apenas no próprio módulo carregador.

Alguém pode fornecer qualquer informação adicional, qual pode ser o motivo?

Eu estou reduzindo o número de__thread variáveis ​​e otimizando-as (com-ftls-model etc), estou curioso para saber por que não funcionaquase mesmo sistema.

questionAnswers(1)

yourAnswerToTheQuestion