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:
https://github.com/pure-data/pd-lib-builder/pull/69 https://github.com/pure-data/pd-lib-builder/pull/69
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.
On Mar 10, 2022, at 11:30 PM, pd-dev-request@lists.iem.at wrote:
Message: 2 Date: Thu, 10 Mar 2022 17:57:23 -0300 From: Alexandre Torres Porres <porres@gmail.com mailto:porres@gmail.com> To: Sebastian Shader <sebfumaster@aol.com mailto:sebfumaster@aol.com> Cc: "pd-dev@lists.iem.at mailto:pd-dev@lists.iem.at" <pd-dev@lists.iem.at mailto:pd-dev@lists.iem.at> Subject: Re: [PD-dev] [PD] how to compile externals for apple silicon? Message-ID: <CAEAsFmiUpgiieWwpvM11eyY6kE6bdGiWFqFa8pbvPBjtuaoc4w@mail.gmail.com mailto:CAEAsFmiUpgiieWwpvM11eyY6kE6bdGiWFqFa8pbvPBjtuaoc4w@mail.gmail.com> Content-Type: text/plain; charset="utf-8"
I guess I can install catalina on a partition, but I was hoping to use pdlibbuilder in an easy way, is it possible?
-------- Dan Wilcox @danomatika http://twitter.com/danomatika danomatika.com http://danomatika.com/ robotcowboy.com http://robotcowboy.com/
On 3/10/22 23:57, Dan Wilcox wrote:
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:
note that the merit of the PR is mainly in autodetecting which architectures the current compiler might support.
if you know that your compiler supports both amd64 (aka M1) and x86_64 (aka intel), you can simply call make with your target architectures, using the normal pd-lib-builder.
e.g. for building universal binaries, use:
``` make arch="arm64 x86_64" ```
mgfdsf IOhannes
Em qui., 10 de mar. de 2022 às 19:57, Dan Wilcox danomatika@gmail.com escreveu:
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:
https://github.com/pure-data/pd-lib-builder/pull/69
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.
According to https://developer.apple.com/pt/support/xcode/ I believe 12.1 could have been possible already. 12.5 needs Big Sur. Here's a table from the link
Versão do XcodeSistema operacional mínimo necessárioSDKArquiteturaDestinos de implantaçãoSimuladorSwift
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
On Mar 10, 2022, at 11:30 PM, pd-dev-request@lists.iem.at wrote:
Message: 2 Date: Thu, 10 Mar 2022 17:57:23 -0300 From: Alexandre Torres Porres porres@gmail.com To: Sebastian Shader sebfumaster@aol.com Cc: "pd-dev@lists.iem.at" pd-dev@lists.iem.at Subject: Re: [PD-dev] [PD] how to compile externals for apple silicon? Message-ID: CAEAsFmiUpgiieWwpvM11eyY6kE6bdGiWFqFa8pbvPBjtuaoc4w@mail.gmail.com Content-Type: text/plain; charset="utf-8"
I guess I can install catalina on a partition, but I was hoping to use pdlibbuilder in an easy way, is it possible?
Dan Wilcox @danomatika http://twitter.com/danomatika danomatika.com robotcowboy.com
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.
enohp ym morf tnes ----------- Dan Wilcox danomatika.com robotcowboy.com
On May 1, 2022, at 2:51 AM, Alexandre Torres Porres porres@gmail.com wrote:
Em qui., 10 de mar. de 2022 às 19:57, Dan Wilcox danomatika@gmail.com escreveu: 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:
https://github.com/pure-data/pd-lib-builder/pull/69
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.
According to https://developer.apple.com/pt/support/xcode/ I believe 12.1 could have been possible already. 12.5 needs Big Sur. Here's a table from the link
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
On Mar 10, 2022, at 11:30 PM, pd-dev-request@lists.iem.at wrote:
Message: 2 Date: Thu, 10 Mar 2022 17:57:23 -0300 From: Alexandre Torres Porres porres@gmail.com To: Sebastian Shader sebfumaster@aol.com Cc: "pd-dev@lists.iem.at" pd-dev@lists.iem.at Subject: Re: [PD-dev] [PD] how to compile externals for apple silicon? Message-ID: CAEAsFmiUpgiieWwpvM11eyY6kE6bdGiWFqFa8pbvPBjtuaoc4w@mail.gmail.com Content-Type: text/plain; charset="utf-8"
I guess I can install catalina on a partition, but I was hoping to use pdlibbuilder in an easy way, is it possible?
Dan Wilcox @danomatika danomatika.com robotcowboy.com
On 5/1/22 09:42, Dan Wilcox wrote
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.
just to add a bit of confusion...
technically, i think there's no difference between a "modern" and a "legacy" fat lib: it's a file format that can contain multiple architectures. there's absolutely nothing keeping you from having a fat binary that contains arm64, x86_64, i386 and ppc.
the only obstacle is, that there is no compiler that can create binaries for all of these architectures. but you can create the binaries on multiple systems (different macOS/OSX versions; different Xcode installations) and then use 'lipo' to merge the different single-arch binaries into a single fat one.
gmdsa IOhannes