-
Notifications
You must be signed in to change notification settings - Fork 93
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
Boost 1.80 build failure with gcc11/gcc12: json/impl/parse.ipp: error: no match for 'operator=' (no such error with 1.79) #774
Comments
Same failure with UPD. Boost 1.79 builds fine on identical setup with |
We test gcc 11 and 12, although not on Apple. Can you give me the full list of compiler flags being used? |
@grisumbras Here is the full log. |
One thing to check here is whether an older Boost is in the include path. The above would happen in that case, as the older version of Boost.System won't support the necessary conversion from |
MacPorts seems to have 1.76 (in |
All Boost versions through 1.79 build fine. Only 1.80 errs out. |
@pdimov I believe Macports takes care to keep Boost versions separated, but to be on the safe side, I can deactivate all Boost versions and try building 1.80 again. UPD. No change, so it is not an older header problem. |
Including old versions of boost headers sounds like a possible explanation. Searching on a test machine with xcode and brew gcc installed, there weren't any large boost directories. Used the |
My other theory is that for some reason the macro This can happen when Or, by looking at the Config source, it can also happen if timed mutexes aren't available: https://github.com/boostorg/config/blob/2543ff139707a32cc421b62c9d65bb4d9c965b3e/include/boost/config/stdlib/libstdcpp3.hpp#L462-L465 |
@pdimov Is this something introduced with Boost 1.80? (No failure with any earlier version, I just rebuilt 1.79, 1.78, 1.76 and 1.71.) |
It is. Earlier versions implemented conversions to |
@pdimov Aha, apparently this is exactly what breaks 1.80: boostorg/config#399 |
The error is related to Boost.System. Apparently, there's a recurring issue on Apple that old version of Boost.System that's already installed on the system is picked up rather than the intended 1.80 version. Can you check that this is not what's happening? |
@grisumbras I already did – deactivating all Boost versions prior to building 1.80. No change. |
Oh, my browser haven't pulled the discussion before I posted. Looks like you've figured it out! |
@grisumbras Yeah, just someone has to fix that now :) |
Until we figure out how to properly fix this, you should be able to compile Boost 1.80 by defining Users of Boost 1.80 however might have to do that as well, although it should mostly work. |
Maybe I can use |
Or maybe you could just patch Boost.Config and comment out https://github.com/boostorg/config/blob/2543ff139707a32cc421b62c9d65bb4d9c965b3e/include/boost/config/stdlib/libstdcpp3.hpp#L464, because it seems to be entirely wrong for GCC 11/12 as those should provide |
@barracuda156 is the problem still present? |
Boost.Config has been fixed, so it shouldn't be. |
Closing this as it should be fixed now |
Boost 1.81 certainly builds fine with GCC. |
The text was updated successfully, but these errors were encountered: