[Help] Problème d’alignement avec fstat d’ixemul

5 sujets de 1 à 5 (sur un total de 5)

  • Rmais96

      #2161

      Bonjour,

      Je rencontre des problèmes d’alignement avec la fonction fstat de la

      librairie ixemul (ixemul.library V49.18 [notrap, 604e, morphos] du

      02/03/2005).

      J’ai testé un programme simple. Tout va bien tant que j’utilise la fonction

      fstat de la librairie libnix (option de compilation -noixemul), mais cela

      ne va plus et la structure stat est systématiquement mal remplie (problème

      d’alignement ?) avec la librairie ixemul.

      Le commentaire et le code suivant, tiré du fichier sys/stat.h me laisse

      perplexe :

      […]

      /* ixemul needs 2 bytes alignment for compatibility, libnix doesn’t. */

      #ifdef ixemul

      #pragma pack(2)

      #endif

      […]

      En tout cas, cela ne semble pas suffir à assurer le bon fonctionnement

      de la librairie ixemul.

      Un programme de test mettant en lumière le problème est téléchargeable

      ici :

      http://cgenre.dev.free.fr/libc-fstat-test.lha

      Si l’un de vous peut m’éclairer sur ce problème, cela me permettrait

      de comprendre dans quelle mesure la librairie ixemul est en cause et

      les conséquences pour le portage d’applications venant du monde

      Unix.

      Merci d’avance.

      Rmais96

      henes

        #43177

        Ton makefile a un problème car il crée un binaire ixemul en utilisant les includes libnix.

        Les includes ixemul sont dans gg:include/ et les includes libnix sont dans gg:includestd/

        Je te l’avais déjà signalé dans ce thread : https://www.amigaimpact.org/modules/newbb/viewtopic.php?topic_id=1023&forum=2#forumpost16904 ;-)

        On peut facilement éviter ce genre de problème en utilisant uniquement le frontend gcc qui choisi automatiquement les bons includes et libs suivant l’utilisation de -noixemul et -ixemul.

        Par ailleurs, il ne vaut mieux pas faire un seul appel système (exec, dos, intuition, etc) dans une appli ixemul car cela n’est pas du tout prévu.

        Par exemple, un simple ctrl-c au mauvais moment va mettre par terre l’OS entier (il suffit d’imaginer que le programme ixemul se trouve à exécuter du code d’exec qui a aquis une resource interne) et il existe beaucoup d’autres cas similaires.

        Rmais96

          #43178

          Tiens, je ne savais pas que les includes étaient différents pour les

          deux librarires.

          Dans le répertoire gg:include je ne trouve rien d’autre qu’un sous

          répertoire “g++-3” contenant les includes de la librairies standard

          C++. Aucune trace des includes de la libc.

          J’ai pourtant installé le SDK complet. Aurais-je oublié d’installé

          quelque chose ?

          Je vais essayer d’utiliser gcc au lieu de g++.

          Merci.

          Rmais96

          henes

            #43179

            Les includes ixemul sont dans ixemul-dev.tgz qui est dans mossdk_devenv.lha

            Tu n’as pas utilisé le script d’installation ? Il se charge de tout mettre en place correctement (sauf sed qu’il faut installer à la main).

            Rmais96

              #43180

              Plus de problème avec les bons includes.

              Je ne comprends pas pourquoi l’installation du SDK a manqué cela.

              Peut-être que la première version du SDK avait un problème.

              Merci pour ton aide, je vais corriger mon makefile.

              A plus.

              Rmais96

            5 sujets de 1 à 5 (sur un total de 5)

            • Vous devez être connecté pour répondre à ce sujet.

            Forums AmigaOS, MorphOS et AROS Développement [Help] Problème d’alignement avec fstat d’ixemul

            Amiga Impact