diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index 1ecacdd..5e9ce0f 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,12 @@
+2014-07-16  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR binutils/17154
+	* elf32-i386.c (elf_i386_plt_sym_val): Only match R_*_JUMP_SLOT
+	and R_*_IRELATIVE relocation offset with PLT entry.
+	* elf64-x86-64.c (elf_x86_64_plt_sym_val): Likewise.
+	(elf_x86_64_plt_sym_val_offset_plt_bnd): New.
+	(elf_x86_64_get_synthetic_symtab): Use it.
+
 2014-07-15  H.J. Lu  <hongjiu.lu@intel.com>
 
 	PR ld/17057
diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c
index 2244c6c..aa01a7a 100644
--- a/bfd/elf32-i386.c
+++ b/bfd/elf32-i386.c
@@ -4976,14 +4976,42 @@ elf_i386_finish_dynamic_sections (bfd *output_bfd,
   return TRUE;
 }
 
-/* Return address for Ith PLT stub in section PLT, for relocation REL
-   or (bfd_vma) -1 if it should not be included.  */
+/* Return address in section PLT for the Ith GOTPLT relocation, for
+   relocation REL or (bfd_vma) -1 if it should not be included.  */
 
 static bfd_vma
-elf_i386_plt_sym_val (bfd_vma i, const asection *plt,
-		      const arelent *rel ATTRIBUTE_UNUSED)
+elf_i386_plt_sym_val (bfd_vma i, const asection *plt, const arelent *rel)
 {
-  return plt->vma + (i + 1) * GET_PLT_ENTRY_SIZE (plt->owner);
+  bfd *abfd;
+  const struct elf_i386_backend_data *bed;
+  bfd_vma plt_offset;
+
+  /* Only match R_386_JUMP_SLOT and R_386_IRELATIVE.  */
+  if (rel->howto->type != R_386_JUMP_SLOT
+      && rel->howto->type != R_386_IRELATIVE)
+    return (bfd_vma) -1;
+
+  abfd = plt->owner;
+  bed = get_elf_i386_backend_data (abfd);
+  plt_offset = bed->plt->plt_entry_size;
+  while (plt_offset < plt->size)
+    {
+      bfd_vma reloc_offset;
+      bfd_byte reloc_offset_raw[4];
+
+      if (!bfd_get_section_contents (abfd, (asection *) plt,
+				     reloc_offset_raw,
+				     plt_offset + bed->plt->plt_reloc_offset,
+				     sizeof (reloc_offset_raw)))
+	return (bfd_vma) -1;
+
+      reloc_offset = H_GET_32 (abfd, reloc_offset_raw);
+      if (reloc_offset == i * sizeof (Elf32_External_Rel))
+	return plt->vma + plt_offset;
+      plt_offset += bed->plt->plt_entry_size;
+    }
+
+  abort ();
 }
 
 /* Return TRUE if symbol should be hashed in the `.gnu.hash' section.  */
diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c
index 894ab98..5eea810 100644
--- a/bfd/elf64-x86-64.c
+++ b/bfd/elf64-x86-64.c
@@ -5292,14 +5292,77 @@ elf_x86_64_finish_dynamic_sections (bfd *output_bfd,
   return TRUE;
 }
 
-/* Return address for Ith PLT stub in section PLT, for relocation REL
-   or (bfd_vma) -1 if it should not be included.  */
+/* Return address in section PLT for the Ith GOTPLT relocation, for
+   relocation REL or (bfd_vma) -1 if it should not be included.  */
 
 static bfd_vma
 elf_x86_64_plt_sym_val (bfd_vma i, const asection *plt,
-			const arelent *rel ATTRIBUTE_UNUSED)
+			const arelent *rel)
 {
-  return plt->vma + (i + 1) * GET_PLT_ENTRY_SIZE (plt->owner);
+  bfd *abfd;
+  const struct elf_x86_64_backend_data *bed;
+  bfd_vma plt_offset;
+
+  /* Only match R_X86_64_JUMP_SLOT and R_X86_64_IRELATIVE.  */
+  if (rel->howto->type != R_X86_64_JUMP_SLOT
+      && rel->howto->type != R_X86_64_IRELATIVE)
+    return (bfd_vma) -1;
+
+  abfd = plt->owner;
+  bed = get_elf_x86_64_backend_data (abfd);
+  plt_offset = bed->plt_entry_size;
+  while (plt_offset < plt->size)
+    {
+      bfd_vma reloc_index;
+      bfd_byte reloc_index_raw[4];
+
+      if (!bfd_get_section_contents (abfd, (asection *) plt,
+				     reloc_index_raw,
+				     plt_offset + bed->plt_reloc_offset,
+				     sizeof (reloc_index_raw)))
+	return (bfd_vma) -1;
+
+      reloc_index = H_GET_32 (abfd, reloc_index_raw);
+      if (reloc_index == i)
+	return plt->vma + plt_offset;
+      plt_offset += bed->plt_entry_size;
+    }
+
+  abort ();
+}
+
+/* Return offset in .plt.bnd section for the Ith GOTPLT relocation with
+   PLT section, or (bfd_vma) -1 if it should not be included.  */
+
+static bfd_vma
+elf_x86_64_plt_sym_val_offset_plt_bnd (bfd_vma i, const asection *plt)
+{
+  const struct elf_x86_64_backend_data *bed = &elf_x86_64_bnd_arch_bed;
+  bfd *abfd = plt->owner;
+  bfd_vma plt_offset = bed->plt_entry_size;
+  while (plt_offset < plt->size)
+    {
+      bfd_vma reloc_index;
+      bfd_byte reloc_index_raw[4];
+
+      if (!bfd_get_section_contents (abfd, (asection *) plt,
+				     reloc_index_raw,
+				     plt_offset + bed->plt_reloc_offset,
+				     sizeof (reloc_index_raw)))
+	return (bfd_vma) -1;
+
+      reloc_index = H_GET_32 (abfd, reloc_index_raw);
+      if (reloc_index == i)
+	{
+	  /* This is the index in .plt section.  */
+	  long plt_index = plt_offset / bed->plt_entry_size;
+	  /* Return the offset in .plt.bnd section.  */
+	  return (plt_index - 1) * sizeof (elf_x86_64_legacy_plt2_entry);
+	}
+      plt_offset += bed->plt_entry_size;
+    }
+
+  abort ();
 }
 
 /* Similar to _bfd_elf_get_synthetic_symtab, with .plt.bnd section
@@ -5322,8 +5385,11 @@ elf_x86_64_get_synthetic_symtab (bfd *abfd,
   size_t size;
   Elf_Internal_Shdr *hdr;
   char *names;
-  asection *plt;
-  bfd_vma addr;
+  asection *plt, *plt_push;
+
+  plt_push = bfd_get_section_by_name (abfd, ".plt");
+  if (plt_push == NULL)
+    return 0;
 
   plt = bfd_get_section_by_name (abfd, ".plt.bnd");
   /* Use the generic ELF version if there is no .plt.bnd section.  */
@@ -5369,11 +5435,17 @@ elf_x86_64_get_synthetic_symtab (bfd *abfd,
   names = (char *) (s + count);
   p = relplt->relocation;
   n = 0;
-  addr = 0;
   for (i = 0; i < count; i++, p++)
     {
+      bfd_vma offset;
       size_t len;
 
+      if (p->howto->type != R_X86_64_JUMP_SLOT
+	  && p->howto->type != R_X86_64_IRELATIVE)
+	continue;
+
+      offset = elf_x86_64_plt_sym_val_offset_plt_bnd (i, plt_push);
+
       *s = **p->sym_ptr_ptr;
       /* Undefined syms won't have BSF_LOCAL or BSF_GLOBAL set.  Since
 	 we are defining a symbol, ensure one of them is set.  */
@@ -5381,7 +5453,7 @@ elf_x86_64_get_synthetic_symtab (bfd *abfd,
 	s->flags |= BSF_GLOBAL;
       s->flags |= BSF_SYNTHETIC;
       s->section = plt;
-      s->value = addr;
+      s->value = offset;
       s->name = names;
       s->udata.p = NULL;
       len = strlen ((*p->sym_ptr_ptr)->name);
@@ -5403,7 +5475,6 @@ elf_x86_64_get_synthetic_symtab (bfd *abfd,
       memcpy (names, "@plt", sizeof ("@plt"));
       names += sizeof ("@plt");
       ++s, ++n;
-      addr += sizeof (elf_x86_64_legacy_plt2_entry);
     }
 
   return n;
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index 7c81ddf..e940e1a 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,3 +1,15 @@
+2014-07-16  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR binutils/17154
+	* ld-ifunc/pr17154-i386.d: New file.
+	* ld-ifunc/pr17154-x86-64.d: Likewise.
+	* ld-ifunc/pr17154-x86.s: Likewise.
+	* ld-x86-64/bnd-ifunc-2.d: Likewise.
+	* ld-x86-64/bnd-ifunc-2.s: Likewise.
+	* ld-x86-64/mpx.exp: Run bnd-ifunc-2.
+	* ld-x86-64/tlsdesc-nacl.pd: Updated.
+	* ld-x86-64/tlsdesc.pd: Likewise.
+
 2014-07-15  H.J. Lu  <hongjiu.lu@intel.com>
 
 	PR ld/17057
diff --git a/ld/testsuite/ld-ifunc/pr17154-i386.d b/ld/testsuite/ld-ifunc/pr17154-i386.d
new file mode 100644
index 0000000..e526223
--- /dev/null
+++ b/ld/testsuite/ld-ifunc/pr17154-i386.d
@@ -0,0 +1,47 @@
+#source: pr17154-x86.s
+#ld: -m elf_i386 -shared
+#as: --32
+#objdump: -dw
+#target: x86_64-*-* i?86-*-*
+
+#...
+0+1d0 <\*ABS\*@plt-0x10>:
+[ 	]*[a-f0-9]+:	ff b3 04 00 00 00    	pushl  0x4\(%ebx\)
+[ 	]*[a-f0-9]+:	ff a3 08 00 00 00    	jmp    \*0x8\(%ebx\)
+[ 	]*[a-f0-9]+:	00 00                	add    %al,\(%eax\)
+	...
+
+0+1e0 <\*ABS\*@plt>:
+[ 	]*[a-f0-9]+:	ff a3 0c 00 00 00    	jmp    \*0xc\(%ebx\)
+[ 	]*[a-f0-9]+:	68 18 00 00 00       	push   \$0x18
+[ 	]*[a-f0-9]+:	e9 e0 ff ff ff       	jmp    1d0 <\*ABS\*@plt-0x10>
+
+0+1f0 <func1@plt>:
+[ 	]*[a-f0-9]+:	ff a3 10 00 00 00    	jmp    \*0x10\(%ebx\)
+[ 	]*[a-f0-9]+:	68 00 00 00 00       	push   \$0x0
+[ 	]*[a-f0-9]+:	e9 d0 ff ff ff       	jmp    1d0 <\*ABS\*@plt-0x10>
+
+0+200 <func2@plt>:
+[ 	]*[a-f0-9]+:	ff a3 14 00 00 00    	jmp    \*0x14\(%ebx\)
+[ 	]*[a-f0-9]+:	68 08 00 00 00       	push   \$0x8
+[ 	]*[a-f0-9]+:	e9 c0 ff ff ff       	jmp    1d0 <\*ABS\*@plt-0x10>
+
+0+210 <\*ABS\*@plt>:
+[ 	]*[a-f0-9]+:	ff a3 18 00 00 00    	jmp    \*0x18\(%ebx\)
+[ 	]*[a-f0-9]+:	68 10 00 00 00       	push   \$0x10
+[ 	]*[a-f0-9]+:	e9 b0 ff ff ff       	jmp    1d0 <\*ABS\*@plt-0x10>
+
+Disassembly of section .text:
+
+0+220 <resolve1>:
+[ 	]*[a-f0-9]+:	e8 cb ff ff ff       	call   1f0 <func1@plt>
+
+0+225 <g1>:
+[ 	]*[a-f0-9]+:	e9 e6 ff ff ff       	jmp    210 <\*ABS\*@plt>
+
+0+22a <resolve2>:
+[ 	]*[a-f0-9]+:	e8 d1 ff ff ff       	call   200 <func2@plt>
+
+0+22f <g2>:
+[ 	]*[a-f0-9]+:	e9 ac ff ff ff       	jmp    1e0 <\*ABS\*@plt>
+#pass
diff --git a/ld/testsuite/ld-ifunc/pr17154-x86-64.d b/ld/testsuite/ld-ifunc/pr17154-x86-64.d
new file mode 100644
index 0000000..0dbc547
--- /dev/null
+++ b/ld/testsuite/ld-ifunc/pr17154-x86-64.d
@@ -0,0 +1,46 @@
+#source: pr17154-x86.s
+#as: --64
+#ld: -shared -melf_x86_64
+#objdump: -dw
+#target: x86_64-*-*
+
+#...
+0+2d0 <\*ABS\*\+0x32a@plt-0x10>:
+[ 	]*[a-f0-9]+:	ff 35 5a 01 20 00    	pushq  0x20015a\(%rip\)        # 200430 <_GLOBAL_OFFSET_TABLE_\+0x8>
+[ 	]*[a-f0-9]+:	ff 25 5c 01 20 00    	jmpq   \*0x20015c\(%rip\)        # 200438 <_GLOBAL_OFFSET_TABLE_\+0x10>
+[ 	]*[a-f0-9]+:	0f 1f 40 00          	nopl   0x0\(%rax\)
+
+0+2e0 <\*ABS\*\+0x32a@plt>:
+[ 	]*[a-f0-9]+:	ff 25 5a 01 20 00    	jmpq   \*0x20015a\(%rip\)        # 200440 <_GLOBAL_OFFSET_TABLE_\+0x18>
+[ 	]*[a-f0-9]+:	68 03 00 00 00       	pushq  \$0x3
+[ 	]*[a-f0-9]+:	e9 e0 ff ff ff       	jmpq   2d0 <\*ABS\*\+0x32a@plt-0x10>
+
+0+2f0 <func1@plt>:
+[ 	]*[a-f0-9]+:	ff 25 52 01 20 00    	jmpq   \*0x200152\(%rip\)        # 200448 <_GLOBAL_OFFSET_TABLE_\+0x20>
+[ 	]*[a-f0-9]+:	68 00 00 00 00       	pushq  \$0x0
+[ 	]*[a-f0-9]+:	e9 d0 ff ff ff       	jmpq   2d0 <\*ABS\*\+0x32a@plt-0x10>
+
+0+300 <func2@plt>:
+[ 	]*[a-f0-9]+:	ff 25 4a 01 20 00    	jmpq   \*0x20014a\(%rip\)        # 200450 <_GLOBAL_OFFSET_TABLE_\+0x28>
+[ 	]*[a-f0-9]+:	68 01 00 00 00       	pushq  \$0x1
+[ 	]*[a-f0-9]+:	e9 c0 ff ff ff       	jmpq   2d0 <\*ABS\*\+0x32a@plt-0x10>
+
+0+310 <\*ABS\*\+0x320@plt>:
+[ 	]*[a-f0-9]+:	ff 25 42 01 20 00    	jmpq   \*0x200142\(%rip\)        # 200458 <_GLOBAL_OFFSET_TABLE_\+0x30>
+[ 	]*[a-f0-9]+:	68 02 00 00 00       	pushq  \$0x2
+[ 	]*[a-f0-9]+:	e9 b0 ff ff ff       	jmpq   2d0 <\*ABS\*\+0x32a@plt-0x10>
+
+Disassembly of section .text:
+
+0+320 <resolve1>:
+[ 	]*[a-f0-9]+:	e8 cb ff ff ff       	callq  2f0 <func1@plt>
+
+0+325 <g1>:
+[ 	]*[a-f0-9]+:	e9 e6 ff ff ff       	jmpq   310 <\*ABS\*\+0x320@plt>
+
+0+32a <resolve2>:
+[ 	]*[a-f0-9]+:	e8 d1 ff ff ff       	callq  300 <func2@plt>
+
+0+32f <g2>:
+[ 	]*[a-f0-9]+:	e9 ac ff ff ff       	jmpq   2e0 <\*ABS\*\+0x32a@plt>
+#pass
diff --git a/ld/testsuite/ld-ifunc/pr17154-x86.s b/ld/testsuite/ld-ifunc/pr17154-x86.s
new file mode 100644
index 0000000..86470a2
--- /dev/null
+++ b/ld/testsuite/ld-ifunc/pr17154-x86.s
@@ -0,0 +1,28 @@
+	.text
+	.globl	fct1
+	.type	fct1, @gnu_indirect_function
+	.set	fct1,resolve1
+	.hidden int_fct1
+	.globl	int_fct1
+	.set	int_fct1,fct1
+	.type	resolve1, @function
+resolve1:
+	call	func1@PLT
+	.globl	g1
+	.type	g1, @function
+g1:
+	jmp	int_fct1@PLT
+
+	.globl	fct2
+	.type	fct2, @gnu_indirect_function
+	.set	fct2,resolve2
+	.hidden int_fct2
+	.globl	int_fct2
+	.set	int_fct2,fct2
+	.type	resolve2, @function
+resolve2:
+	call	func2@PLT
+	.globl	g2
+	.type	g2, @function
+g2:
+	jmp	int_fct2@PLT
diff --git a/ld/testsuite/ld-x86-64/bnd-ifunc-2.d b/ld/testsuite/ld-x86-64/bnd-ifunc-2.d
new file mode 100644
index 0000000..43e3356
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/bnd-ifunc-2.d
@@ -0,0 +1,54 @@
+#as: --64 -madd-bnd-prefix
+#ld: -shared -melf_x86_64
+#objdump: -dw
+
+#...
+0+2d0 <.plt>:
+[ 	]*[a-f0-9]+:	ff 35 7a 01 20 00    	pushq  0x20017a\(%rip\)        # 200450 <_GLOBAL_OFFSET_TABLE_\+0x8>
+[ 	]*[a-f0-9]+:	f2 ff 25 7b 01 20 00 	bnd jmpq \*0x20017b\(%rip\)        # 200458 <_GLOBAL_OFFSET_TABLE_\+0x10>
+[ 	]*[a-f0-9]+:	0f 1f 00             	nopl   \(%rax\)
+[ 	]*[a-f0-9]+:	68 03 00 00 00       	pushq  \$0x3
+[ 	]*[a-f0-9]+:	f2 e9 e5 ff ff ff    	bnd jmpq 2d0 <\*ABS\*\+0x34c@plt-0x50>
+[ 	]*[a-f0-9]+:	0f 1f 44 00 00       	nopl   0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	68 00 00 00 00       	pushq  \$0x0
+[ 	]*[a-f0-9]+:	f2 e9 d5 ff ff ff    	bnd jmpq 2d0 <\*ABS\*\+0x34c@plt-0x50>
+[ 	]*[a-f0-9]+:	0f 1f 44 00 00       	nopl   0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	68 01 00 00 00       	pushq  \$0x1
+[ 	]*[a-f0-9]+:	f2 e9 c5 ff ff ff    	bnd jmpq 2d0 <\*ABS\*\+0x34c@plt-0x50>
+[ 	]*[a-f0-9]+:	0f 1f 44 00 00       	nopl   0x0\(%rax,%rax,1\)
+[ 	]*[a-f0-9]+:	68 02 00 00 00       	pushq  \$0x2
+[ 	]*[a-f0-9]+:	f2 e9 b5 ff ff ff    	bnd jmpq 2d0 <\*ABS\*\+0x34c@plt-0x50>
+[ 	]*[a-f0-9]+:	0f 1f 44 00 00       	nopl   0x0\(%rax,%rax,1\)
+
+Disassembly of section .plt.bnd:
+
+0+320 <\*ABS\*\+0x34c@plt>:
+[ 	]*[a-f0-9]+:	f2 ff 25 39 01 20 00 	bnd jmpq \*0x200139\(%rip\)        # 200460 <_GLOBAL_OFFSET_TABLE_\+0x18>
+[ 	]*[a-f0-9]+:	90                   	nop
+
+0+328 <func1@plt>:
+[ 	]*[a-f0-9]+:	f2 ff 25 39 01 20 00 	bnd jmpq \*0x200139\(%rip\)        # 200468 <_GLOBAL_OFFSET_TABLE_\+0x20>
+[ 	]*[a-f0-9]+:	90                   	nop
+
+0+330 <func2@plt>:
+[ 	]*[a-f0-9]+:	f2 ff 25 39 01 20 00 	bnd jmpq \*0x200139\(%rip\)        # 200470 <_GLOBAL_OFFSET_TABLE_\+0x28>
+[ 	]*[a-f0-9]+:	90                   	nop
+
+0+338 <\*ABS\*\+0x340@plt>:
+[ 	]*[a-f0-9]+:	f2 ff 25 39 01 20 00 	bnd jmpq \*0x200139\(%rip\)        # 200478 <_GLOBAL_OFFSET_TABLE_\+0x30>
+[ 	]*[a-f0-9]+:	90                   	nop
+
+Disassembly of section .text:
+
+0+340 <resolve1>:
+[ 	]*[a-f0-9]+:	f2 e8 e2 ff ff ff    	bnd callq 328 <func1@plt>
+
+0+346 <g1>:
+[ 	]*[a-f0-9]+:	f2 e9 ec ff ff ff    	bnd jmpq 338 <\*ABS\*\+0x340@plt>
+
+0+34c <resolve2>:
+[ 	]*[a-f0-9]+:	f2 e8 de ff ff ff    	bnd callq 330 <func2@plt>
+
+0+352 <g2>:
+[ 	]*[a-f0-9]+:	f2 e9 c8 ff ff ff    	bnd jmpq 320 <\*ABS\*\+0x34c@plt>
+#pass
diff --git a/ld/testsuite/ld-x86-64/bnd-ifunc-2.s b/ld/testsuite/ld-x86-64/bnd-ifunc-2.s
new file mode 100644
index 0000000..86470a2
--- /dev/null
+++ b/ld/testsuite/ld-x86-64/bnd-ifunc-2.s
@@ -0,0 +1,28 @@
+	.text
+	.globl	fct1
+	.type	fct1, @gnu_indirect_function
+	.set	fct1,resolve1
+	.hidden int_fct1
+	.globl	int_fct1
+	.set	int_fct1,fct1
+	.type	resolve1, @function
+resolve1:
+	call	func1@PLT
+	.globl	g1
+	.type	g1, @function
+g1:
+	jmp	int_fct1@PLT
+
+	.globl	fct2
+	.type	fct2, @gnu_indirect_function
+	.set	fct2,resolve2
+	.hidden int_fct2
+	.globl	int_fct2
+	.set	int_fct2,fct2
+	.type	resolve2, @function
+resolve2:
+	call	func2@PLT
+	.globl	g2
+	.type	g2, @function
+g2:
+	jmp	int_fct2@PLT
diff --git a/ld/testsuite/ld-x86-64/mpx.exp b/ld/testsuite/ld-x86-64/mpx.exp
index 3224048..f2a50d4 100644
--- a/ld/testsuite/ld-x86-64/mpx.exp
+++ b/ld/testsuite/ld-x86-64/mpx.exp
@@ -78,4 +78,5 @@ run_ld_link_exec_tests [] $run_tests
 
 run_dump_test "bnd-branch-1"
 run_dump_test "bnd-ifunc-1"
+run_dump_test "bnd-ifunc-2"
 run_dump_test "bnd-plt-1"
diff --git a/ld/testsuite/ld-x86-64/tlsdesc-nacl.pd b/ld/testsuite/ld-x86-64/tlsdesc-nacl.pd
index e2ba398..eff90a8 100644
--- a/ld/testsuite/ld-x86-64/tlsdesc-nacl.pd
+++ b/ld/testsuite/ld-x86-64/tlsdesc-nacl.pd
@@ -9,7 +9,7 @@
 
 Disassembly of section .plt:
 
-[0-9a-f]+ <.*@plt-0x40>:
+[0-9a-f]+ <.plt>:
  +[0-9a-f]+:	ff 35 .. .. .. ..    	pushq  0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x8>
  +[0-9a-f]+:	4c 8b 1d .. .. .. .. 	mov    0x[0-9a-f]+\(%rip\),%r11 +# [0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x10>
  +[0-9a-f]+:	41 83 e3 e0          	and    \$0xffffffe0,%r11d
@@ -24,8 +24,6 @@ Disassembly of section .plt:
  +[0-9a-f]+:	0f 1f 84 00 00 00 00 *
  +[0-9a-f]+:	00 *
  +[0-9a-f]+:	66 90                	xchg   %ax,%ax
-
-[0-9a-f]+ <.*@plt>:
  +[0-9a-f]+:	ff 35 .. .. .. ..    	pushq  0x[0-9a-f]+\(%rip\) +# [0-9a-f]+ <_GLOBAL_OFFSET_TABLE_\+0x8>
  +[0-9a-f]+:	4c 8b 1d .. .. .. .. 	mov    0x[0-9a-f]+\(%rip\),%r11 +# [0-9a-f]+ <_DYNAMIC\+0x190>
  +[0-9a-f]+:	41 83 e3 e0          	and    \$0xffffffe0,%r11d
diff --git a/ld/testsuite/ld-x86-64/tlsdesc.pd b/ld/testsuite/ld-x86-64/tlsdesc.pd
index 2176576..c24403c 100644
--- a/ld/testsuite/ld-x86-64/tlsdesc.pd
+++ b/ld/testsuite/ld-x86-64/tlsdesc.pd
@@ -9,11 +9,10 @@
 
 Disassembly of section .plt:
 
-[0-9a-f]+ <.*@plt-0x10>:
+[0-9a-f]+ <.plt>:
  [0-9a-f]+:	ff 35 .. .. 20 00    	pushq  .*\(%rip\)        # 201358 <_GLOBAL_OFFSET_TABLE_\+0x8>
  [0-9a-f]+:	ff 25 .. .. 20 00    	jmpq   \*.*\(%rip\)        # 201360 <_GLOBAL_OFFSET_TABLE_\+0x10>
  [0-9a-f]+:	0f 1f 40 00          	nopl   0x0\(%rax\)
-[0-9a-f]+ <.*@plt>:
  [0-9a-f]+:	ff 35 .. .. 20 00    	pushq  .*\(%rip\)        # 201358 <_GLOBAL_OFFSET_TABLE_\+0x8>
  [0-9a-f]+:	ff 25 .. .. 20 00    	jmpq   \*.*\(%rip\)        # 201348 <_DYNAMIC\+0x190>
  [0-9a-f]+:	0f 1f 40 00          	nopl   0x0\(%rax\)
