GNU/Linux >> Tutoriels Linux >  >> Linux

Comment éviter les symboles STT_GNU_IFUNC dans votre binaire ?

En général, les systèmes UNIX prennent en charge la rétrocompatibilité binaire (un binaire créé sur une ancienne machine continue de s'exécuter sur une machine plus récente), mais pas l'inverse. Vous ne pouvez pas vous attendre à ce qu'un binaire construit sur un nouveau système s'exécute sur un ancien. STT_GNU_IFUNC n'est que le premier de nombreux problèmes que vous rencontrerez.

Si vous avez besoin de construire un binaire sur une machine plus récente qui fonctionnera sur une ancienne, consultez ce document.

Il y avait autrefois "apgcc :un wrapper GCC pour créer des binaires portables" qui facilitait cela (il est référencé ci-dessus), mais il semble avoir disparu ;-(

L'option la plus simple est de construire sur une ancienne machine (j'avais l'habitude de construire sur RedHat 6.2, et le binaire résultant fonctionnait partout ). Vous n'avez pas besoin d'exécuter RH-6.2 sur une machine physique, il suffit de l'afficher dans une machine virtuelle.

L'autre option relativement simple consiste à intégrer un chroot , en utilisant à nouveau des outils et des bibliothèques d'une ancienne distribution (par exemple, RH-6.2).


Comme APGCC ne semble plus disponible (sauf peut-être ici et ici). Ces en-têtes glibc semblent être actuellement le moyen le plus pratique de générer des binaires Linux portables à partir d'un code C en incluant l'un des anciens fichiers d'en-tête.


Linux
  1. Comment gérer votre historique de commandes Linux

  2. Comment changer le nom d'hôte de votre machine Linux sans avoir à redémarrer

  3. Comment savoir quel serveur DNS est configuré sur votre machine ? Linux/Windows/OSX

  4. Comment compiler un binaire 32 bits sur une machine Linux 64 bits avec gcc/cmake

  5. Comment gérez-vous votre configuration Linux iptables sur une machine faisant office de routeur ?

Comment enregistrer votre session de terminal sous Linux

Comment installer Windows 10 dans Virtualbox sous Linux

Comment tester Plasma Mobile OS sur votre ordinateur

Comment changer votre nom d'hôte sous Linux

Comment obtenir votre adresse IP sous Linux

Comment vider le cache de Visual Studio Code sur une machine Mac/Linux ?