diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 96f85f7013c..1ecacdd630e 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2014-07-15 H.J. Lu + + PR ld/17057 + * elf32-i386.c (elf_i386_compute_jump_table_size): Replace + next_tls_desc_index with elf.srelplt->reloc_count. + 2014-07-15 Alan Modra * cache.c (cache_bread_1): Don't return -1 when fread returns diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c index 551d17978e6..2244c6c935a 100644 --- a/bfd/elf32-i386.c +++ b/bfd/elf32-i386.c @@ -826,7 +826,7 @@ struct elf_i386_link_hash_table == I386_ELF_DATA ? ((struct elf_i386_link_hash_table *) ((p)->hash)) : NULL) #define elf_i386_compute_jump_table_size(htab) \ - ((htab)->next_tls_desc_index * 4) + ((htab)->elf.srelplt->reloc_count * 4) /* Create an entry in an i386 ELF linker hash table. */ diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index fbc9862b596..7c81ddfc268 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2014-07-15 H.J. Lu + + PR ld/17057 + * ld-i386/i386.exp: Run pr17057. + * ld-i386/pr17057.d: New file. + * ld-i386/pr17057.s: Likewise. + 2014-07-15 Jiong Wang * ld-aarch64/emit-relocs-local-addend.d: Use target linker script. diff --git a/ld/testsuite/ld-i386/i386.exp b/ld/testsuite/ld-i386/i386.exp index 04c399b863a..4d221823f7a 100644 --- a/ld/testsuite/ld-i386/i386.exp +++ b/ld/testsuite/ld-i386/i386.exp @@ -254,3 +254,4 @@ run_dump_test "compressed1" run_dump_test "pr12627" run_dump_test "pr13302" run_dump_test "pr14215" +run_dump_test "pr17057" diff --git a/ld/testsuite/ld-i386/pr17057.d b/ld/testsuite/ld-i386/pr17057.d new file mode 100644 index 00000000000..29cc676a5af --- /dev/null +++ b/ld/testsuite/ld-i386/pr17057.d @@ -0,0 +1,9 @@ +#name: PR ld/17057 +#as: --32 +#ld: -shared -melf_i386 +#readelf: -r --wide + +Relocation section '.rel.plt' at offset 0x[0-9a-f]+ contains 2 entries: + Offset Info Type Sym. Value Symbol's Name +[0-9a-f ]+R_386_JUMP_SLOT +0+ +foo +[0-9a-f ]+R_386_TLS_DESC +0+ +my_tls diff --git a/ld/testsuite/ld-i386/pr17057.s b/ld/testsuite/ld-i386/pr17057.s new file mode 100644 index 00000000000..a4e00ecacab --- /dev/null +++ b/ld/testsuite/ld-i386/pr17057.s @@ -0,0 +1,3 @@ + .text + leal my_tls@TLSDESC(%ebx), %eax + call foo@PLT