Une compilation croisée x86_64 sur le système i686 sur Ubuntu avec distcc
-
10-10-2019 - |
Question
Je tente d'installer un petit groupe de construction à la maison en utilisant distcc. Il existe deux systèmes x64 et 1 i686 systèmes. Tous les systèmes sont en cours d'exécution Ubuntu 10.10 et sont à jour. Le système qui lance la construction est x64. Distcc fonctionne très bien entre les deux systèmes x64, mais toutes les tâches de construction envoyées au système i686 échouent.
Jusqu'à présent:
- J'ai installé le paquet multilib pour g ++ sur ce système. Je suis capable de traverser décompiler à 64 bits localement à l'aide
g++ -m64
- Changé le lien
/usr/lib/distcc/g++
pour pointer vers un script qui explicity définit le paramètre-m64
.
Toutes les suggestions?
La solution
Tentative celui-ci à nouveau après plus de recherche:
GCC a une page décrivant les i386 et les options x86-64 . Le drapeau -m64
dit pour générer du code 64 bits, mais vous aurez également besoin de spécifier le type de CPU avec -march=i686
ou -march=k8
ou similaire, d'utiliser le jeu d'instructions correct.
Depuis distcc envoie les drapeaux de ligne de commande GCC, vous devriez essayer les ajouter à la commande distcc exécutée localement et sauter le script à distance pour le réglage des drapeaux.
Si vous testez les drapeaux d'architecture sur votre machine x64 locale sans distcc, juste g ++, il devrait vous donner les binaires à droite lors de l'utilisation distcc.