http://bugzilla.opensuse.org/show_bug.cgi?id=1135030 http://bugzilla.opensuse.org/show_bug.cgi?id=1135030#c12 Dario Faggioli <dfaggioli@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Priority|P5 - None |P3 - Medium CC| |dfaggioli@suse.com --- Comment #12 from Dario Faggioli <dfaggioli@suse.com> --- Hey, I'm having a problem that seems related to this (i.e., to cepth and GCC12). I'll post some details here. Let me know if it's ok, or if I shall better open a fresh ticket. So, here's the thing: QEMU can be build with ceph/librbd support, and that was just working. Recently, QEMU's configure script It's failing like this, on ppc64le only:
[ 111s] Has header "rbd/librbd.h" : YES [ 111s] Library rbd found: YES [ 111s] [ 111s] ../meson.build:880:6: ERROR: Problem encountered: librbd >= 1.12.0 required
It seems like a problem with versions of the library, but it isn't (and indeed the error message could be improved!). In fact, the libraries are there, and in high enough version (you can check in any buildlog: https://build.opensuse.org/package/show/Virtualization/qemu). The checks that leads to that error, within the QEMU build system, is:
rbd = not_found if not get_option('rbd').auto() or have_block librados = cc.find_library('rados', required: get_option('rbd'), kwargs: static_kwargs) librbd = cc.find_library('rbd', has_headers: ['rbd/librbd.h'], required: get_option('rbd'), kwargs: static_kwargs) if librados.found() and librbd.found() if cc.links(''' #include <stdio.h> #include <rbd/librbd.h> int main(void) { rados_t cluster; rados_create(&cluster, NULL); #if LIBRBD_VERSION_CODE < LIBRBD_VERSION(1, 12, 0) #error #endif return 0; }''', dependencies: [librbd, librados]) rbd = declare_dependency(dependencies: [librbd, librados]) elif get_option('rbd').enabled() error('librbd >= 1.12.0 required') else warning('librbd >= 1.12.0 not found, disabling') endif endif endif
I've tried to reproduce the problem, externally to the build system itself, and it turns out that compiling the test programs fails like this:
$ cc rados.c -lrbd -lrados /usr/lib64/gcc/powerpc64le-suse-linux/12/../../../../powerpc64le-suse-linux/bin/ld: /usr/lib64/ceph/libceph-common.so.2: undefined reference to `int fmt::v8::detail::format_float<__float128>(__float128, int, fmt::v8::detail::float_specs, fmt::v8::detail::buffer<char>&)' /usr/lib64/gcc/powerpc64le-suse-linux/12/../../../../powerpc64le-suse-linux/bin/ld: /usr/lib64/ceph/libceph-common.so.2: undefined reference to `int fmt::v8::detail::snprintf_float<__float128>(__float128, int, fmt::v8::detail::float_specs, fmt::v8::detail::buffer<char>&)' collect2: error: ld returned 1 exit status
Any idea? just FTR, this is currently blocking the build of QEMU, on ppc64, in Factory and Tumbleweed... -- You are receiving this mail because: You are on the CC list for the bug.