[CRIU] [PATCH 2/2] compel: Add missing 32s support

Cyrill Gorcunov gorcunov at gmail.com
Tue Apr 19 05:03:28 PDT 2016


On Tue, Apr 19, 2016 at 03:00:00PM +0300, Dmitry Safonov wrote:
> On 04/19/2016 02:52 PM, Cyrill Gorcunov wrote:
> >On Tue, Apr 19, 2016 at 02:29:49PM +0300, Dmitry Safonov wrote:
> >>To be correct - after this patch from the second part, which
> >>adds this kind of relocation:
> >>https://github.com/0x7f454c46/criu/commit/7f1eb57e9e376dacc83cb9f96ebe55c02768713a
> >>Before I didn't get this relocation on compile before it.
> >mov will produce absolute address which should be addressed
> >during relocation resolving, but I would rather stick with
> >lea and figure out why it get broken earlier?
> 
> That's because parasite_service declared as:
> int __used __parasite_entry parasite_service(unsigned int cmd, void *args)
> 
> So the first parameter is number, not a pointer to number.
> And for the x86_64 we're doing the same:
> >    movl    __export_parasite_cmd(%rip), %edi
> >    leaq    __export_parasite_args(%rip), %rsi
> >    call    parasite_service
> 
> That's omitting broken offset (label 1/2 change) :)

Heh, I managed to forget the statement ;)
fwiw lea get used pretty common for basic
arithmetic as well


More information about the CRIU mailing list