• Dmitry Safonov's avatar
    pie/restorer: add vdso_fill_symtable_compat for 32-bit vdso · f52ea57d
    Dmitry Safonov authored
    While restorering compatible application on x86-64, we need
    to parse 32-bit vDSO. By that reason I need _three_ compiled
    object versions for util-vdso:
    - for native parasite it's util-vdso.o
    - for compatible parasite it's compat/util-vdso.o
    - for restorer it's util-vdso.o and util-vdso-elf32.o
    
    Note, that I can't link compat/util-vdso.o to restorer, as it's
    i386 ELF which ld can't link to x86_64 ELF file.
    
    TODO: maybe I'll need to refactor and introduce generic
    CONFIG_COMPAT instead of those defined(CONFIG_X86_32).
    
    Fixes:
      pie: 27504: vdso: Mapping compatible vDSO at 0x25000
      pie: 27504: Remap 0x7f3de3efa000->0x8048000 len 0x1000
      ...
      pie: 27504: vdso: Parsing at 0xf7776000 0xf7778000
      pie: 27504: Error (pie/util-vdso.c:87): vdso: Elf header magic mismatch
      pie: 27504: Error (pie/restorer.c:1540): Restorer fail 27504
      (00.029188) Error (cr-restore.c:988): 27504 exited, status=1
      (00.033072) Error (cr-restore.c:1870): Restoring FAILED.
    
    Cc: Cyrill Gorcunov <gorcunov@openvz.org>
    Signed-off-by: 's avatarDmitry Safonov <dsafonov@virtuozzo.com>
    Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
    Signed-off-by: 's avatarAndrei Vagin <avagin@virtuozzo.com>
    f52ea57d
Name
Last commit
Last update
Documentation Loading commit data...
compel Loading commit data...
contrib Loading commit data...
coredump Loading commit data...
crit Loading commit data...
criu Loading commit data...
images Loading commit data...
include/common Loading commit data...
lib Loading commit data...
scripts Loading commit data...
soccr Loading commit data...
test Loading commit data...
.gitignore Loading commit data...
.mailmap Loading commit data...
.travis.yml Loading commit data...
COPYING Loading commit data...
CREDITS Loading commit data...
INSTALL.md Loading commit data...
Makefile Loading commit data...
Makefile.config Loading commit data...
Makefile.install Loading commit data...
Makefile.versions Loading commit data...
README.md Loading commit data...