почему __thread выдает ошибку компоновщика при использовании оператора printf?

Вот мой пример программы,

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

1

Решение

Насколько мне известно, это известная проблема компоновщика Sun с 2006 года. Работает ли он для вас, если вы копируете целое число в локальный (не нить)?

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]