IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration système Discussion :

compilation gcc et familles de processeurs


Sujet :

Administration système

  1. #1
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 95
    Points : 110
    Points
    110
    Par défaut compilation gcc et familles de processeurs
    Bonsoir à tous !

    Ma question me semble entre Matériel, Système et Applications alors désolé si je poste au mauvais endroit.

    Je compile un même code source :
    - avec gcc 4.2.3 sur une machine 1 qui donne l'exécutable A
    - avec gcc 3.4.3 sur une machine 2 qui donne l'exécutable B

    B s'exécute sur les machines 1 et 2, seulement A ne s'exécute que sur la machine 1. Sur la machine 2, le lancement de l'exécutable aboutit immédiatement à un "Floating Point Exception" sans même entrer dans l'appli elle-même (la toute 1ère ligne de code n'est jamais atteinte).

    Je le vois comme ca : les machines 1 et 2 ont des processeurs différents qui n'ont pas le même jeu d'instructions binaires, et en chargeant l'exécutable A dans la mémoire de la machine 2 ... bah ca bug :/

    Ceci est-il possible ? Dans ce cas (tordu je vous l'accorde), comment faire pour faire fonctionner A sur les machines 1 et 2 ? Passer -march et -mtune à gcc avec en paramètre le "plus petit dénominateur commun" en terme d'architecture processeur (typiquement i386) ? Si qqun propose autrechose pour que A s'exécute sur 1 et 2 et utilise à fond le Pentium 4 Core 2 Duo de la machine 1 ça m'arrange AUSSI !

    Merci d'avance à ceux qui seront déjà arrivés jusqu'à la fin de ce message :/

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 69
    Points : 62
    Points
    62
    Par défaut
    essai avec -march, si ce sont 2 x86 ils devraient etre compatible, mais essailer de faire fonctionner un binaire fait avec GCC4 sur un vieux system risque fort de ne pas reussir, ce n'est pas un cas isoler. Compile le avec GCC3 et il devrais fonctionner sur les 2 system (en mode compatibilitee sur le systeme avec GCC4)

  3. #3
    Membre régulier
    Inscrit en
    Avril 2008
    Messages
    95
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 95
    Points : 110
    Points
    110
    Par défaut
    J'ai enlevé le résolu parce que ce n'est pas du tout résolu

    Pour m'affranchir des différences possibles entre les procs de mes 2 machines, j'ai installé mes 2 OS sur la MEME machine B qui est donc le "vieux système" (Pentium4 ...).

    Quand je compile sous gcc 3.4.3 ca marche sur les 2 OS.
    Quand je compile sous gcc 4.2.3 ca marche pas sur l'OS le plus ancien (hébergeant gcc 3.4.3) : j'obtiens direct un Floating point exception

    J'ai enlevé toute optimisation de type -Ox ... pareil !
    J'ai essayé en mettant -march=pentium puis -march=i386 : pareil !
    J'ai ajouté -mtune=pentium4 : pareil !

    Que je puisse pas exécuté un binaire compilé sous gcc 4 sur un vieux système ... je veux bien le concevoir, mais quelle en est la raison exacte ? Parce que là on est sur la MEME machine donc gcc voit bien quel jeu d'instructions binaires il doit coder et comment donc bon ...

    Sinon, est-il possible d'installer gcc 3 sur mon OS "plus récent" sans repartir "from scratch" ? Parce qu'en terme de paquetages l'installation de gcc 3 m'emmène de dépendances en dépendances à une incompatibilité avec la glibc ... si je la vire => : /
    Si je recompile gcc 3 sur mon nouvel OS c'est pareil, le linker utilisé est celui installé sur l'OS, pareil pour les lib (libstdc++ en particulier) ... donc si je veux construire un environnement de dév indépendant faut que je reparte de presque rien et du coup mon nouvel OS il me sert plus à rien :/

    Désolé si je ne suis pas clair ... mais PLEASE aidez-moi

  4. #4
    Membre averti
    Inscrit en
    Janvier 2007
    Messages
    329
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 329
    Points : 366
    Points
    366
    Par défaut
    Salut,

    Je pense pas que ce soit un problème d'architecture, mais plutôt un problème de librairies.

    Sous Gentoo, pour passer de gcc3 à gcc4, il faut recompiler tout le système (voir ici : http://www.gentoo.org/doc/fr/gcc-upgrading.xml ; ça montre que le changement ne se fait pas simplement)

Discussions similaires

  1. Compilation gcc avec upnp
    Par YuGiOhJCJ dans le forum C
    Réponses: 6
    Dernier message: 25/05/2010, 12h42
  2. [debutant] compilation gcc et makefile
    Par harsh dans le forum Systèmes de compilation
    Réponses: 4
    Dernier message: 08/06/2006, 18h30
  3. Compilation gcc -shared -c *.c Puis archivage ?
    Par FrigoAcide dans le forum Autres éditeurs
    Réponses: 4
    Dernier message: 09/05/2006, 10h24
  4. Erreur compilation GCC
    Par KnightsOfTheRound dans le forum GCC
    Réponses: 8
    Dernier message: 07/11/2005, 15h28
  5. Option de compilation gcc : sem.h
    Par Luther13 dans le forum Linux
    Réponses: 8
    Dernier message: 29/12/2004, 12h29

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo