【发布时间】:2012-02-20 10:59:26
【问题描述】:
我的 gcc 交叉编译器不支持Built-in functions for atomic memory access。我如何使用 Sparc V8 架构的内联汇编来实现以下功能:
long __sync_val_compare_and_swap (long *ptr, long oldval long newval)
{
....
}
那些内置执行原子比较和交换。即如果*ptr的当前值为oldval,则将newval写入*ptr。
【问题讨论】:
-
test_cas.c:(.text+0x70): undefined reference to `atomic_cas_8'
-
需要与 Solaris libc 链接...否则,请从 src.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/common/… 获取源代码。