2010-12-07 5 views
1

Quand je lance otool -favh some/library.so il y a les champs suivants:Signification de otool champ « caps »

Mach header 
     magic cputype cpusubtype caps filetype ncmds sizeofcmds  flags 
MH_MAGIC_64 X86_64  ALL LIB64  EXECUTE 12  1552 NOUNDEFS DYLDLINK TWOLEVEL 
  • Quelle est la signification de la colonne « caps »?
  • La colonne des majuscules serait-elle différente provoquant des échecs de liaison?

Répondre

2

Bonne question. Pas documenté nulle part, semble-t-il. Merci à open-source, cependant, la réponse était disponible dans le code source pour otools, de sorte que vous pouvez regarder là-bas si vous avez besoin de plus d'informations.

Le champ représente les bits de capacité de la CPU (c'est-à-dire cpusubtype & CPU_SUBTYPE_MASK). C'est donc un sous-ensemble du domaine cpusubtype, je suppose, pour rendre cette information plus facilement disponible. C'est quelque chose que le (s) programmeur (s) otools a mis (nt), et qui ne fait pas partie de l'en-tête Mach-O.


Est-ce que la colonne bouchons étant différentes provoquent des échecs de liaison?

Je ne sais pas si je reçois votre question ici, reliant quoi exactement? Avoir deux bibliothèques compilées pour différents processeurs (donc éventuellement avec différents champs "majuscules") et essayer de les lier ensemble pourrait bien être un problème, évidemment. Je serais plus concerné par le champ "cputype" à cet égard, cependant. Il vous donnera probablement un indice si vous liez le code x86 avec le code ARM (plus que le champ "caps", je suppose).

En général, je ne me concentrerais pas trop sur un domaine que personne ne se soucie de mentionner dans aucune documentation, à moins que votre situation particulière ne l'exige.

+0

Merci! Cela rend le nom aussi logique. – James