gcc 크로스 컴파일러는 Built-in functions for atomic memory access을 지원하지 않습니다. 어떻게 내가 스팍 V8 아키텍처를위한 인라인 어셈블리를 사용하여, 다음과 같은 기능을 구현할 수 있습니다Sparc V8 용 비교 및 스왑 기능의 구현 인라인 어셈블리
long __sync_val_compare_and_swap (long *ptr, long oldval long newval)
{
....
}
그 내장은 원자 비교 및 스왑 수행합니다. 즉, * ptr의 현재 값이 oldval이면 newval을 * ptr에 씁니다.
http://stackoverflow.com/questions/9276946/gcc-inline-assembly-for-sparc-architecture/9280379#9280379 –
test_cas.c :(텍스트 + 0x70) –
링킹 'atomic_cas_8'로 정의 참조 솔라리스 libc가 필요합니다 ... 아니면, http://src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/common/atomic/sparc/atomic.s에서 소스를 가져 와서 얻으십시오. . –