Несколько замечаний, чтобы прояснить проблему, которая не имеет ничего общего с Linux .
RWM (чтение-изменение-запись) и операции, которые не выполняются за один шаг, требуют аппаратной поддержки для выполнения атомарно ; среди них увеличение и уменьшение, fetch_and_add и т. д.
Для некоторых архитектур (включая I386, AMD_64 и IA64) gcc имеет встроенную поддержку атомарного доступа к памяти, поэтому не требуется никакого внешнего libray. Здесь вы можете прочитать некоторую информацию об API.