Commit e6a10972 authored by Cyrill Gorcunov's avatar Cyrill Gorcunov Committed by Pavel Emelyanov

pie: piegen -- Fix debug messages for relocs on x86-64

Signed-off-by: 's avatarCyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent 732aa040
...@@ -404,26 +404,26 @@ int handle_elf(void *mem, size_t size) ...@@ -404,26 +404,26 @@ int handle_elf(void *mem, size_t size)
#ifdef ELF_X86_64 #ifdef ELF_X86_64
case R_X86_64_32: /* Symbol + Addend (4 bytes) */ case R_X86_64_32: /* Symbol + Addend (4 bytes) */
pr_debug("\t\t\t\tR_X86_64_32 at 0x%-4lx val 0x%x\n", place, value32); pr_debug("\t\t\t\tR_X86_64_32 at 0x%-4lx val 0x%x\n", place, value32);
pr_out(" { .offset = 0x%-8x, .type = PIEGEN_TYPE_INT, " pr_out(" { .offset = 0x%-8x, .type = PIEGEN_TYPE_INT, "
".addend = %-8d, .value = 0x%-16x, }, /* R_X86_64_32 */\n", ".addend = %-8d, .value = 0x%-16x, }, /* R_X86_64_32 */\n",
(unsigned int)place, addend32, value32); (unsigned int)place, addend32, value32);
break; break;
case R_X86_64_64: /* Symbol + Addend (8 bytes) */ case R_X86_64_64: /* Symbol + Addend (8 bytes) */
pr_debug("\t\t\t\tR_X86_64_64 at 0x%-4lx val 0x%lx\n", place, value64); pr_debug("\t\t\t\tR_X86_64_64 at 0x%-4lx val 0x%lx\n", place, value64);
pr_out(" { .offset = 0x%-8x, .type = PIEGEN_TYPE_LONG, " pr_out(" { .offset = 0x%-8x, .type = PIEGEN_TYPE_LONG, "
".addend = %-8ld, .value = 0x%-16lx, }, /* R_X86_64_64 */\n", ".addend = %-8ld, .value = 0x%-16lx, }, /* R_X86_64_64 */\n",
(unsigned int)place, (long)addend64, (long)value64); (unsigned int)place, (long)addend64, (long)value64);
break; break;
case R_X86_64_PC32: /* Symbol + Addend - Place (4 bytes) */ case R_X86_64_PC32: /* Symbol + Addend - Place (4 bytes) */
pr_debug("\t\t\t\tR_386_PC32 at 0x%-4lx val 0x%x\n", place, value32 + addend32 - (s32)place); pr_debug("\t\t\t\tR_X86_64_PC32 at 0x%-4lx val 0x%x\n", place, value32 + addend32 - (s32)place);
/* /*
* R_X86_64_PC32 are relative, patch them inplace. * R_X86_64_PC32 are relative, patch them inplace.
*/ */
*((s32 *)where) = value32 + addend32 - place; *((s32 *)where) = value32 + addend32 - place;
break; break;
case R_X86_64_PLT32: /* ProcLinkage + Addend - Place (4 bytes) */ case R_X86_64_PLT32: /* ProcLinkage + Addend - Place (4 bytes) */
pr_debug("\t\t\t\tR_386_PLT32 at 0x%-4lx val 0x%x\n", place, value32 + addend32 - (s32)place); pr_debug("\t\t\t\tR_X86_64_PLT32 at 0x%-4lx val 0x%x\n", place, value32 + addend32 - (s32)place);
/* /*
* R_X86_64_PLT32 are relative, patch them inplace. * R_X86_64_PLT32 are relative, patch them inplace.
*/ */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment