Obligement - L'Amiga au maximum

Mardi 08 juillet 2025 - 09:58  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

Actualité (récente)
Actualité (archive)
Comparatifs
Dossiers
Entrevues
Matériel (tests)
Matériel (bidouilles)
Points de vue
En pratique
Programmation
Reportages
Quizz
Tests de jeux
Tests de logiciels
Tests de compilations
Trucs et astuces
Articles divers

Articles in English


Réseaux sociaux

Suivez-nous sur X




Liste des jeux Amiga

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z,
ALL


Trucs et astuces

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Glossaire

0, A, B, C, D, E, F,
G, H, I, J, K, L, M,
N, O, P, Q, R, S, T,
U, V, W, X, Y, Z


Galeries

Menu des galeries

BD d'Amiga Spécial
Caricatures Dudai
Caricatures Jet d'ail
Diagrammes de Jay Miner
Images insolites
Fin de jeux (de A à E)
Fin de Jeux (de F à O)
Fin de jeux (de P à Z)
Galerie de Mike Dafunk
Logos d'Obligement
Pubs pour matériels
Systèmes d'exploitation
Trombinoscope Alchimie 7
Vidéos


Téléchargement

Documents
Jeux
Logiciels
Magazines
Divers


Liens

Associations
Jeux
Logiciels
Matériel
Magazines et médias
Pages personnelles
Réparateurs
Revendeurs
Scène démo
Sites de téléchargement
Divers


Partenaires

Annuaire Amiga

Amedia Computer

Relec


A Propos

A propos d'Obligement

A Propos


Contact

David Brunet

Courriel

 


En pratique : Utiliser vbcc en tant que compilateur croisé Amiga sur Linux
(Article écrit par Andrew Hutchings et extrait de linuxjedi.co.uk - février 2021)


Pendant un temps, j'utilisais GCC comme compilateur croisé pour écrire des logiciels Amiga. C'était un domaine familier pour moi, ayant utilisé GCC pour des applications Linux pendant de nombreuses années. Malheureusement, j'ai rencontré un bogue très étrange qui semble lié à la sortie du compilateur. J'ai donc décidé qu'il était temps de changer, en utilisant un compilateur conçu pour la compilation croisée Amiga.

Le bogue

J'ai développé une application graphique permettant de flasher des ROM Kickstart sur une carte dédiée. Elle fait partie du projet Kickstart Flash 68000 Relocator. Le développement du logiciel a été un peu compliqué, car il a fallu le rendre compatible avec le Workbench 1.3. Lors de tests, j'ai constaté que, si l'application fonctionnait parfaitement avec les Workbench 2.0 et 3.1, elle plantait immédiatement la machine sous 1.3 si elle était exécutée via une icône. Le chargement via le Shell fonctionnait parfaitement.

vbcc
Voir la vidéo sur YouTube

J'ai passé quelques heures à essayer de comprendre ce qui se passe et j'ai discuté avec des personnes qui travaillent sur Amiga depuis bien plus longtemps que moi. Nous avons conclu qu'il s'agissait d'un problème dans le code de démarrage généré par le compilateur croisé. J'ai donc décidé de changer de compilateur pour un compilateur conçu pour Amiga : vbcc.

Installation

Lors de l'installation du compilateur Amiga GCC, vbcc est également installé automatiquement. Cela m'a donné une base de départ pour ce qui était nécessaire. Deux autres éléments sont nécessaires :
  • La cible du compilateur kick13, vers le bas de cette page.
  • AmigaOS NDK 1.3 (recherchez "ndk13.lha" en ligne).
Ces éléments peuvent être extraits n'importe où. Je les ai extraits dans "/opt/amiga/vbcc" et déplacés selon la structure de répertoire ci-dessous :

vbcc
vbcc
vbcc
vbcc
Réglage

vbcc utilise des fichiers de configuration sélectionnés à la compilation pour définir toutes les options et chemins du compilateur. La cible kick13 en possède quelques-uns, mais ils sont conçus pour fonctionner directement sur Amiga. Le plus important est "/opt/amiga/vbcc/config/kick13" et je l'ai modifié pour qu'il ressemble à ceci afin de corriger les chemins :

-cc=vbccm68k -quiet -hunkdebug %s -o= %s %s -O=%ld -no-cpp-warn -I/opt/amiga/vbcc/targets/m68k-kick13/include/ -I/opt/amiga/vbcc/include/ndk13/
-ccv=vbccm68k -hunkdebug %s -o= %s %s -O=%ld -no-cpp-warn -I/opt/amiga/vbcc/targets/m68k-kick13/include/ -I/opt/amiga/vbcc/include/ndk13/
-as=vasmm68k_mot -quiet -Fhunk -kick1hunks -nowarn=62 %s -o %s
-asv=vasmm68k_mot -Fhunk -kick1hunks -nowarn=62 %s -o %s
-rm=rm %s
-rmv=rm %s
-ld=vlink -bamigahunk -x -Bstatic -Cvbcc -nostdlib -Z -mrel /opt/amiga/vbcc/targets/m68k-kick13/lib/startup.o %s %s -L/opt/amiga/vbcc/targets/m68k-kick13/lib -lvc -o %s
-l2=vlink -bamigahunk -x -Bstatic -Cvbcc -nostdlib -Z -mrel %s %s -L/opt/amiga/vbcc/targets/m68k-kick13/lib -o %s
-ldv=vlink -bamigahunk -t -x -Bstatic -Cvbcc -nostdlib -Z -mrel /opt/amiga/vbcc/targets/m68k-kick13/lib/startup.o %s %s -L/opt/amiga/vbcc/targets/m68k-kick13/lib -lvc -o %s
-l2v=vlink -bamigahunk -t -x -Bstatic -Cvbcc -nostdlib -Z -mrel %s %s -L/opt/amiga/vbcc/targets/m68k-kick13/lib/ -o %s
-ldnodb=-s
-ul=-l%s
-cf=-F%s
-ml=500

Enfin, vous devez indiquer à vbcc où se trouve tout cela. Le compilateur trouve automatiquement les répertoires "configs" et "targets" à l'aide d'une variable d'environnement appelée vbcc. J'utilise zsh comme Shell sous Linux, donc à la fin de mon fichier "~/.zshrc", j'ai ajouté ceci :

# Amiga VBCC
export VBCC=/opt/amiga/vbcc

Utilisation du compilateur

En haut de mon Makefile, j'ai défini ceci :

CC=vc +kick13
CFLAGS=-c99 -Ireqtools -DNDEBUG -lamiga -lauto

Cette ligne "CC" indique d'appeler le compilateur "vc" et d'utiliser la configuration "kick13" définie ci-dessus. Pour "CFLAGS", mon projet étant conçu pour utiliser le standard "C99", j'utilise le chemin d'inclusion "reqtools". Les liens "-lamiga" pointent vers la bibliothèque standard Amiga et les liens "-lauto" vers une bibliothèque vbcc contenant les bases de la bibliothèque.

Conclusion

J'ai dû modifier quelques éléments pour les rendre compatibles avec vbcc ; heureusement, les messages d'erreur ont révélé la plupart des erreurs. J'ai utilisé la bibliothèque "reqtoolsnb.lib" du code de liaison SAS-C pour les bouchons "Reqtools" au lieu du code de liaison pour GCC.

Une fois la compilation réussie, je l'ai testée sur le Workbench 1.3 et je peux enfin utiliser une icône. Pour l'instant, je vais utiliser vbcc pour la compilation croisée. Malheureusement, je n'ai pas pris de photo, mais voici à quoi cela ressemble normalement dans un émulateur :

vbcc


[Retour en haut] / [Retour aux articles]


Soutenez le travail de l'auteur