On Mon, Mar 21, 2011 at 4:00 PM, Lassi Tuura <[email protected]> wrote:

>>>> 1. On many distributions, _dl_debug_state compiles to a single 'ret'.
...
> As long as _dl_debug_state() has enough space to patch in the jump to our
> code

A single 'ret' is a single byte, which isn't enough space to patch anything
(which was my point).

> The dynamic linkers I looked seem to be built with enough code padding
> that there's space to replace the ret with a jump.

You are likely saved by '-falign-functions=16', which leaves you 15 bytes
to play with.

You can't count on it though, and I believe that I *have* seen dynamic
loaders where there literally was only one byte available.


-- 
Paul Pluzhnikov

_______________________________________________
Libunwind-devel mailing list
[email protected]
http://lists.nongnu.org/mailman/listinfo/libunwind-devel

Reply via email to