Rosetta

furiet

Membre émérite
23 Mai 2005
688
8
81
Bonjour
Je voudrais juste savoir comment fonctionne Rosetta : je suppose que c'est lors du chargement d'un programme compilé pour processeur PPC que les instructions PPC lues sur le disque dur sont sur demande du chargeur traduites par l'émulateur une à une et remplacées en mémoire centrale par la séquence équivalente d'instructions Intel ? Il faut donc qu'à la compilation on indique qu'il s'agit d'un programme PPC, indication incluse dans le code compildé et repérée par le chargeur ?
 

Dos Jones

Va modo va molo...
Club MacG
17 Juin 2004
19 591
2 041
67
A pas de loups...
Bonjour
Je voudrais juste savoir comment fonctionne Rosetta : je suppose que c'est lors du chargement d'un programme compilé pour processeur PPC que les instructions PPC lues sur le disque dur sont sur demande du chargeur traduites par l'émulateur une à une et remplacées en mémoire centrale par la séquence équivalente d'instructions Intel ? Il faut donc qu'à la compilation on indique qu'il s'agit d'un programme PPC, indication incluse dans le code compildé et repérée par le chargeur ?
Bonjour,

Je pense que si on utilise Xcode sur une machine à processeur PPC le code résultant sera pour ces machines sans autre choix possibles.

Rosetta ne se contente pas de transformer les instructions mais surtout il repère et adapte les instructions faisant appel à la boîte à outil du Mac. (Human Interface Guideline)

Par contre utiliser Xcode avec une machine à processeur Intel doit permettre la compilation en Universal Binary ou en Intel uniquement… A vérifier…

J'ai pas installé encore Xcode pour Lion afin de voir qu'elles étaient les options de compilations mais je devrais le faire sous peu…

Avant Xcode j'utilisais "CodeWarrior" mais c'est dépassé… :p
 

bompi

El Moderador
Modérateur
Club MacG
12 Février 2004
41 944
3 181
C'est bien le compilateur qui se charge de fabriquer ce qu'il faut. Dans l'entête des fichiers binaires est indiqué la ou les plates-formes pour lesquelles le fichier a été construit (on peut avoir autant d'architectures que nécessaire : PPC, Intel 32 ou Intel 64 par exemple).
Ça vaut autant pour les exécutables que les bibliothèques.

Je pense que les versions de XCode pour Tiger étaient déjà capables de produire du code "gras" (fat binary) sur des machines PPC autant que Intel, puisque justement l'OS était déjà bi-plateforme. Pour Leopard même chose.
 
Dernière édition: