Russian Qt Forum
Ноябрь 23, 2024, 20:20 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: атомарные операции  (Прочитано 3648 раз)
danquimby
Гость
« : Апрель 28, 2012, 19:39 »

если под mingw сабж
ошибки вот такие , если использовать из класического mingw
Код:
(.text+0x104): undefined reference to `__sync_add_and_fetch_4'


Код:
#if defined (__GNUC__)

#define atomic_cas_uint32(p, o, n) __sync_val_compare_and_swap((uint32_t*)(p), (uint32_t)(o), (uint32_t)(n))
#define atomic_store_uint32(p, v) __sync_val_compare_and_swap((uint32_t*)(p), (uint32_t)(*p), (uint32_t)(v))

#define atomic_inc_uint32(p) __sync_add_and_fetch((uint32_t*)(p), 1)
#define atomic_dec_uint32(p) __sync_sub_and_fetch((uint32_t*)(p), 1)

#define atomic_inc_uint64(p) __sync_add_and_fetch((uint64_t*)(p), 1)
#define atomic_dec_uint64(p) __sync_sub_and_fetch((uint64_t*)(p), 1)

#endif // defined (__GNUC__)
Записан
navrocky
Гипер активный житель
*****
Offline Offline

Сообщений: 817


Погроммист


Просмотр профиля
« Ответ #1 : Апрель 29, 2012, 20:15 »

Видимо все юзают кутэшные атомарные операции....

По делу: видимо надо какой-то рантайм прилинковать, раз линковщик не может найти. КО.
Записан

Гугль в помощь
danquimby
Гость
« Ответ #2 : Май 03, 2012, 13:21 »

ну решили что бы в сборке под WindowsXP
не использовать
Код:
#define atomic_inc_uint64(p) __sync_add_and_fetch((uint64_t*)(p), 1)
#define atomic_dec_uint64(p) __sync_sub_and_fetch((uint64_t*)(p), 1)
так как их в кернеле нет
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.11 секунд. Запросов: 22.