lundi 31 décembre 2007

Compiler un "fat binary" sur un iMac Intel sous Léopard

J'en parlais déjà il y a quelques mois, mais avec la sortie de Mac OS X Léopard, voici à nouveau un petit exemple de comment créer un "fat binary" c'est à dire un fichier qui comprend les exécutables pour plusieurs architectures.

En l'occurence je compile le petit programme hello.c et je regarde quelle sorte de résultat j'obtiens:

[pierre@albert] 16:30 /Users/pierre/Documents/source>gcc -arch i386 -arch ppc -arch ppc64 hello.c
[pierre@albert] 16:30 /Users/pierre/Documents/source>file a.out
a.out: Mach-O universal binary with 3 architectures
a.out (for architecture i386): Mach-O executable i386
a.out (for architecture ppc7400): Mach-O executable ppc
a.out (for architecture ppc64): Mach-O 64-bit executable ppc64
[pierre@albert] 16:30 /Users/pierre/Documents/source>

C'est donc un fichier qui comporte les exécutables pour trois architectures: Intel, PowerPC 32-bits et PowerPC 64-bits.

En fait dans le cas de Mac OS X les "fat binaries" sont une des fonctionnalités des exécutables Mach-O.

(Ceci a été effectué sur Mac OS X Léopard sur une machine Intel)

Ah oui le terme officiel d'Apple est "Universal Binary"

Aucun commentaire: