Re: Sharing patch with externals on MacOS

João Pais <[email protected]> Sun, 12 Apr 2026 21:36:40 +0200
Newsgroups gmane.comp.multimedia.puredata.general
Message-ID <[email protected]>
I am forcing rosetta, but that is because in my experience, pdmax (which 
I before wrongly called pd~) only runs in rosetta in the latest M 
processors. Or then the wrong architecture error appears. If not for 
that it would be great to avoid it, yes.


That is anyway a general issue, to update pdmax so that it runs on 
modern processors. I imagine Miller won't be putting this on the top 
priority on his own, and probably not many people use this.

>> lipo -remove arm64 [remove the need to activate rosetta when running 
>> the standalone with pd~]
>
> are you sure about that?
>
> my impression was, that *rosetta* is a run-time emulation of a 
> different CPU. e.g. if you have a i386 CPU but your old binary is 
> PowerPC only, then rosetta will translate the PowerPC instructions to 
> i386 on-the-fly.
> (that's obviously a historic example; these days you typically have 
> rosetta2 for amd64-only binaries that need to run on arm64 CPUs; but 
> the names are easier to read in the historic example).
>
> now, *fat* binaries are something different.
> a fat binary for both PowerPC *and* i386 will contain the native 
> instructions for both PowerPC and i386.
> so when opening the file on your shiny new i386, you do not need 
> rosetta at all, because the i386 instructions are already there.
> and if you open the same binary on the PowerPC, you also have the 
> native instructions.
> fat binaries are not limited to certain architectures. theoretically 
> you can have a fat binary for powerpc, i386, amd64 and arm64, wihch 
> will run - without rosetta - on any Apple that was sold in the last 25 
> years.
>
> TL;DR fat binaries are a way to provide binaries that are executable 
> natively on multiple CPU families. conversely, rosetta(2) is a system 
> that allows you to run a binary for a different CPU on your system.
> fat binaries take more space (files for a 2-arch fat binary are about 
> twice the size as a single-arch binary). rosetta takes more CPU-cycles 
> (emulating a different CPU-architecture is rather costy).
>
> so when you issue
> ```
> lipo -remove arm64
> ```
> then you are effectively removing the native instructions for arm64 
> from your binary.
>
> assuming that your target audience has recentish Apple machines (which 
> all come with arm64 processors), then you are effectively *forcing* 
> rosetta on them.
>
> (and it seems that Apple started to fade out rosetta(2), targetting 
> "late 2027" for a complete removal)
>
>
> fmdsar
> IOhannes
>
> ---
> [email protected] - the Pure Data mailinglist
> https://lists.iem.at/hyperkitty/list/[email protected]/message/D4RKUMX27JPDXDYEPQK6HAOBDIT76GY5/
>
> To unsubscribe send an email [email protected] mailing list
> UNSUBSCRIBE and account-management ->https://lists.iem.at/

-- 
Audre-Lorde-Straße 26
10997 Berlin (Deutschland)
Tel +49 30 74921288 | Mob +49 176 98476769
[email protected]

---
[email protected] - the Pure Data mailinglist
https://lists.iem.at/hyperkitty/list/[email protected]/message/WWMQJXTUILRTR557RWBLQLCKXQEL46QC/

To unsubscribe send an email to [email protected] mailing list
UNSUBSCRIBE and account-management -> https://lists.iem.at/