Universal Binary - architecture probleme de parametrage

oashoash Membre
05:55 modifié dans API AppKit #1
Bonjour,

A la recherche d'info sur les compilation UB et  suite d'une réponse de Shlum trouvé sur le sujet, j'ai fait un "lipo -detailed_info" curieux sur mon application.

j'ai ça:

architecture i386
    cputype CPU_TYPE_I386
    cpusubtype CPU_SUBTYPE_I386_ALL
    offset 4096
    size 216408
    align 2^12 (4096)
architecture ppc7400
    cputype CPU_TYPE_POWERPC
    cpusubtype CPU_SUBTYPE_POWERPC_7400
    offset 221184
    size 253380
    align 2^12 (4096)

Lorsque je fait la meme chose pour iTunes, comme dans l'exemple du forum, je trouve :

architecture ppc
    cputype CPU_TYPE_POWERPC
    cpusubtype CPU_SUBTYPE_POWERPC_ALL
    offset 4096
    size 12898768
    align 2^12 (4096)
architecture i386
    cputype CPU_TYPE_I386
    cpusubtype CPU_SUBTYPE_I386_ALL
    offset 12906496
    size 12692208
    align 2^12 (4096)

dans XCode, j'ai i386 ppc ppc64 ppc7400 ppc970 x86_64 dans Valid Architectures.

Est-ce que le fait que seul le ppc7400 apparaisse peut créer un bogue sur, par exemple un ppc970
Comment puis-je paramètrer pour avoir ppc - POWERPC_ALL ?

Merci.


Réponses

  • schlumschlum Membre
    05:55 modifié #2
    Il me semble que 7400 c'est PPC 32 bits (G3, G4) et 970 c'est PPC 64 bits (G5)

    Maintenant, avec du 7400 ça tournera sur les G5 aussi... Une version 970 permettra juste d'optimiser certains calculs précis que tu n'utilises probablement pas dans ton application.
  • oashoash Membre
    05:55 modifié #3
    Merci Schlum.

    Mes testeurs m'ayant rapporté que l'appli tourne sur les Intels mais pose problème sur iMac G5, j'en suis arrivé à  poser la question précédente. Après quelques fignolages, il semble qu'elle tourne sur certain G5 et pas sur d'autres...

    J'avoue ne pas comprendre les mécanismes des processeurs.
    A tout hasard et toujours curieux, j'ai changé les paramètres dans XCode sur 32/64.
    Mon appli s'est mise à  planter sur mon macbook... à  l'endroit ou elle plante sur ppc !

    Apres retour au parametrage pour 32 bits, l'appli tourne bien.

    J'ai essayé de comprendre la doc d'apple correspondant aux différence d'architecture mais j'avoue patauger un peu (et même un peu plus).

    Sachant qu'au niveau du problème il y a un chargement de View contenant une table utilisant des polices embarquées, est-ce normal (cà d est-ce que ce type de chose peut changer le comportement de l'appli selon l'architecture ?)
  • NoNo Membre
    05:55 modifié #4
    Pourrais tu nous montrer la log du crash ?

    Concernant les différences selon le processeur, elle sont essentiellement entre intel VS ppc (et rarement -pour ne pas dire jamais- entre 2 proc de même modèle mais de sous-type différent).

    Les cas classiques entre intel et ppc est le traitement de l'endianness, mais il ne faut pas aussi oublier la division par 0 (qui est une exception crashisante sous intel et pas sous ppc).
  • oashoash Membre
    05:55 modifié #5
    Dans la pratique ça ne crache pas.
    Il y a une NSView qui doit remplacer une autre dans une NSBox.

    Sur Intel (avec parametrage pour 32 bits) ça tourne et sur PPC (32 ou 64) (ou Intel avec parametrage 64), la vue ne monte pas et donc je ne peux pas continuer car on attends une action sur la vue manquante...

    Donc je n'ai pas de log. Le debuggeur considere que tout est OK.
  • NoNo Membre
    05:55 modifié #6
    dans 1242055433:

    Dans la pratique ça ne crache pas.
    Il y a une NSView qui doit remplacer une autre dans une NSBox.

    Sur Intel (avec parametrage pour 32 bits) ça tourne et sur PPC (32 ou 64) (ou Intel avec parametrage 64), la vue ne monte pas et donc je ne peux pas continuer car on attends une action sur la vue manquante...

    Donc je n'ai pas de log. Le debuggeur considere que tout est OK.


    Essaie de nous faire un mini-projet qui reproduit le problème.
    J'ai 2 mac, l'un ppc (G5) et l'autre intel.
  • oashoash Membre
    mai 2009 modifié #7
    Je continue d'expérimenter des problemes avec les versions ppc.
    Pour intel, pas de probleme ni dans XCode ni sur les ordi cibles.

    Pour ppc, plusieurs problemes que je ne comprends pas:

    1. sur Macbook intel - compilation pour 32/ bits:
    pas de probleme.

    2. sur Macbook intel - compilation pour 32/64 bits:

    le jeu n'avance pas (il s'arrete à  un endroit) et la console me renvoie :

    [tt]warning: Error while reading dyld shared cache region 62439 of 83886080

    warning: Couldn't find minimal symbol for "_sigtramp" - backtraces may be unreliable
    (gdb)[/tt]

    Si je met un breakpoint pour essayer de trouver ce qui bloque, le programme ne se bloque pas...


    3. sur iMac G5

    le programme se bloque au même point que lors de la compilation pour 32/64
    La console renvoie:
    [tt]

    17/05/09 14:56:47 BXBeta[54289] Error loading /Library/InputManagers/LiveDictInputManager.inputManager/LiveDictInputManagerLoader.bundle/Contents/MacOS/LiveDictInputManagerLoader:  dlopen(/Library/InputManagers/LiveDictInputManager.inputManager/LiveDictInputManagerLoader.bundle/Contents/MacOS/LiveDictInputManagerLoader, 265): no suitable image found.  Did find:
    /Library/InputManagers/LiveDictInputManager.inputManager/LiveDictInputManagerLoader.bundle/Contents/MacOS/LiveDictInputManagerLoader: GC capability mismatch
    17/05/09 14:56:47 BXBeta[54289] Error loading /Library/InputManagers/Safari AdBlock/Safari AdBlock.bundle/Contents/MacOS/Safari AdBlock:  dlopen(/Library/InputManagers/Safari AdBlock/Safari AdBlock.bundle/Contents/MacOS/Safari AdBlock, 265): no suitable image found.  Did find:
    /Library/InputManagers/Safari AdBlock/Safari AdBlock.bundle/Contents/MacOS/Safari AdBlock: GC capability mismatch
    17/05/09 14:56:47 BXBeta[54289] Error loading /Library/InputManagers/RapidoWrite/RapidoWrite.bundle/Contents/MacOS/RapidoWrite:  dlopen(/Library/InputManagers/RapidoWrite/RapidoWrite.bundle/Contents/MacOS/RapidoWrite, 265): no suitable image found.  Did find:
    /Library/InputManagers/RapidoWrite/RapidoWrite.bundle/Contents/MacOS/RapidoWrite: GC capability mismatch
    17/05/09 14:56:47 BXBeta[54289] Error loading /Library/InputManagers/TabExpose/TabExpose.bundle/Contents/MacOS/TabExpose:  dlopen(/Library/InputManagers/TabExpose/TabExpose.bundle/Contents/MacOS/TabExpose, 265): no suitable image found.  Did find:
    /Library/InputManagers/TabExpose/TabExpose.bundle/Contents/MacOS/TabExpose: GC capability mismatch
    17/05/09 14:56:47 BXBeta[54289] Error loading /Library/InputManagers/CosmoPod/CosmoPod.bundle/Contents/MacOS/CosmoPod:  dlopen(/Library/InputManagers/CosmoPod/CosmoPod.bundle/Contents/MacOS/CosmoPod, 265): no suitable image found.  Did find:
    /Library/InputManagers/CosmoPod/CosmoPod.bundle/Contents/MacOS/CosmoPod: GC capability mismatch
    17/05/09 14:56:47 BXBeta[54289] Error loading /Library/InputManagers/SafariBlock/SafariBlock.bundle/Contents/MacOS/SafariBlock:  dlopen(/Library/InputManagers/SafariBlock/SafariBlock.bundle/Contents/MacOS/SafariBlock, 265): no suitable image found.  Did find:
    /Library/InputManagers/SafariBlock/SafariBlock.bundle/Contents/MacOS/SafariBlock: GC capability mismatch 
    17/05/09 14:56:58 com.apple.launchd[74] ([0x0-0x370370].com.ODOTASH.BXBeta[54289]) Exited abnormally: Bus error
    [/tt]

    De ce que j'ai pou trouver a droite et a gauche, je n'ai pas réussi à  comprendre ni le dyld, ni le
    _sigtramp. Savez vous ou je peux trouver des infos ?
    merci.
Connectez-vous ou Inscrivez-vous pour répondre.