Maneira elegante de definir o endereço base da imagem ELF com o Linux binutils?

Para um projeto pessoal, preciso gravar um executável que carregue em um endereço de memória não padrão. Deesta questão tãoEu sei que posso definir o endereço de entrada para um ELF e modificar os endereços de seção manualmente para que o executável seja efetivamente baseado em algum endereço que eu escolher. No entanto, a resposta sugere que isso só funciona se eu não fizer a inicialização do glibc (que eu preciso para este projeto), e definir endereços de memória de seção toda vez que eu compilar seria difícil (para não mencionar tedioso).

Parece que deve haver uma maneira melhor de definir um endereço base para um ELF durante a construção, embora eu possa recorrer a isso manualmente com um script post-build, se necessário. Esta opção parald seria perfeito se não fosse específico para a porta 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]

Ainda não encontrei um equivalente de ELF. Não existe nenhum? Analisar o arquivo ELF sozinho não seria o fim do mundo, mas parece que esse recurso deve existir em algum lugar.