Configuration minimale version du noyau plus tôt lors de la compilation des bibliothèques statiques
-
12-10-2019 - |
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?
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.