1

Bon, suite à mon précédent message j'ai décidé de d'abord me préparer un environnement de travail (sans utiliser minigp).

Comme j'avais déjà une install récente de cygwin dont je me sers souvent je tente d'y intégrer la version arm de gcc.

il s'agit de arm-elf-gcc 3.2.2 récupéré ici http://sourceforge.net/project/showfiles.php?group_id=58162

J'ai copié les libraries du sdk (celle trouvées sur le site de darkfader), compilé gpstart.c.
Pas de problème en ce qui concerne les includes.
C'est au linkage que ça foire ! Les librairies du sdk sont dans $LIBPATH

Le l'invoque de cette manière :
arm-elf-gcc -nostartfiles -nostdlib -o gpmain.elf gpmain.o $LIBPATH/gpstart.o -L $LIBPATH -lc -lgpstdlib -lgpos -lgpgraphic -lgpstdio -lgpsound -lgpmem -lgpfont

Au linkage j'ai deux types d'erreurs :
- certains points d'entrées n'existent pas dans les libraires gamepark (undefined reference to `GpRectFill16')
- les fonctions des librairies standard sont manquantes

Normalement le flag -lc devrait utiliser le fichier libc.a se trouvant dans $LIBPATH
Quant a GpRectFill16 je suppose qu'il doit se trouver dans le fichier gpgraphic16.a mais ce fichier n'existe que dans le sdk pour arm

Bref je suis paumé !!! Un peu d'aide serait la bienvenue !

2

Bon j'ai avancé (un peu). En virant les libc et libm qui étaient sur le site de darkfader et en utilisant de qui étaient avec gcc-arm le linkage passe mieux.
J'ai également remplacé crt0.o qui était avec le compilo par celui du sdk.
J'en suis à ces erreurs :

/usr/local/lib/gcc-lib/arm-elf/3.2.2/../../../../arm-elf/lib/crt0.o: In function
`_start':
/usr/local/lib/gcc-lib/arm-elf/3.2.2/../../../../arm-elf/lib/crt0.o(.text+0x4):
undefined reference to `__text_start'
/usr/local/lib/gcc-lib/arm-elf/3.2.2/../../../../arm-elf/lib/crt0.o: In function
`_roe':
/usr/local/lib/gcc-lib/arm-elf/3.2.2/../../../../arm-elf/lib/crt0.o(.text+0x8):
undefined reference to `__ro_end'
/usr/local/lib/gcc-lib/arm-elf/3.2.2/../../../../arm-elf/lib/crt0.o: In function
`_rws':
/usr/local/lib/gcc-lib/arm-elf/3.2.2/../../../../arm-elf/lib/crt0.o(.text+0x10):
undefined reference to `__bss_end'
/usr/local/lib/gcc-lib/arm-elf/3.2.2/../../../../arm-elf/lib/crt0.o: In function
`_zie':
/usr/local/lib/gcc-lib/arm-elf/3.2.2/../../../../arm-elf/lib/crt0.o(.text+0x18):
undefined reference to `__bss_end'

Si j'utilise le fichier crt0.o de minigp j'en obtient que deux...

J'invoque gcc maintenant de cette manière :

arm-elf-gcc -c gpmain.c -mtune=arm920 -c -I../../include/
arm-elf-gcc -o gpmain.elf gpmain.o $LIBRARY_PATH/gpstart.o -L $LIBRARY_PATH -lgpstdlib -lgpos -lgpgraphic -lgpstdio -lgpsound -lgpmem -lgpfont

Bon, un dernier effort et j'y suis ! Un peu d'aide ...