Set plt_got.offset to (bfd_vma) -1
authorH.J. Lu <hjl.tools@gmail.com>
Wed, 24 Feb 2016 13:42:27 +0000 (05:42 -0800)
committerH.J. Lu <hjl.tools@gmail.com>
Wed, 24 Feb 2016 13:49:48 +0000 (05:49 -0800)
Since plt_got.offset may be updated in x86 allocate_dynrelocs, set
plt_got.offset to (bfd_vma) -1 when setting needs_plt to 0.

* elf32-i386.c (elf_i386_allocate_dynrelocs): Set plt_got.offset
to (bfd_vma) -1 when setting needs_plt to 0.
* elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise.

bfd/ChangeLog
bfd/elf32-i386.c
bfd/elf64-x86-64.c

index 0ed70b41517f060987887c1963c95598c93140da..e48f76bdb5ce62c88ce9371dca31aa4719a363a1 100644 (file)
@@ -1,3 +1,9 @@
+2016-02-24  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * elf32-i386.c (elf_i386_allocate_dynrelocs): Set plt_got.offset
+       to (bfd_vma) -1 when setting needs_plt to 0.
+       * elf64-x86-64.c (elf_x86_64_allocate_dynrelocs): Likewise.
+
 2016-02-23  H.J. Lu  <hongjiu.lu@intel.com>
 
        * elflink.c (bfd_elf_record_link_assignment): Check for shared
index a8951d8d586bc11d5eef3767c774bda1247e5079..f6c9c657490cce4ebc88646f86061665c7dfd22c 100644 (file)
@@ -2490,12 +2490,14 @@ elf_i386_allocate_dynrelocs (struct elf_link_hash_entry *h, void *inf)
        }
       else
        {
+         eh->plt_got.offset = (bfd_vma) -1;
          h->plt.offset = (bfd_vma) -1;
          h->needs_plt = 0;
        }
     }
   else
     {
+      eh->plt_got.offset = (bfd_vma) -1;
       h->plt.offset = (bfd_vma) -1;
       h->needs_plt = 0;
     }
index 8ea478d4bba4ae7f674fb6e6fdc5473dd9261803..7debc1e6c1d052b233ce36cb247ab5ee50402cd1 100644 (file)
@@ -2723,12 +2723,14 @@ elf_x86_64_allocate_dynrelocs (struct elf_link_hash_entry *h, void * inf)
        }
       else
        {
+         eh->plt_got.offset = (bfd_vma) -1;
          h->plt.offset = (bfd_vma) -1;
          h->needs_plt = 0;
        }
     }
   else
     {
+      eh->plt_got.offset = (bfd_vma) -1;
       h->plt.offset = (bfd_vma) -1;
       h->needs_plt = 0;
     }