[PATCH v2] add -fprolog-pad=N option to c-family
AKASHI Takahiro
takahiro.akashi@linaro.org
Mon Oct 3 09:45:00 GMT 2016
On Fri, Sep 30, 2016 at 12:01:47PM +0200, Jose E. Marchesi wrote:
>
> In case anybody missed it, the Linux kernel side to make use
> of this has also been finished meanwhile. Of course it can not
> be accepted without compiler support; and this feature patch
> is much more versatile than just Linux kernel live patching
> on a single architecture.
>
> How is this supposed to be exploited atomically in RISC arches such as
> sparc? In such architectures you usually need to patch several
> instructions to load an absolute address into a register.
We had some disucssions in the context of arm64:
https://gcc.gnu.org/ml/gcc-patches/2016-04/msg01093.html
But I don't think that we reached a final consensus at that time.
Thanks,
-Takahiro AKASHI
> If a general mechanism is what is intended I would suggest to offer the
> possibility of extending the nops _before_ the function entry point,
> like in:
>
> (a) nop ! Load address
> nop ! Load address
> nop ! Load address
> nop ! Load address
> nop ! Jump to loaded address.
> entry:
> (b) nop ! PC-relative jump to (a)
> save %sp, bleh, %sp
> ...
>
> So after the live-patcher patches the loading of the destination address
> and the jump, it can atomically patch (b) to effectively replace the
> implementation of `entry'.
>
> Wdyt?
>
More information about the Gcc-patches
mailing list