6 ms·
Sadly, this is a big problem. But, Rosetta is incredible. My solution for now: build only on Intel based Macs and use the binaries everywhere, with Rosetta wh
by xrd 3y ago
Sadly, this is a big problem.
But, Rosetta is incredible.
My solution for now: build only on Intel based Macs and use the binaries everywhere, with Rosetta when needed.
I've had lots of errors running all kinds of builds with "error, arm64 code..." it's not a solved problem by a long shot.
Until the prevalence of M1/M2 is overwhelming, I'm just going to stick with Intel builds.
- olliej 3y ago"I'm going to produce software that runs slower and uses more power, I'm sure users will love this"?
- xrd 3y agoI agree it isn't optimal. But, Apple is asking all their downstream library authors to migrate to a new platform and support the old one (via "universal binaries"). It just isn't feasible or practical for app developers nor for the library authors, especially when those authors are providing free and open source libraries. I wouldn't have imagined it possible, but we are shipping a x86 binary that uses a lot of open source libraries, that do video compression and decompression. And, Rosetta is incredible and the performance is amazing despite it all being x86. The M1 is a feat of engineering and Rosetta is an incredible and unexpected part of that marvel.
- saagarjha 3y agoIt's not feasible or practical for them to recompile their code?
- CaliforniaKarl 3y agoAs the article shows, it’s not as simple as changing a command-line option.
- dee-bee 3y agoThis seems to be an artifact of using Qt Creator. Generally speaking it is just a matter of running the same compilation steps with different targets (so long as you don't have arch-specific stuff in there like reliance on aliasing behavior or specialized simd, of course). Qt uses just about the most complicated build process I've seen outside of Xcode/objective-c++. I'm curious to compare what the GTK build process looks like as a universal binary; I think RawTherapee has done it.
- dee-bee 3y agoI meant "alignment" there not "aliasing" but the point is the same.
- nomel 3y agoI can't compile my code until a downstream library compiles their code. They can't compile their code until a downstream library, they depend on, compiles their code. It all has to happen before any of it can happen. It eventually will, but we'll have to be patient, as is always the case with global changes.
- saagarjha 3y agoIf the library is open source, you can be the person who does that :)
- tetete 3y agoOr you could feed your kids. A small team can not maintain that much and if it is not your core business you should probably not try.
- saagarjha 3y agoHow is a library you depend on not your core business? If they don't support things you want, then this sounds like your problem.
- nomel 3y agoThe SSL library is nobody's core business, yet every business depends on it. Most libraries are just infrastructure, way down, that we build stuff on. Core business has a specific meaning: > the business activity that is main source of a company's profits and success Maintaining libraries is not the core business of those that use those libraries, most of the time. That's why people use libraries.
- fiddlerwoaroof 3y agoThis is it an either/or: you can find the problem libraries and submit the work back upstream so you don’t have to maintain it. Then, for the upstream that don’t cooperate, fork temporarily until you find an alternative.
- solarkraft 3y agoWell, yeah. That has been the trade-off forever. You get whatever is reasonably easy to make. Over all users seem to prefer something over nothing when it comes to software. This isn't the quality standard I have, but a lot of devs do and I find it pretty understandable considering the required trade-offs.
- iforgotpassword 3y agoGive me a GitHub action template that builds universal Qt binaries for Mac given an existing cmake-based build workflow and I'll consider it. Until then, it was already enough work piecing things together for a regular Intel app-bundle because every howto you'd find does things differently and none of them are a perfect match to your setup. Even windows was easy compared to that...
- tinus_hn 3y agoWatch me act all surprised when the transition is complete and Apple stops supporting Rosetta 2! They only did it once before with Rosetta 1!
- j45 3y agoWhile it it might not fit for all or even most use cases is something like Flutter a possible solution for a cross platform Binary?
- j45 3y agoI am interested in any comparisons between qt and flutter as the grass seems greener on the qt side, but we know what makes it greener.