You cannot build for i386. Support for that arch was famously removed in macOS 10.15 and those versions of Xcode which use its SDK, probably version 10 or so. Modern fat libs arm64 and x86_64.
Back on Mojave, I downloaded 0.52-2 32 bits and tested the externals, it worked!
I can see it shouldn't, it really makes sense it should build or work, I should have known better and expected a failure and be amazed when it first compiled because it doesn't make sense, but it's happening.
Also, I can't build for arm64...
Anyone can help me solve the mistery?
screenshot to try to prove i'm not crazy
<166152846-b962d8e0-6fc7-461c-a1f0-e8e04c0d9682.png>
enohp ym morf tnes
-----------
Dan Wilcox
I have a fork of pd-lib-builder which supports arm64 & universal builds on macOS. The PR has been sitting for some time but we have been using it successfully for a few projects for some time now:
To build for arm64, you need a new enough Xcode (12.2 I believe) and that's it. You can cross-compile on an x86_64 machine for arm64 and vice-versa.
So, I now have a partition with Catalina (10.15.7) and Xcode 12.4, which is the last version catalina accepts.
Versão do Xcode | Sistema operacional mínimo necessário | SDK | Arquitetura | Destinos de implantação | Simulador | Swift |
---|
Xcode 12.4 | macOS Catalina 10.15.4 (Mac com processador Intel)
macOS Big Sur 11 (Mac com Apple Silicon) | iOS 14.4 macOS 11.1 tvOS 14.3 watchOS 7.2 DriverKit 20.2 | x86_64 armv7 armv7s armv7k arm64 arm64e arm64_32 | iOS 9-14.4 iPadOS 13-14.4 macOS 10.9-11.1 tvOS 9-14.3 watchOS 2-7.2 DriverKit 19-20.2 |
It says it can build for 'arm64' alright, but I tried creating a fat binary for both intel and M1 as I was doing in my monterey partition and didn't succeed. I'm using pd-lib-builder, verdsion 6.0, so I did:
make install objectsdir=../ arch="i386 x86_64" extension=d_fat and that works just fine
but...
make install objectsdir=../ arch="arm64 x86_64" extension=d_fat fails miserably, this is what I get
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/sys/cdefs.h:807:2: error: Unsupported architecture
#error Unsupported architecture
What should I do?
My attempt here is to be able to build a binary for fluidsynth~ that works for a wide range of OSes
thanks
cheers