-
Notifications
You must be signed in to change notification settings - Fork 14
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
Qt 5.15 builds fail with boost type error, starting 2024-04, with Xcode 15.3 #266
Comments
This is probably going to be a big pain to diagnose and fix, between how this seems like a tricky error, qt is big and hard to figure out, and each build takes a long time to run so it's hard to test fixes. So I'm going to skip ahead and focus on getting a 9.1 prerelease out, since 9.x can use Qt 6, and that build is working. Reference: #259 |
What the... now gcc builds are failing too? This is on eilonwy (AS MacBook running macOS 14.4.1) today, when I fired off an Octave.app 9.1 alpha1 build with
Here's the build logs from a rerun of that: 2024-04-07_16-15 - octapp 9.1 gcc 13 fail - eilonwy AS.zip. In the gcc make log, I see several occurrences of the above errors; that's probably just copies from the various parallel make jobs hitting similar or identical issues. The failure happened on both AS and Intel. Here's logs from Here's single-thread logs from |
Regarding the first error: That looks like an warning that is escalated to an error where it might just compile as is with defined behavior. |
@mmuetzel I'm having the same issue but I'm not using Qt, I tried using that compiler flag but no positive results. |
Ah, that seems like a promising lead. I tried setting up a test build using ![]() Added an "octapp_helper" tool (here) to make it easier to grab and share the build logs. Ran a test build of that on my Intel Mac "angharad".
Here's the build logs:
Doesn't seem to have made a difference. The build is still failing, and per the tail of the single-job build log, it looks like that Maybe there's something related to
BTW, have I ever mentioned how I think C/C++ build logs and tools are a bit suboptimal? The regular build log for Qt here is 50,000 lines long, with ~12,000 warnings and errors to sort through, if I'm reading this right.
|
It doesn't look like that flag got included in that build command. I misread earlier and thought you'd seen that error while building Octave. If I understand correctly, you are seeing it while building Qt? I don't know how to read these .rb files. Nor do I know Qt5's build system. But they probably have some way to insert compile flags somehow... |
Scrolling through their |
That sounds similar to what MXE Octave is doing to package Octave for Windows. Build rules and packages are here: Maybe some of them are helpful? (But Windows probably has a different set of idiosyncrasies from macOS). Can you build single packages (from the command line)? I find that this is sometimes easier while figuring out which switches are needed, and then translate it to the build scripts when ready. That's especially helpful if the packaging system doesn't support incremental builds of single packages (like what is the case for MXE Octave). (I don't know how Homebrew handles that...)
|
Yes. The |
I think this is at least partly an Xcode 15.3 compatibility problem, and rolling back to Xcode 15.2 or earlier might be a workaround. I tried building with Xcode 15.2 and qt worked, without formula changes. GCC still failed under 15.2; looking in to that. Xcode 15.3 was released released a few weeks ago, March 5 2024 (according to the Developer Downloads page, between the last time I was working on doing the 8.4.0 Octave.app builds (which were working, including qt and gcc builds of these same versions), and a couple days ago when the failures started happening. I have Xcode installed via the App Store, and I just upgrade it whenever a new one comes out, so I picked up 15.3 right when released, without me (or probably the Homebrew people) testing it much beforehand. To switch to Xcode 15.2 or earlier versions, I downloaded non-App-Store versions from Apple's Developer Downloads page, unzipped them, added a "-15.x" suffix to their file names (like "Xcode-15.2.app") so they could be installed side by side with the plain Xcode.app, and dropped them in to /Applications. Then I switched my Apple build toolchain to use Xcode 15.2 or 15.1 with Results:
Note: Xcode 15.0.1 is old and unsupported, from Homebrew's viewpoint.
Homebrew's commit history for gcc says it was updated for Xcode 15.2 on 2023-12-09 so I'd think that would work against 15.2; maybe I'm having a different issue with gcc there. GCC breakagegcc failed on Xcode 15.1, with these as the some of the last errors:
Kinda looks like a duplicate header include w/o an include guard issue? Or maybe that first error or two ("attribute only applies..." and "error: expected ';' at end of declaration list") were like syntax problems, and they messed up the rest of the file, causing the subsequent dupe-definition problems or something. Build logs for the failed gcc on Xcode 15.1: 2024-04-08_20-32-23 - gcc fail w Xcode 15.1 - angharad x86_64.zip PlansThink I'll just roll back to Xcode 15.2 or 15.1 for building Octave.app, and wait until the core Homebrew maintainers sort stuff out for Xcode 15.3. If I can get all these building against an older Xcode, anyway. Trying Xcode 15.0.1 next. Core Homebrew will maybe get to fixing these before too long, maybe: whenever any dependency of a formula is updated, the dependent formulas need to be rebuilt, so we won't have to wait for a new version of Qt or GCC themselves. Homebrew doesn't like getting bug reports about build-from-source problems or non-default-prefix installations, but since this is going to affect their own builds too I think, they might appreciate hearing about it in advance. I might try testing this by rebuilding all the packages used by Octave.app with Xcode 15.3 (in my regular Homebrew in the default prefix location, which will allow rebuilding one formula at a time against installed-from-bottle dependencies, so I can test all of them) and drop an "FYI" bug report listing the ones that fail. |
I split the GCC failure out to a separate ticket, since its cause may be different because rolling back to Xcode 15.2 didn't fix that build for me: |
I added a qt-octapp_5.15.11 formula for testing the older Qt 5.15.11. Test results: With Xcode 15.3 Intel: fail; 15.3 As: fail; 15.2 Intel: ok; 15.1 As: ok. That's the same pattern as with the newer Qt 5.15s: broken on Xcode 15.3, ok on earlier versions. That's consistent with the theory that it's incompatible with Xcode 15.3, and my Xcode upgrade is what caused these failures. |
Testing earlier versions:
Note: HTTP 404 for qt 5.14.2; it fell back to 5.14.1. Problem in my formula?
Looks like these older Qt releases - 5.14, 5.13, and 5.12 - are out of support, and Qt has even yanked the downloads from their site. I can't get any of them to build. I'm going to just forget about these and ignore the old versions. And even delete them from our tap repo. |
Looks like the downgrade worked. With Xcode 15.2 and Xcode CLT 15.1, I got a successful build on both Intel and AS. I posted that as 8.4.0 beta3. Considering this closed. Will just continue to use the older Xcode until The core Homebrew builds are fixed. |
Starting in 2024-04, all my builds of Qt 5.15 started failing with compile errors, including the 5.15.12 that I'm pretty sure was previously working and used for the 8.4 alpha and beta builds. It's happening on core qt@5 too, not just the special octapp formulae. Both AS and Intel, latest macOS and Xcode.
This is blocking any further 8.x builds and releases, since Octave 8.x doesn't support Qt 6 and needs Qt 5.
The error looks like a boost-related type error in some qt C++ code. I see the same error in every failed build where I managed to find the error in the logs (amongst all the parallel jobs output interleaving).
TODO
qt_<ver>
formulae and qt-octapp formulae.)References
History
I first noticed this when I got back to doing the 8.4.0 prerelease builds 2024-04-06 after a month or two away. I tried upgrading the qt-octapp_5 formula from 5.15.12 to 5.15.13 (which core qt@5 is on), and it failed with this error. But then I reverted to 5.15.12, and that failed with the same error. And tried the core qt@5 formula, whaddya know, it failed with the same error.
I added a couple more version-specific qt 5.15.x formulae to the octave-app tap for debugging this. qt-octapp_5.15.12 is my old previously-working qt-octapp_5 formula from before I did the upgrade attempt, pulled from git history; qt-octapp_5.15.13 is my attempt at the upgrade, based on matching core qt@5.
I did change my formulae to use system libs instead of qt libs (e.g.
-system-libpng
instead of-qt-libpng
), but that didn't seem to have any effect; it's failing the same way on both.Symptom details
Example longer error from logs:
The text was updated successfully, but these errors were encountered: