[Bug 1135030] New: LTO: ceph build fails
http://bugzilla.opensuse.org/show_bug.cgi?id=1135030 Bug ID: 1135030 Summary: LTO: ceph build fails Classification: openSUSE Product: openSUSE Tumbleweed Version: Current Hardware: Other OS: Other Status: NEW Severity: Normal Priority: P5 - None Component: Basesystem Assignee: bnc-team-screening@forge.provo.novell.com Reporter: martin.liska@suse.com QA Contact: qa-bugs@suse.de Found By: --- Blocker: --- Fails here: https://build.opensuse.org/package/live_build_log/openSUSE:Factory:Staging:N... due to: [ 8864s] /usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/bin/ld: ../../../lib/librados.so.2.0.0: undefined reference to `rados_aio_create_completion' [ 8864s] /usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/bin/ld: ../../../lib/librados.so.2.0.0: undefined reference to `rados_create_with_context' [ 8864s] /usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/bin/ld: ../../../lib/librados.so.2.0.0: undefined reference to `rados_version' [ 8864s] /usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/bin/ld: ../../../lib/librados.so.2.0.0: undefined reference to `rados_create2' [ 8864s] /usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/bin/ld: ../../../lib/librados.so.2.0.0: undefined reference to `rados_nobjects_list_next' [ 8864s] /usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/bin/ld: ../../../lib/librados.so.2.0.0: undefined reference to `rados_conf_parse_env' [ 8864s] /usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/bin/ld: ../../../lib/librados.so.2.0.0: undefined reference to `rados_conf_set' [ 8864s] /usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/bin/ld: ../../../lib/librados.so.2.0.0: undefined reference to `rados_create' [ 8864s] /usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/bin/ld: ../../../lib/librados.so.2.0.0: undefined reference to `rados_ioctx_create2' [ 8864s] /usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/bin/ld: ../../../lib/librados.so.2.0.0: undefined reference to `rados_conf_parse_argv' [ 8864s] /usr/lib64/gcc/x86_64-suse-linux/9/../../../../x86_64-suse-linux/bin/ld: ../../../lib/librados.so.2.0.0: undefined reference to `rados_conf_read_file' -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1135030 Martin Liška <martin.liska@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Blocks| |1133084 Assignee|bnc-team-screening@forge.pr |martin.liska@suse.com |ovo.novell.com | -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1135030 http://bugzilla.opensuse.org/show_bug.cgi?id=1135030#c1 Nathan Cutler <ncutler@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ncutler@suse.com --- Comment #1 from Nathan Cutler <ncutler@suse.com> --- Hi Martin: Just out of curiosity, is this with GCC9? I opened http://tracker.ceph.com/issues/39974 upstream for the fix. Can you open an upstream PR [1] with your fix? For best results: 1. open the PR at https://github.com/ceph/ceph targeting the branch "master" 2. include the following lines at the bottom of the commit message: Fixes: http://tracker.ceph.com/issues/39974 Signed-off-by: Martin Liška <Martin.Liska@suse.com> 3. Ping me (@smithfarm) in the PR. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1135030 http://bugzilla.opensuse.org/show_bug.cgi?id=1135030#c2 --- Comment #2 from Martin Liška <martin.liska@suse.com> --- (In reply to Nathan Cutler from comment #1)
Hi Martin:
Just out of curiosity, is this with GCC9?
I opened http://tracker.ceph.com/issues/39974 upstream for the fix. Can you open an upstream PR [1] with your fix? For best results:
1. open the PR at https://github.com/ceph/ceph targeting the branch "master" 2. include the following lines at the bottom of the commit message:
Fixes: http://tracker.ceph.com/issues/39974 Signed-off-by: Martin Liška <Martin.Liska@suse.com>
3. Ping me (@smithfarm) in the PR.
I've just done that, thank you for help: https://github.com/ceph/ceph/pull/28170 -- You are receiving this mail because: You are on the CC list for the bug.
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.
http://bugzilla.opensuse.org/show_bug.cgi?id=1135030 http://bugzilla.opensuse.org/show_bug.cgi?id=1135030#c13 --- Comment #13 from Martin Li��ka <martin.liska@suse.com> ---
just FTR, this is currently blocking the build of QEMU, on ppc64, in Factory and Tumbleweed...
I think it's a known issue: https://github.com/fmtlib/fmt/issues/2794 RedHat bug for it: https://bugzilla.redhat.com/show_bug.cgi?id=2061022 -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1135030 http://bugzilla.opensuse.org/show_bug.cgi?id=1135030#c14 --- Comment #14 from Dario Faggioli <dfaggioli@suse.com> --- (In reply to Martin Li��ka from comment #13)
just FTR, this is currently blocking the build of QEMU, on ppc64, in Factory and Tumbleweed...
I think it's a known issue: https://github.com/fmtlib/fmt/issues/2794
Ok, thanks for the pointer! :-) The symptoms really looks the same, although, in that issue, the problem seems to come from the fact that the library and the tool wanting to use it are build with different compilers (gcc and clang). This isn't true in our case (or at least, it doesn't look true to me). But maybe we are also building with incompatible options? Or could it be something else? -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1135030 http://bugzilla.opensuse.org/show_bug.cgi?id=1135030#c15 --- Comment #15 from Martin Li��ka <martin.liska@suse.com> --- (In reply to Dario Faggioli from comment #14)
(In reply to Martin Li��ka from comment #13)
just FTR, this is currently blocking the build of QEMU, on ppc64, in Factory and Tumbleweed...
I think it's a known issue: https://github.com/fmtlib/fmt/issues/2794
Ok, thanks for the pointer! :-)
The symptoms really looks the same, although, in that issue, the problem seems to come from the fact that the library and the tool wanting to use it are build with different compilers (gcc and clang).
This isn't true in our case (or at least, it doesn't look true to me). But maybe we are also building with incompatible options? Or could it be something else?
I think it's about a mixture of 2 long double formats This comes from GCC 12 changes: On POWER systems which support it, the -mabi=ieeelongdouble option now selects the IEEE 128-bit floating point format for REAL(KIND=16). R16_IBM and R16_IEEE have been added to the -fconvert option, the CONVERT specifyer of the OPEN statement and the GFORTRAN_CONVERT_UNIT environment variable. The 2 related options are: -mabi=ibmlongdouble, -mabi=ieeelongdouble and they will be likely mixed. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1135030 http://bugzilla.opensuse.org/show_bug.cgi?id=1135030#c16 Martin Li��ka <martin.liska@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|IN_PROGRESS |RESOLVED Resolution|--- |FIXED --- Comment #16 from Martin Li��ka <martin.liska@suse.com> --- ceph builds with LTO now, let's close this. -- You are receiving this mail because: You are on the CC list for the bug.
participants (2)
-
bugzilla_noreply@novell.com
-
bugzilla_noreply@suse.com