Question

Ma distribution (Arch Linux) a récemment augmenté le minimum pris en charge la version de Linux pour son toolchain. Je compile une application web que je créer un lien statique puis télécharger sur un serveur web, et la version du noyau sur le serveur web est trop vieux pour les bibliothèques statiques compilées avec la nouvelle toolchain. (Je reçois une erreur de segmentation lorsque je tente d'exécuter des binaires statiques sur le serveur.) Est-il possible de compiler des applications utilisant la chaîne d'outils GNU (GCC, binutils, glibc) tels que les caractéristiques nécessitant nouvelles versions du noyau sont laissés?

Était-ce utile?

La solution

compatibilité Glibc est vraiment garanti que dans une direction. (Binaires plus anciens fonctionnent sur les systèmes plus récents, vice-versa, pas nécessairement.)

Pour garantir que vos binaires fonctionnent sur des systèmes plus anciens, compiler des liens avec une glibc plus ancienne. La façon la plus simple est de trouver une distribution plus, mais je recommande la mise en place d'un « crosstool "ou similaire compilation croisée toolchain ciblant un autre libc que ce que votre système utilise de construction (et cela permet répétables construit entre les hôtes, peu importe ce que le système est).

Autres conseils

Merci. J'ai aussi trouvé l'option --enable-noyau glibc, ce qui permet de travailler avec les noyaux antérieurs.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top