TCC ne fonctionne pas [Réglé]
Mageia 9
Logiciels / Programmation

Roland57 Membre non connecté
-
- Voir le profil du membre Roland57
- Inscrit le : 08/02/2020
- Site internet
- Groupes :
À moins que j'aie fait une fausse manipulation, la version de TCC (Tiny C Compiler) disponible dans les paquets de Mageia 9 ne fonctionne pas.
Quand j'essaie de compiler un simple programme, j'obtiens ceci :
Code TEXT :
tcc: error: file 'crt1.o' not found tcc: error: file 'crti.o' not found /lib/libc.so.6: error: bad architecture /usr/lib/libc.so.6: error: bad architecture /lib/libc.so.6: error: bad architecture tcc: error: /usr/lib/libc.so: unrecognized file type 0 /lib/libc.so.6: error: bad architecture /usr/lib/libc.so.6: error: bad architecture /lib/libc.so.6: error: bad architecture tcc: error: /lib/libc.so: unrecognized file type 0 tcc: error: library 'c' not found tcc: error: file 'crtn.o' not found tcc: error: undefined symbol 'printf'
En revanche, j'ai trouvé un RPM pour Mageia 10. J'ai extrait le contenu, construit le compilateur sans aucun problème, et il fonctionne. (Pas essayé d'installer directement le RPM. Je ne sais pas si c'est possible d'installer les paquets de Mageia 10 dans Mageia 9.)

Papoteur Membre non connecté
-
- Voir le profil du membre Papoteur
- Inscrit le : 03/10/2011
- Groupes :
-
Modérateur
-
Équipe Mageia
-
Administrateur
-
Forgeron
Es-tu sûr d'avoir installé une version 64 bits ? Le fichier crt1.o est fourni par glibc-devel, mais peut-être que tcc devrait le fournir.
Si tu fournis un moyen minimaliste de reproduire le problème, on peut ouvrir un rapport de bogue et faire une mise à jour.
La voie n'est pas celle d'une installation directe depuis Mageia 10, mais une compilation du paquet selon la même méthode que pour Mageia 10.
Yves

Roland57 Membre non connecté
-
- Voir le profil du membre Roland57
- Inscrit le : 08/02/2020
- Site internet
- Groupes :

Pour reproduire le problème, essayer de compiler le programme suivant :
Code C :
// hello.c #include <stdio.h> int main(void) { printf("Hello\n"); return 0; }
Comme ceci :
Code BASH :
tcc hello.c -o hello
J'obtiens le message d'erreur cité ci-dessus.
Édité par Roland57 Le 13/06/2025 à 12h35

Papoteur Membre non connecté
-
- Voir le profil du membre Papoteur
- Inscrit le : 03/10/2011
- Groupes :
-
Modérateur
-
Équipe Mageia
-
Administrateur
-
Forgeron
Pareil pour la version de cauldron.
Comment as-tu procédé ?
Yves

Papoteur Membre non connecté
-
- Voir le profil du membre Papoteur
- Inscrit le : 03/10/2011
- Groupes :
-
Modérateur
-
Équipe Mageia
-
Administrateur
-
Forgeron
https://lists.nongnu.org/archive/html/tinycc-devel/2024-07/msg00000.html
Yves

Roland57 Membre non connecté
-
- Voir le profil du membre Roland57
- Inscrit le : 08/02/2020
- Site internet
- Groupes :
Papoteur :Comment as-tu procédé ?
Si je comprends bien la question : j'ai récupéré (je ne sais plus où) le fichier tcc-0.9.28-0.git20250213.2.mga10.src.rpm. Je l'ai décompressé, j'ai trouvé les sources du compilateur à l'intérieur. Je les ai compilées de la façon suivante :
Code BASH :
./configure make
Et là j'ai un compilateur qui fonctionne.
P.-S. Je n'ai pas tenté de l'installer. J'ai fait une pseudo-installation en créant un fichier tcc dans ~/.local/bin :
Code BASH :
#!/bin/bash TCCDIR="/home/roland/Documents/sources/tcc/tinycc-f8bd136" $TCCDIR/tcc -B$TCCDIR $*
Édité par Roland57 Le 13/06/2025 à 19h37

Roland57 Membre non connecté
-
- Voir le profil du membre Roland57
- Inscrit le : 08/02/2020
- Site internet
- Groupes :
Pourrais-tu me dire STP quel est le site officiel pour télécharger les RPM de Mageia 9 ? Et quelle ligne de commande peut-on utiliser pour installer un RPM en ayant le plus d'informations possible ?
Le gestionnaire de paquets, c'est pratique, mais on ne sait pas ce qu'il fait.


Papoteur Membre non connecté
-
- Voir le profil du membre Papoteur
- Inscrit le : 03/10/2011
- Groupes :
-
Modérateur
-
Équipe Mageia
-
Administrateur
-
Forgeron
https://mirrors.mageia.org/
"en ayant le plus d'informations possible" Qu'entends-tu par là ? avant ou pendant l'installation, quelle information ?
Yves

Roland57 Membre non connecté
-
- Voir le profil du membre Roland57
- Inscrit le : 08/02/2020
- Site internet
- Groupes :
Merci pour le lien.
Je me demandais s'il y avait une façon d'installer le RPM en ayant des informations sur ce que fait l'installateur, notamment sur les endroits où les fichiers sont copiés. Pour que je puisse inspecter l'installation de TCC et trouver ce qui ne va pas.
Je vais regarder si j'arrive à quelque chose.

Yuusha Membre non connecté
-
- Voir le profil du membre Yuusha
- Inscrit le : 04/07/2017
- Groupes :
-
Modérateur
-
Administrateur
-
Forgeron
Pas besoin d'aller voir ce qui se passe au moment de l'installation pour ça. Tu fais
Code BASH :
urpmq -l tcc
Ça te donne la liste des fichiers avec leur chemin absolu.

Papoteur Membre non connecté
-
- Voir le profil du membre Papoteur
- Inscrit le : 03/10/2011
- Groupes :
-
Modérateur
-
Équipe Mageia
-
Administrateur
-
Forgeron
Une version corrigée arrive, elle sera d'abord dans les dépôts Testing.
Le problème vient de l'option de compilation --triplet=%{_build} définie dans le spec. En la supprimant, le problème est résolu.
J'ai l'impression que cette définition est utile pour de la compilation croisée, pour spécifier un répertoire dans lequel sera une version de base pour les bibliothèque d'une autre architecture.
Je l'ai repéré avec un strace.
Yves

Papoteur Membre non connecté
-
- Voir le profil du membre Papoteur
- Inscrit le : 03/10/2011
- Groupes :
-
Modérateur
-
Équipe Mageia
-
Administrateur
-
Forgeron
Nous attendons les retours.
Yves

Roland57 Membre non connecté
-
- Voir le profil du membre Roland57
- Inscrit le : 08/02/2020
- Site internet
- Groupes :

Papoteur Membre non connecté
-
- Voir le profil du membre Papoteur
- Inscrit le : 03/10/2011
- Groupes :
-
Modérateur
-
Équipe Mageia
-
Administrateur
-
Forgeron
Yves

Roland57 Membre non connecté
-
- Voir le profil du membre Roland57
- Inscrit le : 08/02/2020
- Site internet
- Groupes :

Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie