ошибка компиляции asm/atomic.h

У меня есть старый проект C++, и у меня проблемы с его сборкой. Для определенного файла я получаю следующие ошибки:

ошибка: ‘atomic_t’ не был объявлен в этой области

И другие для других идентификаторов, таких как atomic_read, atomic_inc и т. д. В файле есть включение для asm/atomic.h, но я не могу найти заголовочный файл в своей системе. Я использую SUSE Linux Enterprise Desktop 11 и gcc 4.3.2.

Может быть, нужно установить какой-то пакет или включить альтернативный заголовок для этих идентификаторов?


person Andrei Vajna II    schedule 04.03.2010    source источник
comment
marc.info/?l=linux-kernel&m=115299997829268&w=2   -  person Alok Singhal    schedule 04.03.2010
comment
Итак, вы говорите, что разработчики должны были полагаться на заголовок asm/atomic.h?   -  person Andrei Vajna II    schedule 04.03.2010


Ответы (1)


Они предназначены для заголовков ядра, а не для использования приложениями. Они являются прототипами для некоторых атомарных тестов и наборов, приращений, декрементов и т. д., которые реализованы на ассемблере.

поэтому, даже если вы найдете заголовочные файлы, вам все равно понадобится .o из исходников asm или .asm.

Это не те файлы, которые вы ищете, но они, скорее всего, будут одинаковыми или похожими.

http://github.com/github/linux-2.6/blob/3067e02f8f3ae2f3f02ba76400d03b8bcb4942b0/arch/sh/include/asm/atomic.h http://github.com/apache/stdcxx/blob/7b51a66e3db202b7d317c74a05664ebdaaeef7brc.asm

person John Knoeller    schedule 04.03.2010