Nie można załadować więcej obiektu ze statycznym TLS

Mam aplikację, która używadlopen() załadować dodatkowe moduły. Aplikacja i moduły są zbudowane na Ubuntu 12.04 x86_64 przy użyciu gcc 4.6, ale na arch. I386. Pliki binarne są następnie kopiowane na inny komputer z dokładnie tym samym systemem operacyjnym i działają poprawnie.

Jeśli jednak zostaną skopiowane do Ubuntu 12.04 i386, niektóre moduły (ale nie wszystkie) nie ładują się z następującym komunikatem:

dlopen: cannot load any more object with static TLS

Podejrzewam, że jest to spowodowane użyciem__thread zmienne. Jednak takie zmienne nie są używane w załadowanych modułach - tylko w samym module ładującym.

Czy ktoś może podać jakieś dodatkowe informacje, co może być przyczyną?

Zmniejszam liczbę__thread zmienne i ich optymalizacja (za pomocą-ftls-model itp.), jestem po prostu ciekawy, dlaczego nie działaprawie ten sam system.

questionAnswers(1)

yourAnswerToTheQuestion