Заставить GCC / Clang всегда вызывать вызов __tls_get_addr - PullRequest
0 голосов
/ 18 июня 2020

Насколько я понимаю, если у меня есть код, содержащий переменную _Thread_local, и я компилирую его в общую библиотеку, то все обращения к переменной от go до __tls_get_addr(). Однако, если я скомпилирую его в библиотеку stati c, доступ произойдет без этой функции (на x64 он использовал %fs).

Мой вопрос: как я могу заставить GCC / Clang использовать __tls_get_addr() даже в библиотеках stati c?

Компиляция с -fpic или -fpie похоже, не работает, как и возиться с extern или volatile. Кроме того, я понимаю, что это приведет к снижению производительности, пожалуйста, не просите меня объяснить причины этого вопроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...