Próbuję użyć __atomic_load_n
ze strony gcc
atomic builtins, kompilacja zKorzystanie z wbudowanych atomowych gcc?
gcc -Wall -march=i686 -std=gnu99 ll.c -o ll
ale to mówi mi, że nie może
warning: implicit declaration of function ‘__atomic_load_n’
Myślałem, że to wystarczy, aby zapewnić gcc
z arch
i flagi march
(i upewnić się, ustawiając flagę std=gnu99
), ale bez skutku. W rzeczywistości, nawet jeśli testuję wspólne makra lub __GNUC__
, nie wydaje mi się, żeby miały wartości ... ale mam dość waniliową instalację gcc
, która jest dostępna w Unbuntu.
Wiem, że robię coś głupiego, ale nie wiem, co. Mam gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Kod wygląda następująco: jest to funkcja, która nigdy nie jest wywoływana (jeszcze), więc problem jest w trakcie kompilacji.
type* func(type* p) {
type* q = __atomic_load_n (p, __ATOMIC_SEQ_CST);
}
Czy możesz pokazać nam kod, który powoduje błąd? – NPE
@NPE: na pewno pytania zostały zaktualizowane. –
Mogę skompilować twój kod bez problemu (gcc 4.7.2), gdy tylko wpiszesz 'typ' na' int'. Jeśli podejrzewasz problem z instalacją kompilatora, być może spróbuj zbudować z nim projekt inny niż triwalny, ale czysty, aby zobaczyć, co się stanie? – NPE