From ec18be530a73a89f1176277ad228f270a13b5831 Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 3 Jun 2011 16:36:13 -0700 Subject: [PATCH] simple_spin: fix linker error For some stupid reason the linker is pulling this in twice, resulting in /bin/sh ../libtool --tag=CXX --mode=link g++ -Wall -D__CEPH__ -D_FILE_OFFSET_BITS=64 -D_REENTRANT -D_THREAD_SAFE -rdynamic -Wtype-limits -Wignored-qualifiers -Winit-self -Wpointer-arith -fno-strict-aliasing -Wnon-virtual-dtor -Wno-invalid-offsetof -Wstrict-null-sentinel -g -Wextra -Wno-missing-field-initializers -Wno-missing-declarations -Wno-unused-parameter -Wl,--as-needed -latomic_ops -o radosgw_admin radosgw_admin-rgw_fs.o radosgw_admin-rgw_rados.o radosgw_admin-rgw_user.o radosgw_admin-rgw_access.o radosgw_admin-rgw_op.o radosgw_admin-rgw_rest.o radosgw_admin-rgw_rest_os.o radosgw_admin-rgw_rest_s3.o radosgw_admin-rgw_common.o radosgw_admin-rgw_cache.o radosgw_admin-rgw_os.o radosgw_admin-rgw_os_auth.o radosgw_admin-rgw_formats.o radosgw_admin-rgw_log.o rgw_escape.o radosgw_admin-rgw_admin.o librgw.a librados.a -lfcgi -lcurl -lexpat -lpthread -lm -lcrypto++ libcommon.a(libcommon_a-simple_spin.o):(.data+0x8): multiple definition of `foo' test_trans.o:/home/sage/ceph/src/./common/debug.h:51: first defined here ...which points to some larger linking issue. However, this fixes it for now. Signed-off-by: Sage Weil --- src/common/simple_spin.cc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/common/simple_spin.cc b/src/common/simple_spin.cc index 160b0fbb9cf76..188481bc5ebd8 100644 --- a/src/common/simple_spin.cc +++ b/src/common/simple_spin.cc @@ -18,11 +18,11 @@ #include #include -uint32_t bar = 13; -uint32_t *foo = &bar; - void simple_spin_lock(simple_spinlock_t *lock) { + static uint32_t bar = 13; + static uint32_t *foo = &bar; + while(1) { __sync_synchronize(); uint32_t oldval = *lock; -- 2.39.5