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