[Help] Problème d’alignement avec fstat d’ixemul
5 sujets de 1 à 5 (sur un total de 5)
-
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
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.
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
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