-
Notifications
You must be signed in to change notification settings - Fork 135
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
3.12.0 release is broken: error: no matching member function for call to 'reextent' #3698
Comments
Sorry about this Yuri! We have CI and nightlies with clang so i am puzzled how this got through, but clearly it did get through. Since the last release we have made building a previously optional utility (ppconvert) the default, and this is where the problem trips. Can you please add your cmake line and output? I am traveling and so can't test the following, but perhaps try commenting out the ppconvert line on line 57 of https://github.com/QMCPACK/qmcpack/blob/develop/src/QMCTools/CMakeLists.txt to disable ppconvert. This would completely localize the error. Interestingly clang13 is OK on develop, e.g. test output https://cdash.qmcpack.org/CDash/testDetails.php?test=13109421&build=278135, cmake output: https://cdash.qmcpack.org/CDash/viewConfigure.php?buildid=278134 ). |
No problem! Here is the full build log. |
Both clang 12 and 13 break the same way. There is no particular urgency for me. I encountered this problem while trying to update the FreeBSD port Thank you! |
@correaa Since this traces to multi, and before we do any deeper investigation, can you guesstimate if there are any #ifdef I_AM_LINUX or #ifdef I_AM_BSD in multi that could cause this difference? Since the same compiler versions appear to work on Linux, presumably there is either a difference in multi or some contamination from system includes that is causing this issue. |
mmm. No, I don't make a conditional compilation depending on Linux vs BSD or anything like that. My first guess is that there is an accidental difference in the clang compilers in BSD. or in their corresponding STLs? After all, I noticed lately that CMake can distinguish between clang and clang-apple, no? maybe that's it, although the compiler is the same one could be compiling against libstd and the other against libc++. |
Sorry, I assumed this was an Apple computer. Is it? Is there a CI for Apple/BSD? |
No, this is FreeBSD. |
@correaa there is a CI job for GitHub Actions Apple runners based on Accelerate. I'll try a FreeBSD VM to try to reproduce. Looks like there is an issue with unpacking (or packing) tuple arguments on that particular platform configuration:
|
Thank you, yes. It is also likely to be fixed in the last (tagged) version of Multi: https://gitlab.com/correaa/boost-multi/-/releases/v0.78 if you decide to update. BTW, this version of Multi has a more CMake-friendly directory structure (basically the include files all or under repo/include/multi/*). It also has a proper CMakeLists.txt (if I got it right). |
Thanks @williamfgc . The puzzle to me is why tuples cause the problem on FreeBSD and no-where else that we know of... If bumping the version of multi proves to be the solution, we could just push out a new release. The recently added QE7 support is a sufficient new capability that it is worth releasing. |
Note #3703 . Newer multi is needed to fix some Intel compilations. |
@prckent yes, that's what got me interested as FreeBSD ditched gcc in favor of being a "pure" llvm/clang system by default. From @correaa (thanks!):
The above, I'm able to reproduce with
Now, our CI doesn't cover usage of Now moving to understand the error. |
FYI, this libc++ issue might be related. There are tuple API changes in libc++ 13 release notes. |
I understand is that BSD would be willing to jump to llvm as much as they can because GNU and BSD licenses are historically incompatible.
Sorry, I just realized that I can test libc++ in linux as well from the previous message. |
Cirrus CI supports FreeBSD. |
GitHub Actions has a FreeBSD VM action that runs on macOS hosts. |
Thank you for your help. Any idea why Boost.Test would fail to link when switching to libc++, https://gitlab.com/correaa/boost-multi/-/jobs/1945458031#L700 |
I think there are likely to be other issues with libc++ and QMCPACK. My understanding was we don't officially support it. I've never had success compiling with our offload offload or CUDA using libc++. |
All my clang builds use the gnu stdlibc++ |
@correaa looks like ABI incompatibility on your boost libraries, I guess built with |
clang-13
OS: FreeBSD 13
The text was updated successfully, but these errors were encountered: