Вот мой пример программы,
int main()
{
static __thread int a;
printf("\n %d",a);
return 0;
}
В этой программе, когда оператор printf удален, он связывается нормально.
Когда оператор printf включен, он дает следующую ошибку компоновщика
ld: fatal: relocation error: R_SPARC_TLS_LE_HIX22: file /var/tmp//ccwb2Cxc.o: symbol <unknown>: bad symbol type SECT: symbol type must be TLS
ПРОЦЕССОР: SUN-SPARC
ОС: UNIX
Насколько мне известно, это известная проблема компоновщика Sun с 2006 года. Работает ли он для вас, если вы копируете целое число в локальный (не нить)?
Других решений пока нет …