std :: dependencia de la biblioteca atómica (gcc 4.7.3)

He estado intentando compilar con std :: atomic, y obtengo referencias no resueltas a __atomic_load, __atomic_store y __atomic_store_16.

Sé que en una versión posterior de gcc (4.8+?) Incluye -latomic, pero estoy compilando con gcc 4.7.3; He intentado agregar -latomic_ops y -latomic_ops_gpl, pero ninguno parece hacer mucho.

Ahora estoy instalando gcc 4.8.1, pero tengo una plataforma de lanzamiento que realmente necesitaré compilar para 4.7.3.

Muchas gracias.

Editar: Ok, aquí hay un código que resulta en el problema que tengo:

atomics.cpp
#include <atomic>
#include <stdint.h>

struct dataStruct {
    int a;
    uint16_t b;
    float c;
    dataStruct(int ai, uint16_t bi, float ci)  noexcept : a(ai), b(bi), c(ci) {
    }
    dataStruct() noexcept : dataStruct(0,0,0) {
    }
};

int main() {
    std::atomic<dataStruct> atomicValue;

    atomicValue = dataStruct(10, 0, 0);

    return atomicValue.load().b;
}

Con "g ++ - 4.8.1 * .cpp -std = c ++ 0x -latomic", esto se compila bien.

Con "g ++ - 4.7.3 * .cpp -std = c ++ 0x -pthread -lpthread -latomic_ops", falla con lo siguiente:

/tmp/ccQp8MJ2.o: In function `std::atomic<dataStruct>::load(std::memory_order) const':
atomics.cpp:(.text._ZNKSt6atomicI10dataStructE4loadESt12memory_order[_ZNKSt6atomicI10dataStructE4loadESt12memory_order]+0x2f): undefined reference to `__atomic_load'
/tmp/ccQp8MJ2.o: In function `std::atomic<dataStruct>::store(dataStruct, std::memory_order)':
atomics.cpp:(.text._ZNSt6atomicI10dataStructE5storeES0_St12memory_order[_ZNSt6atomicI10dataStructE5storeES0_St12memory_order]+0x35): undefined reference to `__atomic_store'
collect2: error: ld returned 1 exit status

Respuestas a la pregunta(1)

Su respuesta a la pregunta