bfd/elf64-aarch64.c: Use ELF64_R_SYM instead of ELF32_R_SYM.

Message ID 51B6D1BE.6050306@linaro.org
State Accepted
Headers show

Commit Message

Will Newton June 11, 2013, 7:29 a.m.
Fix incorrect usage of ELF32_R_SYM introduced in ifunc changes.

bfd/ChangeLog:

2013-06-11  Will Newton  <will.newton@linaro.org>

	* elf64-aarch64.c (elf_aarch64_get_local_sym_hash): Use
	ELF64_R_SYM instead of ELF32_R_SYM.
---
 bfd/elf64-aarch64.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Comments

Marcus Shawcroft June 11, 2013, 8:24 a.m. | #1
On 11/06/13 08:29, Will Newton wrote:
>
> Fix incorrect usage of ELF32_R_SYM introduced in ifunc changes.
>
> bfd/ChangeLog:
>
> 2013-06-11  Will Newton  <will.newton@linaro.org>
>
> 	* elf64-aarch64.c (elf_aarch64_get_local_sym_hash): Use
> 	ELF64_R_SYM instead of ELF32_R_SYM.
> ---
>   bfd/elf64-aarch64.c | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/bfd/elf64-aarch64.c b/bfd/elf64-aarch64.c
> index 5f1b700..19e18b4 100644
> --- a/bfd/elf64-aarch64.c
> +++ b/bfd/elf64-aarch64.c
> @@ -2033,11 +2033,11 @@ elf_aarch64_get_local_sym_hash (struct elf64_aarch64_link_hash_table *htab,
>     struct elf64_aarch64_link_hash_entry e, *ret;
>     asection *sec = abfd->sections;
>     hashval_t h = ELF_LOCAL_SYMBOL_HASH (sec->id,
> -				       ELF32_R_SYM (rel->r_info));
> +				       ELF64_R_SYM (rel->r_info));
>     void **slot;
>
>     e.root.indx = sec->id;
> -  e.root.dynstr_index = ELF32_R_SYM (rel->r_info);
> +  e.root.dynstr_index = ELF64_R_SYM (rel->r_info);
>     slot = htab_find_slot_with_hash (htab->loc_hash_table, &e, h,
>   				   create ? INSERT : NO_INSERT);
>
> @@ -2057,7 +2057,7 @@ elf_aarch64_get_local_sym_hash (struct elf64_aarch64_link_hash_table *htab,
>       {
>         memset (ret, 0, sizeof (*ret));
>         ret->root.indx = sec->id;
> -      ret->root.dynstr_index = ELF32_R_SYM (rel->r_info);
> +      ret->root.dynstr_index = ELF64_R_SYM (rel->r_info);
>         ret->root.dynindx = -1;
>         *slot = ret;
>       }
>

OK

/Marcus

Patch

diff --git a/bfd/elf64-aarch64.c b/bfd/elf64-aarch64.c
index 5f1b700..19e18b4 100644
--- a/bfd/elf64-aarch64.c
+++ b/bfd/elf64-aarch64.c
@@ -2033,11 +2033,11 @@  elf_aarch64_get_local_sym_hash (struct elf64_aarch64_link_hash_table *htab,
   struct elf64_aarch64_link_hash_entry e, *ret;
   asection *sec = abfd->sections;
   hashval_t h = ELF_LOCAL_SYMBOL_HASH (sec->id,
-				       ELF32_R_SYM (rel->r_info));
+				       ELF64_R_SYM (rel->r_info));
   void **slot;

   e.root.indx = sec->id;
-  e.root.dynstr_index = ELF32_R_SYM (rel->r_info);
+  e.root.dynstr_index = ELF64_R_SYM (rel->r_info);
   slot = htab_find_slot_with_hash (htab->loc_hash_table, &e, h,
 				   create ? INSERT : NO_INSERT);

@@ -2057,7 +2057,7 @@  elf_aarch64_get_local_sym_hash (struct elf64_aarch64_link_hash_table *htab,
     {
       memset (ret, 0, sizeof (*ret));
       ret->root.indx = sec->id;
-      ret->root.dynstr_index = ELF32_R_SYM (rel->r_info);
+      ret->root.dynstr_index = ELF64_R_SYM (rel->r_info);
       ret->root.dynindx = -1;
       *slot = ret;
     }