Использование атомарных операций в gcc 3.4.3 - PullRequest
0 голосов
/ 16 октября 2011

встроенные атомарные операции были введены в gcc-4.1.2.Тем не менее, я использую gcc на OpenIndiana, которая имеет только gcc 3.4.3.Теперь мой вопрос, как использовать атомарные операции в GCC 3.4.3?Более того, я попытался использовать gcc 4.6.1 в OpenIndiana, но он не работает, так как жалуется на некоторые библиотеки времени выполнения.Если кто-то успешно использовал его, пожалуйста, дайте мне знать.

Ответы [ 4 ]

2 голосов
/ 16 октября 2011

Я бы предложил вам обновить ваш компилятор GCC. GCC 3 - древняя вещь.

Если вы не можете установить более новую версию GCC, попробуйте скомпилировать компилятор GCC 4.6.1 из его исходного кода. (не забудьте скомпилировать его в дереве сборки вне дерева исходных текстов и не забудьте все зависимости).

Вы не упомянули и не объяснили, почему ваша компиляция GCC 4.6.1 не удалась. На какие библиотеки времени выполнения он жаловался? Вы запускали ldconfig после его установки?

1 голос
/ 16 октября 2011

GCC имеет отличную встроенную поддержку сборки, поэтому вы можете просто использовать __asm, чтобы создать свой собственный вариант различных атомарных операций.Однако это будет зависеть от вашей целевой платформы, поэтому вам понадобятся хорошие макросы для переключения на правильные версии.

0 голосов
/ 24 ноября 2011

В Solaris альтернативой может быть использование интерфейсов libc atomic_ops(3C). Они могут или не могут быть встроены, но они гарантированно всегда доступны (и всегда ведут себя одинаково) независимо от того, какой компилятор вы используете.

Кроме того, я поддерживаю предложение либо обновить ваш gcc, и / или получить компиляторы SunStudio 12.2 (они бесплатны; даже если вы используете его только для тестирования, качество кода) имеет тенденцию повышаться, если он работает с более чем одним компилятором ...). Да, он также будет установлен / запущен на дистрибутивах на основе OpenSolaris.

0 голосов
/ 16 октября 2011

Чтобы добавить к существующим ответам - вы смотрели Spec Files Extra Repository ?Я никогда не использовал его сам, но похоже, что он предлагает пакет компилятора gcc 4.6.

...