LD_PRELOAD fonctionne-t-il sur toutes les versions d’Unix / Linux?

J’ai écrit un simple module LD_PRELOAD, compilé sur le serveur Ubuntu. Ce préchargement fonctionnera-t-il sur d’autres systèmes tels que Solaris, FreeBSD, CentOS, etc. Existe-t-il des problèmes spécifiques à certains systèmes d’exploitation?

Le mécanisme LD_PRELOAD fonctionne sur tous les systèmes ELF (Linux, Solaris, etc.).

En théorie, la même bibliothèque peut être utilisée sur différents systèmes d’exploitation si l’architecture correspond (par exemple, une bibliothèque i386 ne fonctionnera pas sur Solaris SPARC), mais les écueils sont nombreux. Par exemple, de nombreuses structures de données fournies par la bibliothèque C ont des tailles et des dispositions de membres différentes et elles seront incompatibles entre les systèmes d’exploitation même si l’architecture est la même.

Si vous faites très attention aux fonctions que vous appelez dans votre bibliothèque LD_PRELOAD , vous pourrez peut-être créer une bibliothèque compatible entre les systèmes d’exploitation. Vous devrez certainement le tester.