Элегантный способ установить базовый адрес образа ELF с помощью Linux binutils?

Для личного проекта мне нужно написать исполняемый файл, который загружается по адресу памяти не по умолчанию. Изэтот ТАК вопросЯ знаю, что могу установить адрес входа для ELF и изменить адреса разделов так, чтобы исполняемый файл эффективно основывался на каком-то выбранном мной адресе. Тем не менее, ответ предполагает, что это работает, только если я не инициализирую glibc (что мне нужно для этого проекта), и установка адресов памяти разделов каждый раз, когда я компилирую, будет трудной (не говоря уже об утомлении).

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

--image-base value
  Use value as the base address of your program or dll. This is the lowest 
  memory location that will be used when your program or dll is loaded. To 
  reduce the need to relocate and improve performance of your dlls, each should 
  have a unique base address and not overlap any other dlls. The default is 
  0x400000 for executables, and 0x10000000 for dlls. [This option is specific 
  to the i386 PE targeted port of the linker]

Я еще не нашел эквивалент ELF. Ничего не существует? Сам анализ файла ELF не станет концом света, но кажется, что эта функция должна где-то существовать.

Ответы на вопрос(1)

Ваш ответ на вопрос