У меня есть кусок кода C/C++, который использует ключевое слово __thread для локального хранилища потоков, но с трудностями с его компиляцией на 64-битном Solaris Sparc с g ++ (версия 4.0.2), в то время как он компилирует и запускает ОК в linux с компилятором g ++ 34. Ниже приведен пример исходного кода:как скомпилировать локальное хранилище потоков (TLS) на 64-битном Solaris sparc с g ++
__thread int count = 0;
Compiler информация от 'г ++ -dumpversion' команда возвращает '4.0.2' и 'г ++ -dumpmachine' показывает "СПАРК-ВС-solaris2.8. 'uname -a' отображает 'SunOS devsol1 5.9 Generic_118558-26 sun4u sparc SUNW, UltraAX-i2'.
Сообщение об ошибке при запуске сделать с г ++ это: «Ошибка: токарно-локальное хранилище не поддерживается для этой цели», а параметр компилятора я использую
-m64 -g -fexceptions -fPIC -I../fincad -I/usr/java_1.6.0_12/include -I/usr/java_1.6.0_12/include/solaris -I/opt/csw/gcc4/lib/sparcv9 -I/opt/csw/gcc4/lib/gcc/sparc-sun-solaris2.8/4.0.2/sparcv9 -I. -I/usr/include -I/usr/include/iso -I/usr/local/include
Любая помощь очень высоко ценится, как я борется с этим в течение выходных и сталкиваюсь с крайним сроком.
Спасибо, Чарльз
делает http://www.opengroup.org/onlinepubs/009695399/functions/pthread_setspecific.html работу? – Anycorn