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

Reply via email to