mirror of
https://github.com/checkpoint-restore/criu.git
synced 2026-01-23 02:14:37 +00:00
compel hgen: fix for 32-bit ARM
Since commit 93db22b ("compel: no -r for ARM ldflags") and
commit ce043d3 ("compel: make plugins .a archives") the generated
parasite/restorer blobs for 32-bit ARM are no longer relocatable,
and so their ELF header has e_type of ET_EXEC (rather than ET_REL).
As a result, we have "Unsupported header detected" message and
a failure from compel hgen.
This commit allows e_type == ET_EXEC in case NO_RELOCS is defined.
I am not sure if it's OK to still allow ET_REL -- maybe Dmitry
can chime in on that.
Cc: Dmitry Safonov <dsafonov@virtuozzo.com>
Signed-off-by: Kir Kolyshkin <kir@openvz.org>
Signed-off-by: Andrei Vagin <avagin@virtuozzo.com>
This commit is contained in:
parent
61a3156e87
commit
bc93f12abd
1 changed files with 5 additions and 1 deletions
|
|
@ -86,7 +86,11 @@ static bool is_header_supported(Elf_Ehdr *hdr)
|
|||
{
|
||||
if (!arch_is_machine_supported(hdr->e_machine))
|
||||
return false;
|
||||
if (hdr->e_type != ET_REL || hdr->e_version != EV_CURRENT)
|
||||
if ((hdr->e_type != ET_REL
|
||||
#ifdef NO_RELOCS
|
||||
&& hdr->e_type != ET_EXEC
|
||||
#endif
|
||||
) || hdr->e_version != EV_CURRENT)
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue