Universal binaries désignait à l’origine, lors du changement de processeur Apple Mac en 2005, une application qui pouvait s’exécuter nativement sur les processeurs PowerPC et Intel .
À l’occasion de l’annonce du passage d’Intel vers Apple Silicon au WWDC 2020, cette notion refait surface en qualifiant une application dont les fichiers binaires comportent deux fragments, un pour chaque type de processeur. MacOS détermine si une application est en universal binaries grâce à son en-tête. Lorsque le système lance une application en universal binaries, il choisit le bon fragment du binaire et l’exécute. Cette approche doit être différenciée d’une application fonctionnant avec Rosetta 2, qui reste une application Intel, mais dont le code est traduit avant d’être exécuté par les processeurs Apple Silicon (on parle d’une émulation Intel).
À partir de sa version 1.10.2.0 l’application Oremia sera proposée en universal binaries via sa nouvelle branche b4. Voyons maintenant les avantages et les inconvénients d’une telle compilation.
Avantages :
- Un gain en rapidité sur un Mac M1 ou M2 par l’utilisation du code natif ARM sans avoir recours à Rosetta 2
- Pérennité, car seule une application native ARM pourra fonctionner sur un Mac M1 ou M2 lorsque Apple abandonnera Rosetta 2
- Une même application peut fonctionner de manière native sur un Mac à processeurs Intel ou Apple Silicon
Inconvénients :
- L’application est plus lourde, donc plus longue à charger en ligne, avec des vérifications de sécurité plus longues à effectuer par macOS lors du premier lancement
- L’application ne peut utiliser que des librairies compilées en Universal binaries (*)(**)
(*) L’application Vidal Expert et ses librairies n’existant pour l’instant qu’en version Intel, il sera impossible de faire fonctionner ce logiciel avec Oremia 1.10.2.x b4. Les utilisateurs de Vidal Expert devront donc rester sur la branche b3 avec Oremia 1.10.2.x b3.
(**) Les FSV (fournitures SESAM-Vitale) sont d’ores et déjà disponibles en universal binairies.