tags #308791 + wontfix thanks I'm not really convinced this should be done in the libatomic_ops header files; it's all plain C. I think if a C++ app wants to include these headers it should do the extern itself (firebird is an example, see [1])
Thanks -i [1] http://sourceforge.net/p/firebird/code/HEAD/tree/firebird/trunk/src/common/classes/fb_atomic.h On Wed, May 21, 2014 at 08:48:04AM -0400, John David Anglin wrote: > Package: libatomic-ops-dev > Version: 7.3~alpha3+git20130717-1 > Severity: normal > > The atomic_ops.h header and include headers from /usr/include/atomic_ops > lack the standard namespace stuff for use with C++: > > #ifdef __cplusplus > extern "C" { > #endif > > ... > > #ifdef __cplusplus > } > #endif > > This leads to link errors when libatomic_ops.a is linked against an > application compiled with g++ (e.g., ceph)s: > > libtool: link: g++-4.8 -I/usr/include/nss -I/usr/include/nspr -Wall > -Wtype-limits -Wignored-qualifiers -Winit-self -Wpointer-arith > -Werror=format-security -fno- > strict-aliasing -fsigned-char -rdynamic -ftemplate-depth-1024 > -Wnon-virtual-dtor > -Wno-invalid-offsetof -Wstrict-null-sentinel -g -O2 -Wformat > -Werror=format-sec > urity -o .libs/ceph_rgw_multiparser rgw/rgw_multiparser.o -Wl,--as-needed > ./.li > bs/librgw.a ./.libs/librados.so ./.libs/libcls_rgw_client.a > libcls_log_client.a > libcls_statelog_client.a libcls_user_client.a libcls_replica_log_client.a > ./.lib > s/libcls_lock_client.a ./.libs/libcls_refcount_client.a > libcls_version_client.a > /usr/lib/hppa-linux-gnu/libcurl-gnutls.so /usr/lib/hppa-linux-gnu/libexpat.so > /u > sr/lib/libfcgi.so ./.libs/libglobal.a ./.libs/libcommon.a -ldl -lnss3 > -lnssutil3 > -lsmime3 -lssl3 -lplds4 -lplc4 -lnspr4 -luuid -lm /usr/lib/libatomic_ops.a > -lrt > -lboost_thread -lboost_system -lleveldb -lsnappy -pthread > ./.libs/librados.so: undefined reference to > `AO_fetch_compare_and_swap_emulation > (unsigned int volatile*, unsigned int, unsigned int)' > ./.libs/librados.so: undefined reference to `AO_store_full_emulation(unsigned > in > t volatile*, unsigned int)' > collect2: error: ld returned 1 exit status > > -- System Information: > Debian Release: jessie/sid > APT prefers unreleased > APT policy: (500, 'unreleased'), (500, 'unstable') > Architecture: hppa (parisc64) > > Kernel: Linux 3.14.4+ (SMP w/4 CPU cores) > Locale: LANG=C, LC_CTYPE=C (charmap=UTF-8) (ignored: LC_ALL set to en_CA.utf8) > Shell: /bin/sh linked to /bin/dash > > -- no debconf information -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org