svn commit: r309371 - in stable: 10/libexec/rtld-elf 10/libexec/rtld-elf/sparc64 11/libexec/rtld-elf 11/libexec/rtld-elf/sparc64

2016-12-01 Thread John Baldwin
Author: jhb
Date: Thu Dec  1 20:36:48 2016
New Revision: 309371
URL: https://svnweb.freebsd.org/changeset/base/309371

Log:
  MFC 308456: Pass the correct flag to find_symdef() from _rtld_bind().
  
  When symbol versioning was added to rtld, the boolean 'in_plt' argument
  to find_symdef() was converted to a bitmask of flags.  The first flag
  added was 'SYMLOOK_IN_PLT' which replaced the 'in_plt' bool.  This
  happened to still work by accident as SYMLOOK_IN_PLT had the value of 1
  which is the same as 'true', so there should be no functional change.

Modified:
  stable/11/libexec/rtld-elf/rtld.c
  stable/11/libexec/rtld-elf/sparc64/reloc.c
Directory Properties:
  stable/11/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/10/libexec/rtld-elf/rtld.c
  stable/10/libexec/rtld-elf/sparc64/reloc.c
Directory Properties:
  stable/10/   (props changed)

Modified: stable/11/libexec/rtld-elf/rtld.c
==
--- stable/11/libexec/rtld-elf/rtld.c   Thu Dec  1 20:31:37 2016
(r309370)
+++ stable/11/libexec/rtld-elf/rtld.c   Thu Dec  1 20:36:48 2016
(r309371)
@@ -714,8 +714,8 @@ _rtld_bind(Obj_Entry *obj, Elf_Size relo
rel = (const Elf_Rel *) ((caddr_t) obj->pltrela + reloff);
 
 where = (Elf_Addr *) (obj->relocbase + rel->r_offset);
-def = find_symdef(ELF_R_SYM(rel->r_info), obj, &defobj, true, NULL,
-   &lockstate);
+def = find_symdef(ELF_R_SYM(rel->r_info), obj, &defobj, SYMLOOK_IN_PLT,
+   NULL, &lockstate);
 if (def == NULL)
rtld_die();
 if (ELF_ST_TYPE(def->st_info) == STT_GNU_IFUNC)

Modified: stable/11/libexec/rtld-elf/sparc64/reloc.c
==
--- stable/11/libexec/rtld-elf/sparc64/reloc.c  Thu Dec  1 20:31:37 2016
(r309370)
+++ stable/11/libexec/rtld-elf/sparc64/reloc.c  Thu Dec  1 20:36:48 2016
(r309371)
@@ -503,7 +503,7 @@ reloc_plt(Obj_Entry *obj)
assert(ELF64_R_TYPE_ID(rela->r_info) == R_SPARC_JMP_SLOT);
where = (Elf_Addr *)(obj->relocbase + rela->r_offset);
def = find_symdef(ELF_R_SYM(rela->r_info), obj, &defobj,
-   true, NULL, lockstate);
+   SYMLOOK_IN_PLT, NULL, lockstate);
value = (Elf_Addr)(defobj->relocbase + def->st_value);
*where = value;
}
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"


svn commit: r309371 - in stable: 10/libexec/rtld-elf 10/libexec/rtld-elf/sparc64 11/libexec/rtld-elf 11/libexec/rtld-elf/sparc64

2016-12-01 Thread John Baldwin
Author: jhb
Date: Thu Dec  1 20:36:48 2016
New Revision: 309371
URL: https://svnweb.freebsd.org/changeset/base/309371

Log:
  MFC 308456: Pass the correct flag to find_symdef() from _rtld_bind().
  
  When symbol versioning was added to rtld, the boolean 'in_plt' argument
  to find_symdef() was converted to a bitmask of flags.  The first flag
  added was 'SYMLOOK_IN_PLT' which replaced the 'in_plt' bool.  This
  happened to still work by accident as SYMLOOK_IN_PLT had the value of 1
  which is the same as 'true', so there should be no functional change.

Modified:
  stable/10/libexec/rtld-elf/rtld.c
  stable/10/libexec/rtld-elf/sparc64/reloc.c
Directory Properties:
  stable/10/   (props changed)

Changes in other areas also in this revision:
Modified:
  stable/11/libexec/rtld-elf/rtld.c
  stable/11/libexec/rtld-elf/sparc64/reloc.c
Directory Properties:
  stable/11/   (props changed)

Modified: stable/10/libexec/rtld-elf/rtld.c
==
--- stable/10/libexec/rtld-elf/rtld.c   Thu Dec  1 20:31:37 2016
(r309370)
+++ stable/10/libexec/rtld-elf/rtld.c   Thu Dec  1 20:36:48 2016
(r309371)
@@ -707,8 +707,8 @@ _rtld_bind(Obj_Entry *obj, Elf_Size relo
rel = (const Elf_Rel *) ((caddr_t) obj->pltrela + reloff);
 
 where = (Elf_Addr *) (obj->relocbase + rel->r_offset);
-def = find_symdef(ELF_R_SYM(rel->r_info), obj, &defobj, true, NULL,
-   &lockstate);
+def = find_symdef(ELF_R_SYM(rel->r_info), obj, &defobj, SYMLOOK_IN_PLT,
+   NULL, &lockstate);
 if (def == NULL)
rtld_die();
 if (ELF_ST_TYPE(def->st_info) == STT_GNU_IFUNC)

Modified: stable/10/libexec/rtld-elf/sparc64/reloc.c
==
--- stable/10/libexec/rtld-elf/sparc64/reloc.c  Thu Dec  1 20:31:37 2016
(r309370)
+++ stable/10/libexec/rtld-elf/sparc64/reloc.c  Thu Dec  1 20:36:48 2016
(r309371)
@@ -503,7 +503,7 @@ reloc_plt(Obj_Entry *obj)
assert(ELF64_R_TYPE_ID(rela->r_info) == R_SPARC_JMP_SLOT);
where = (Elf_Addr *)(obj->relocbase + rela->r_offset);
def = find_symdef(ELF_R_SYM(rela->r_info), obj, &defobj,
-   true, NULL, lockstate);
+   SYMLOOK_IN_PLT, NULL, lockstate);
value = (Elf_Addr)(defobj->relocbase + def->st_value);
*where = value;
}
___
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"