From caa0075c3875e4dcbfa0b758ee95037c526e9082 Mon Sep 17 00:00:00 2001 From: Roland McGrath Date: Wed, 14 Mar 2012 19:32:11 +0000 Subject: [PATCH] * elf32-i386.c (elf_i386_nacl_pic_plt0_entry): Initialize up to the full size, padding out with nop instructions. --- bfd/ChangeLog | 5 +++++ bfd/elf32-i386.c | 7 +++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/bfd/ChangeLog b/bfd/ChangeLog index eacf84e4fec..634fba932e3 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2012-03-14 Roland McGrath + + * elf32-i386.c (elf_i386_nacl_pic_plt0_entry): Initialize up + to the full size, padding out with nop instructions. + 2012-03-12 Alan Modra * elf-m10300.c (_bfd_mn10300_elf_adjust_dynamic_symbol): Don't warn diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c index 3014a0a83aa..4ae21664f6a 100644 --- a/bfd/elf32-i386.c +++ b/bfd/elf32-i386.c @@ -2702,7 +2702,7 @@ elf_i386_size_dynamic_sections (bfd *output_bfd, struct bfd_link_info *info) it's not incremented, so in order to compute the space reserved for them, it suffices to multiply the reloc count by the jump slot size. - + PR ld/13302: We start next_irelative_index at the end of .rela.plt so that R_386_IRELATIVE entries come last. */ if (htab->elf.srelplt) @@ -5109,7 +5109,10 @@ elf_i386_nacl_pic_plt0_entry[sizeof (elf_i386_nacl_plt0_entry)] = 0x8b, 0x4b, 0x08, /* mov 0x8(%ebx), %ecx */ 0x83, 0xe1, 0xe0, /* and $NACLMASK, %ecx */ 0xff, 0xe1, /* jmp *%ecx */ - 0x90 /* nop */ + + /* This is expected to be the same size as elf_i386_nacl_plt0_entry, + so pad to that size with nop instructions. */ + 0x90, 0x90, 0x90, 0x90, 0x90, 0x90 }; static const bfd_byte elf_i386_nacl_pic_plt_entry[NACL_PLT_ENTRY_SIZE] = -- 2.30.2