Я экспериментирую с концепцией исполняемых файлов PIE с чистой статической связью в Linux, но сталкиваюсь с проблемой, с которой линкер GNU binutils настаивает на добавлении заголовка PT_INTERP в выходной двоичный код, когда используется -pie
, даже если также дано -static
. Есть ли способ подавить это поведение? То есть, есть ли способ сказать GNU ld специально не записывать определенные заголовки в выходной файл? Возможно, с компоновщиком script?
(Пожалуйста, не отвечайте с утверждениями о том, что это не сработает, я хорошо знаю, что программе по-прежнему нужна передислокация - перенаправление с использованием load-address-rel только из-за моего использования -Bsymbolic
- и у меня есть специальный код запуска вместо стандартного Scrt1.o
, чтобы обработать это. Но я не могу заставить его вызываться без динамического компоновщика, уже выполняющего работу и выполняющего работу, если hexedit заголовок PT_INTERP
из двоичного файла.)