Contenu | Rechercher | Menus

Annonce

Ubuntu-fr vend de superbes t-shirts et de belles clés USB 32Go
Rendez-vous sur la boutique En Vente Libre

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 16/05/2007, à 08:55

boudda

[C] Comment compiler pour processeur ARM?

Bonjur j'ai une GP2X ( http://wiki.gp2x.org/wiki tongue ) 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! mad
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?

boudda a écrit :

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! neutral

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" tongue mais je crois que ce sera bien plus simple que les autres solutions... big_smile
Encore merci.
Et sinon la GP2X c'est vraiment génial, surtout avec sterm wink
@+

Hors ligne

#8 Le 17/05/2007, à 13:31

Link31

Re : [C] Comment compiler pour processeur ARM?

slapierre a écrit :

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 wink

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.

slapierre a écrit :

Et moi qui pensait que le meilleur système hôte était Debian! neutral

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 big_smile

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?

qqun a écrit :

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" wink

Hors ligne

#13 Le 18/05/2007, à 21:03

qqun

Re : [C] Comment compiler pour processeur ARM?

@link31  mdr ! big_smile

http://people.debian.org/~debacle/cross/

#14 Le 18/05/2007, à 21:28

Link31

Re : [C] Comment compiler pour processeur ARM?

qqun a écrit :

@link31  mdr ! big_smile
http://people.debian.org/~debacle/cross/

emerge crossdev
crossdev -t arm-pc-linux-gnu

Gentoo 1
Debian 0

Hors ligne