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

GCC Discussion :

GCC fait n'importe quoi


Sujet :

GCC

  1. #1
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juillet 2014
    Messages : 18
    Points : 22
    Points
    22
    Par défaut GCC fait n'importe quoi
    Je n'est pas trouvé de façon plus explicite dans mon titre pour expliquer mon problème : il y a quelques mois j'ai suivi les explications du site OSDev pour télécharger et compiler GCC pour qu'il soit cross plateforme, tout marchait presque bien, mis à part quelque subtilité : en particulier je ne trouvais pas le fichier libgcc.a dans l'arborescence à laquelle j'avais installé GCC, de plus il y avait les binutils et gcc dans le même fichier, ça ne me plaisait pas j'ai donc voulu refaire les choses proprement. J'ai donc télécharger, compiler GCC 6.3.0 et les binutils dans des dossiers différents, mais quand j'utilisais GCC dans mon projet, il me sortait plein d'erreurs, j'ai donc ré installer la 5.4.0 et, alors que je n'ai jamais changer mon code source, il me sort les mêmes erreurs que la version 6.3.0 (ce qui est cohérent mais m'em***de bien) voici les erreurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:2:11: error: mach-o section specifier uses an unknown section type
            .section        .rodata.str1.1,"aMS",@progbits,1
                            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:11:11: error: mach-o section specifier uses an unknown section type
            .section        .text.unlikely,"ax",@progbits
                            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:17:2: error: unknown directive
            .type   _Z4initv, @function
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:21:2: error: instruction requires: Not 64-bit mode
            pushl   %esi
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:24:2: error: instruction requires: Not 64-bit mode
            pushl   %ebx
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:30:2: error: instruction requires: Not 64-bit mode
            pushl   %esi
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:35:2: error: instruction requires: Not 64-bit mode
            pushl   $50
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:37:2: error: instruction requires: Not 64-bit mode
            pushl   $1024
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:40:2: error: instruction requires: Not 64-bit mode
            pushl   %ebx
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:46:2: error: instruction requires: Not 64-bit mode
            popl    %eax
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:48:2: error: instruction requires: Not 64-bit mode
            popl    %edx
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:50:2: error: instruction requires: Not 64-bit mode
            pushl   $.LC0
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:52:2: error: instruction requires: Not 64-bit mode
            pushl   %esi
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:58:2: error: instruction requires: Not 64-bit mode
            popl    %ecx
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:60:2: error: instruction requires: Not 64-bit mode
            popl    %eax
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:62:2: error: instruction requires: Not 64-bit mode
            pushl   $.LC1
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:64:2: error: instruction requires: Not 64-bit mode
            pushl   %esi
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:70:2: error: instruction requires: Not 64-bit mode
            popl    %eax
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:72:2: error: instruction requires: Not 64-bit mode
            popl    %edx
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:74:2: error: instruction requires: Not 64-bit mode
            pushl   $.LC2
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:76:2: error: instruction requires: Not 64-bit mode
            pushl   %esi
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:82:2: error: instruction requires: Not 64-bit mode
            popl    %ecx
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:84:2: error: instruction requires: Not 64-bit mode
            popl    %eax
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:86:2: error: instruction requires: Not 64-bit mode
            pushl   $.LC3
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:88:2: error: instruction requires: Not 64-bit mode
            pushl   %esi
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:92:2: error: instruction requires: Not 64-bit mode
            pushl   $152
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:94:2: error: instruction requires: Not 64-bit mode
            pushl   $1048575
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:96:2: error: instruction requires: Not 64-bit mode
            pushl   $0
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:98:2: error: instruction requires: Not 64-bit mode
            pushl   %ebx
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:103:2: error: instruction requires: Not 64-bit mode
            pushl   $4
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:105:2: error: instruction requires: Not 64-bit mode
            pushl   $146
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:107:2: error: instruction requires: Not 64-bit mode
            pushl   $1048575
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:109:2: error: instruction requires: Not 64-bit mode
            pushl   $1048576
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:111:2: error: instruction requires: Not 64-bit mode
            pushl   %ebx
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:116:2: error: instruction requires: Not 64-bit mode
            pushl   $4
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:118:2: error: instruction requires: Not 64-bit mode
            pushl   $150
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:120:2: error: instruction requires: Not 64-bit mode
            pushl   $1048575
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:122:2: error: instruction requires: Not 64-bit mode
            pushl   $2097152
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:124:2: error: instruction requires: Not 64-bit mode
            pushl   %ebx
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:129:2: error: instruction requires: Not 64-bit mode
            pushl   %ebx
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:138:2: error: unknown directive
            .size   _Z4initv, .-_Z4initv
            ^
    /var/folders/vp/ytlzwk9j0tg1krkknx4ytqbw0000gn/T//ccWoEes3.s:139:25: error: unexpected token in '.section' directive
            .section        .text.unlikely
    Alors globalement il me dit qu'il ne connait pas une instruction compiler en 64bits, ok, normale je l'ai configurer pour créer un exécutable elf pour architecture i686 mais à aucun moment je ne lui ait demandé d'aller chercher ce fichier à la c** situé dans /var/... .J'ai toujours suivi exactement les mêmes étapes que sur OSDev, mais pour une raison inconnu son petit cerveau de compilateur veut aller chercher un fichier qu'il sort d'on ne sait trop où. Est-t-il possible qu'il inclus comme ça des fichier aléatoirement ? J'essaye de trouver la solution à ça depuis 2h mais là je suis à bout j'ai juste envie de mourir... :/ voici les options avec lesquelles je compile :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    -c -ffreestanding -lgcc -Wall -Wextra -O2 -O3 -I $(KERNEL_DIR)/include -I $(X86_DIR)/include -I $(LIBC_DIR)/include
    J'ai fait des tests et quand je compile une simple fonction main qui ne fait rien ça marche sans problème mais quand je compile un code qui vient directement depuis OSDev avec exactement les mêmes options il me sort le même type d'erreur, alors que mon ancienne version de gcc 5.4.0 n'avait aucun problèmes. Merci de votre aide

  2. #2
    Membre éclairé

    Homme Profil pro
    Retraite
    Inscrit en
    octobre 2005
    Messages
    341
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraite

    Informations forums :
    Inscription : octobre 2005
    Messages : 341
    Points : 706
    Points
    706
    Billets dans le blog
    1
    Par défaut
    regarde si ton problème n'est pas identique au mien "compiler avec GCC 7.3"
    j'ai fouillé et est passé la nuit dessus pour essayer de démêler .....

  3. #3
    Membre à l'essai
    Homme Profil pro
    Étudiant
    Inscrit en
    juillet 2014
    Messages
    18
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : juillet 2014
    Messages : 18
    Points : 22
    Points
    22
    Par défaut
    Citation Envoyé par JPLAROCHE Voir le message
    regarde si ton problème n'est pas identique au mien "compiler avec GCC 7.3"
    j'ai fouillé et est passé la nuit dessus pour essayer de démêler .....
    Ca date un peu et je sais que j'ai réussi à régler mon problème, mais je ne sais plus comment. Je crois que c'était en ajoutant les options de compilations --with-ld=<chemin vers l'exécutable de ld cross platforme) --with-gnu-ld --with-as=<chemin vers l'exécutable de as cross platforme) --with-gnu-as

Discussions similaires

  1. Bulk insert fait n'import quoi
    Par kluster dans le forum Développement
    Réponses: 1
    Dernier message: 01/06/2010, 11h51
  2. Compte admin qui me fait n'importe quoi.
    Par 6bil1 dans le forum Windows Serveur
    Réponses: 2
    Dernier message: 02/07/2009, 13h33
  3. Calcul automatique qui fait n'importe quoi
    Par renaud26 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 26/03/2009, 15h14
  4. [débutant] set linesize me fait n'importe quoi
    Par Mathusalem dans le forum Oracle
    Réponses: 6
    Dernier message: 20/04/2006, 16h22

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