Не могу загрузить больше объекта со статическим TLS

У меня есть приложение, которое используетdlopen() загрузить дополнительные модули. Приложение и модули построены на Ubuntu 12.04 x86_64 с использованием gcc 4.6, но для архитектуры i386. Затем двоичные файлы копируются на другую машину с точно такой же ОС и работают нормально.

Однако если они скопированы в Ubuntu 12.04 i386, то некоторые (но не все) модули не смогут загрузить следующее сообщение:

dlopen: cannot load any more object with static TLS

Я подозреваю, что это вызвано использованием__thread переменные. Однако такие переменные не используются в загруженных модулях - только в самом модуле загрузчика.

Может ли кто-нибудь предоставить дополнительную информацию, в чем может быть причина?

Я уменьшаю количество__thread переменные и их оптимизация (с-ftls-model и т.д.), мне просто любопытно, почему это не работает напочти та же система.

Ответы на вопрос(1)

Ваш ответ на вопрос