Использование prelink для загружаемых вручную библиотек? (например, родные библиотеки Java)

Насколько я могу судить, prelink может работать только с динамическими библиотеками, которые исполняемый файл объявляет во время компиляции (библиотеки, которые можно найти с помощью ldd ). Он, похоже, не включает динамические библиотеки, которые вручную загружаются исполняемым файлом, например плагины или (в моем конкретном случае) родные библиотеки Java. Есть ли способ заставить prelink для покрытия таких библиотек?

  • Задача java: 14736 заблокирована более 120 секунд
  • Установка Java, имеющая проблемы с Centos java и javac, показывающая другую версию
  • Проблема с именем пользователя su -c "./script.sh" и sudo -u ush bash -c "./script.sh" и Java classpath
  • Ошибка шрифта в приложениях Java в Arch Linux
  • Почему моя переменная среды не видна из командной строки?
  • У установки Jre нет файла / usr / bin / java?
  • Как установить обновление для Runtime Environment 7 7 для архитектуры x64 на ОС Debian?
  • Почему весь текст невидим в Intellij?
  • One Solution collect form web for “Использование prelink для загружаемых вручную библиотек? (например, родные библиотеки Java)”

    Когда вы запускаете prelink на двоичном prelink ELF, он будет проверять только сам бинарный файл и его зависимости (как указано в .dynamic ELF .dynamic и .dynstr ).

    Вы должны иметь возможность использовать:

     prelink --libs-only libone.so libtwo.so [...] 

    Если одна библиотека зависит от другой, вам может потребоваться указать их вместе в одной и той же командной строке (то есть, если они не находятся в обычном линкере).

    Однако важной частью предварительной привязки является возможность определить наилучшее место для загрузки каждой библиотеки для процесса, возможно, вы не будете в полной мере использовать предварительную привязку, делая изолированные библиотеки. Это не должно происходить так долго, что оба они верны:

    • вы используете общий кэш ( /etc/prelink.cache ), чтобы все библиотеки получили уникальную базу
    • вы не используете -m (сохраняете память) при предварительной привязке

    Подтвердите, что операция прошла успешно

     prelink --print-cache 
    Linux и Unix - лучшая ОС в мире.