Relinker util?

John Reiser jreiser@BitWagon.com
Thu Feb 28 15:33:00 GMT 2002


Mike Perry <mikepery@fscked.org> asked:
> Is there a way to add new object files into a pre-exisiting
> statically linked binary?

In most Elf ET_EXEC, you can add bytes from the end of the first
PT_LOAD up to a page boundary, and from the begnning of the second
PT_LOAD down to a page boundary, by adding one page in the middle
of the file, and adjusting .p_offset etc.  In rare cases (1/4096)
this fails because the PT_LOADs abut exactly in the address space.

Another way to get space is to steal it from DT_HASH by reducing
the number of bucket headers: you get 8 bytes per bucket.  See
http://www.BitWagon.com/elfvector.html for some code that does this.

But I have not figured out how to get ld [bfd] to _input_ an ET_EXEC
file (elf32-i386 format) and obey the obvious placement restrictions
on the ensuing elf32-i386 output.

-- 
John Reiser, jreiser@BitWagon.com



More information about the Binutils mailing list