При использовании HP-UX я могу использовать утилиту chatr, чтобы сообщать о различных внутренних атрибутах общей библиотеки. Это также позволит мне изменить внутренние атрибуты общих библиотек, которые я создал.
Утилита chatr может сообщать и, в некоторых случаях, изменять такие вещи, как:
- поведение привязки во время выполнения,
- список путей встроенной библиотеки, созданный во время сборки,
- подвергается ли библиотека поиску путей во время выполнения,
- внутренние имена,
- и т. Д. И т. П.
Доступна ли такая утилита для Solaris?
Редактировать: Чокнутый! Благодаря ответу mark4o, приведенному ниже, я пересмотрел вывод elfdump для типичной системы .so (libm.so.2 в Sol 10). Однако, и вот эта причудливая часть, я набрал команду для ввода:
elfdump libm.so.2 | moe
В результате удивительной интуитивной прозорливости это вернуло мне сообщение об использовании утилиты moe, чей раздел описания man-страницы гласит:
Утилита moe демонстрирует оптимальное расширение имени пути, содержащего зарезервированные токены компоновщика времени выполнения. Эти токены можно использовать для определения зависимостей, филиалов и путей выполнения в динамических объектах. Расширение этих токенов во время выполнения предоставляет гибкий механизм выбора объектов и путей поиска, которые лучше всего работают на этом компьютере.
Это поможет мне решить, почему libli.so.2 shlib не совместим на обеих двух машинах, и мой неполный исполняемый файл не может быть запущен на одном сервере.