#1 Le 16/05/2007, à 08:55
- boudda
[C] Comment compiler pour processeur ARM?
Bonjur j'ai une GP2X ( http://wiki.gp2x.org/wiki ) qui a un processeur de type ARM (ARM920T exactement) et je veux compiler mes programmes en utilisant gcc pour ARM. Mais voilà quand j'utilise l'argument:
"-mcpu=arm920t" il me dit:
`-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead.
hello.c:1: error: bad value (arm920t) for -mtune= switch
alors j'utilise "-mtune=arm920t", une nouvelle erreur:
hello.c:1: error: bad value (arm920t) for -mtune= switch
je décide donc d'utiliser "-march=armv4t" et là encore une erreur:
hello.c:1: error: bad value (armv4t) for -march= switch
hello.c:1: error: bad value (armv4t) for -mtune= switch
En gros j'ai l'impression que tout ce qui touche à l'arm il n'aime pas (arm920t bad value ou armv4t bad value), ce sentiment est confirmé lorsque j'utilise "-march=i386" et que là il n'y a aucune erreur!
Pourtant la documentation de gcc est claire, ces arguments existent (cf http://gcc.gnu.org/onlinedocs/gcc-4.1.2/gcc/ARM-Options.html#ARM-Options ).
J'ai bien sur installé le paquet build-essential.
Donc voilà la question: comment faire pour que gcc compile pour processeur de type ARM?
Faut-il installer d'autres paquets ( la recherche arm dans synaptique ne donne aucun résultat signifiant), recompiler gcc (ce qui n'a pas l'air super sympa...)?
Je sais qu'il existe des kits de développement pour ARM, mais je pensais que on pouvait faire ça sans ces kits...
Merci d'avance.
@+
Hors ligne
#2 Le 16/05/2007, à 09:28
- toto4455
Re : [C] Comment compiler pour processeur ARM?
il faut installer un cross compilateur pour pouvoir apres creer des executable pour une autre architecture.
donc oui en gros il faut compiler (ou installer un bin) : binutils , gcc ,glibc (et apres les libs eventuelles).
sinon tu devrais aller sur le site wiki que tu pointes , si tu regardes bien ya un lien pour installer
un env de dev sous linux ,la tu trouveras tout ce qu'il te faut.
http://wiki.gp2x.org/wiki/Setting_up_a_development_environment_%28Linux%29
#3 Le 16/05/2007, à 09:44
- marc31
Re : [C] Comment compiler pour processeur ARM?
regarde ce lien sur le wiki : http://wiki.gp2x.org/wiki/Setting_up_a_development_environment_%28Linux%29
ubuntu-gutsy / ATI RC410 [Radeon Xpress 200] + Nvidia GeForce 7300 SE / wireless RaLink RT2500 / toulouse-ouest / xmpp://marc.quinton@jabber.org
Hors ligne
#4 Le 16/05/2007, à 16:00
- boudda
Re : [C] Comment compiler pour processeur ARM?
Merci pour vos réponse, mais je n'aurais pas du mettre le lien du wiki, je sais très bien qu'on peut faire ça, mais ça ne ne m'interesse pas.
Sinon je suis très déçu comment ce fait il que gcc n'accepte pas les arguments qui sont pourtant dans sa documentation?
Est-ce spécifique à ubuntu, ou est ce que dans toutes les autres distributions gcc n'est pas "entier" (je dis ça puisque gcc peut compiler pour tous les types d'architecture en théorie...)?
Sinon existe-t-il des paquets des cross compilateur dont tu parles?
Merci.
@+
Dernière modification par boudda (Le 16/05/2007, à 16:06)
Hors ligne
#5 Le 16/05/2007, à 20:43
- Link31
Re : [C] Comment compiler pour processeur ARM?
Est-ce spécifique à ubuntu, ou est ce que dans toutes les autres distributions gcc n'est pas "entier" (je dis ça puisque gcc peut compiler pour tous les types d'architecture en théorie...)?
Non, c'est pareil pour toutes les autres distributions. GCC est compilé avec le support du C/C++, parfois du Fortran, mais seulement pour la même architecture que la distribution.
En plus c'est bien galère de compiler un cross-GCC sous Ubuntu et autres Debian-like. Bon courage.
Hors ligne
#6 Le 17/05/2007, à 05:51
- slapierre
Re : [C] Comment compiler pour processeur ARM?
Regarde le projet Linux From Scratch (LFS), ça te donnera une idée de tout ce que ça prend pour construire un environnement GNU/Linux minimal à partir d'un système hôte. Le projet est traduit en français > http://lfs.traduc.org/
Tu peux adapter la procédure en utilisant les outils (la compilation toolchain) spécifique à ton système cible, en particulier un système embarqué.
Il y a aussi le très bon bouquin "Building Embedded Linux Systems" de Karim Yaghmour (ISBN : 0-596-00222-X), de l'éditeur O'Reilly, le livre n'est pas disponible en français, mais ce n'est pas la fin du monde. Pour les systèmes cible, l'auteur fait référence à l'architecture ARM, plus précisément au Compaq iPAQ 3600. Le lien suivant est suggéré par l'auteur pour les systèmes ARM : http://www.arm.linux.org.uk/docs/
Link32 à écrit :
En plus c'est bien galère de compiler un cross-GCC sous Ubuntu et autres Debian-like. Bon courage.
Ah oui? J'aimerais que tu apportes quelques clarifications sur ce point. Et moi qui pensait que le meilleur système hôte était Debian!
Simon
"Le spectre de la folie nous empêchera-t-il de hisser l'étendard de l'imagination?" - André Breton
Hors ligne
#7 Le 17/05/2007, à 13:00
- boudda
Re : [C] Comment compiler pour processeur ARM?
Merci beaucoup pour vos réponses, je voulais pas installer les SDK proposés sur le wiki parce que je trouvais pas ça très "propre" mais je crois que ce sera bien plus simple que les autres solutions...
Encore merci.
Et sinon la GP2X c'est vraiment génial, surtout avec sterm
@+
Hors ligne
#8 Le 17/05/2007, à 13:31
- Link31
Re : [C] Comment compiler pour processeur ARM?
Link32 à écrit :
En plus c'est bien galère de compiler un cross-GCC sous Ubuntu et autres Debian-like. Bon courage.Ah oui? J'aimerais que tu apportes quelques clarifications sur ce point.
Link31
Pour revenir au sujet, pourquoi je pense que c'est une vraie galère de compiler un cross-compilateur sous Debian ? Tout simplement parce que j'ai essayé, en m'inspirant d'un tuto sur le wiki de Debian, et que ça n'a pas fonctionné (après plusieurs heures de galère). En plus je n'essayais pas d'installer un cross-compilateur pour une architecture exotique, je voulais juste compiler en x86 sur une distribution x86_64. Bien sûr, il y a la solution du chroot, mais je voulais essayer de me faire un véritable cross-compilateur, histoire d'essayer. Et comme je suis loin de me considérer comme un débutant sous Linux, j'en déduis que ce n'est pas une chose facile.
Cependant, je ne dis pas que c'est impossible.
Et moi qui pensait que le meilleur système hôte était Debian!
Le problème, c'est que Debian est une distribution binaire. C'est très bien pour une utilisation normale, mais dès qu'on veut apporter une petite modification au code source, ça devient très compliqué. Je pense que je n'aurais pas eu autant de problèmes pour installer un cross-compilateur sous une distribution source telle que Gentoo par exemple. D'ailleurs c'est pour ça que je suis sous Gentoo et pas sous Debian.
Hors ligne
#9 Le 17/05/2007, à 14:39
- slapierre
Re : [C] Comment compiler pour processeur ARM?
Link31 à écrit :
Je pense que je n'aurais pas eu autant de problèmes pour installer un cross-compilateur sous une distribution source telle que Gentoo par exemple.
Je comprend, j'ai tenté l'aventure LFS alors que j'étais sous FC5, il me manquait une flopée librairies pour compiler ld, c'était vraiment désagréable ... J'ai abandonné ce projet pour l'instant et je suis passé à Ubuntu quand j'ai découvert la communauté.
Ma stratégie est de me faire la main sous Ubuntu avant de passer sous Gentoo, que je considère comme étant un système d'exploitation embarqué. Par ailleurs, le propos des projets avancés de LFS est d'écrire des scripts pour automatiser la création de la toolchain, et ils disent eux-même que tant qu'à écrire les scripts, aussi bien installer Gentoo!
Simon
edit : Link31 et non Link32
Dernière modification par slapierre (Le 17/05/2007, à 14:39)
"Le spectre de la folie nous empêchera-t-il de hisser l'étendard de l'imagination?" - André Breton
Hors ligne
#10 Le 18/05/2007, à 09:42
- qqun
Re : [C] Comment compiler pour processeur ARM?
Link31 à écrit :
Je pense que je n'aurais pas eu autant de problèmes pour installer un cross-compilateur sous une distribution source telle que Gentoo par exemple.
effectivement je vois pas ou est la difficulte, j'ai installe plusieurs cross compilateurs (mips,arm,mk68)
et ya pas grand chose a faire sinon tjs la meme chose , compiler binutils,gcc,et qq libs,en fait vraiment pas de quoi se prendre la tete et rien de difficile, maintenant je vois pas pourquoi cela serait plus dur sur debian que sur une autre distribution.
@boudda , sinon perso moi je partirais sur le script d' ooPo GP2XDev . http://dev.oopo.net/#GP2X
#11 Le 18/05/2007, à 18:23
- boudda
Re : [C] Comment compiler pour processeur ARM?
Je vais voir ça merci.
@+
Hors ligne
#12 Le 18/05/2007, à 20:16
- Link31
Re : [C] Comment compiler pour processeur ARM?
je vois pas pourquoi cela serait plus dur sur debian que sur une autre distribution
Plonge-toi dans le système de compilation des paquets Debian, et tu vas comprendre en quoi c'est plus compliqué qu'un simple "./configure && make && make install"
Hors ligne
#13 Le 18/05/2007, à 21:03
- qqun
Re : [C] Comment compiler pour processeur ARM?
@link31 mdr !
http://people.debian.org/~debacle/cross/
#14 Le 18/05/2007, à 21:28
- Link31
Re : [C] Comment compiler pour processeur ARM?
@link31 mdr !
http://people.debian.org/~debacle/cross/
emerge crossdev
crossdev -t arm-pc-linux-gnu
Gentoo 1
Debian 0
Hors ligne