-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Linking error with GCC-compiled fmt and Clang-compiled folly, only on Fedora rawhide ppc64le #2794
Comments
tracking on the Fedora side in https://bugzilla.redhat.com/show_bug.cgi?id=2061022 |
{fmt} is being switched to the internal floating-point formatter and quad precision ( |
|
My guess is that the library and the code that uses it are compiled with incompatible options. In general mixing clang and gcc is discouraged because they are not fully ABI compatible. One potential workaround is to add instantiations for Lines 103 to 111 in b6f4cea
|
I agree the mixing of gcc and clang objects could be problematic, I will try to get feedback on this issue from our toolchain too. |
yeah, sadly we're forced to do this at the moment. Those instantiations would need to be added to Fedora's |
Yes. |
Hello, just FYI, we're seeing the same problem on openSUSE Tumbleweed (also on GCC 12). In fact, when building QEMU for ppc64le, the configure script fails with this error:
But the problem is not really the library version. Rather, the checker script is trying to build a simple program, and the same errors reported in the description of this issue are encountered. See some more details here: https://bugzilla.opensuse.org/show_bug.cgi?id=1135030#c12 In our case, however, I don't think there is any gcc and clang mismatch. Or, at least, I'm building QEMU with GCC and, AFAIK, the ceph maintainers are doing the same. Some build logs should be available at these pages:
[1] This should be the URLs, but the content changes, as new builds are attempted, so I preferred to give instructions on how to reach it as well: |
Ok, I branched the package, and enabled ppc64le builds in my home project. Here it should be possible to see build logs:
|
Is the log link correct? I'm seeing a different error
|
|
Fedora 36 upgraded GCC to version 12: https://fedoraproject.org/wiki/Changes/GNUToolchainF36
It also switched ppc64le from the numerically problematic IBM extended long double to
IEEE 754 quad long double: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/NPKWMTSJ2A2ABNJJEH6WTZIAEFTX6CQY/#FDILCGZPOMB7VVJQQBCJO5GVBIEOWHHA - which could be relevant, as the error is in some floating point code.
Because of some regressions I am switching Fedora's folly package to use clang instead of GCC; on x86_64, i686, and aarch64 it builds fine (chasing some test failures esp on non-x86_64), but on ppc64le it fails:
Fedora 36
https://koji.fedoraproject.org/koji/taskinfo?taskID=83649017
Rawhide (F37)
https://kojipkgs.fedoraproject.org//work/tasks/1021/83611021/build.log
Not sure what could be causing this, any pointers to narrowing this down would be highly appreciated.
The text was updated successfully, but these errors were encountered: