CVS commit: src/libexec/ld.elf_so/arch/i386
Module Name:src Committed By: joerg Date: Sun Aug 31 20:06:22 UTC 2014 Modified Files: src/libexec/ld.elf_so/arch/i386: mdreloc.c Log Message: Remove (now duplicated) target computation. To generate a diff of this commit: cvs rdiff -u -r1.36 -r1.37 src/libexec/ld.elf_so/arch/i386/mdreloc.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/libexec/ld.elf_so/arch/i386/mdreloc.c diff -u src/libexec/ld.elf_so/arch/i386/mdreloc.c:1.36 src/libexec/ld.elf_so/arch/i386/mdreloc.c:1.37 --- src/libexec/ld.elf_so/arch/i386/mdreloc.c:1.36 Mon Aug 25 20:40:52 2014 +++ src/libexec/ld.elf_so/arch/i386/mdreloc.c Sun Aug 31 20:06:22 2014 @@ -1,8 +1,8 @@ -/* $NetBSD: mdreloc.c,v 1.36 2014/08/25 20:40:52 joerg Exp $ */ +/* $NetBSD: mdreloc.c,v 1.37 2014/08/31 20:06:22 joerg Exp $ */ #include sys/cdefs.h #ifndef lint -__RCSID($NetBSD: mdreloc.c,v 1.36 2014/08/25 20:40:52 joerg Exp $); +__RCSID($NetBSD: mdreloc.c,v 1.37 2014/08/31 20:06:22 joerg Exp $); #endif /* not lint */ #include sys/types.h @@ -238,7 +238,6 @@ _rtld_relocate_plt_object(const Obj_Entr target = (Elf_Addr)(defobj-relocbase + def-st_value); } - target = (Elf_Addr)(defobj-relocbase + def-st_value); rdbg((bind now/fixup in %s -- old=%p new=%p, defobj-strtab + def-st_name, (void *)*where, (void *)target));
CVS commit: src/libexec/ld.elf_so/arch/i386
Module Name:src Committed By: apb Date: Wed Nov 7 07:24:46 UTC 2012 Modified Files: src/libexec/ld.elf_so/arch/i386: mdreloc.c Log Message: Add support for R_386_TLS_TPOFF32. This patch was created by Nick Hudson for PR 47061. To generate a diff of this commit: cvs rdiff -u -r1.34 -r1.35 src/libexec/ld.elf_so/arch/i386/mdreloc.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/libexec/ld.elf_so/arch/i386/mdreloc.c diff -u src/libexec/ld.elf_so/arch/i386/mdreloc.c:1.34 src/libexec/ld.elf_so/arch/i386/mdreloc.c:1.35 --- src/libexec/ld.elf_so/arch/i386/mdreloc.c:1.34 Fri Mar 25 18:07:05 2011 +++ src/libexec/ld.elf_so/arch/i386/mdreloc.c Wed Nov 7 07:24:46 2012 @@ -1,8 +1,8 @@ -/* $NetBSD: mdreloc.c,v 1.34 2011/03/25 18:07:05 joerg Exp $ */ +/* $NetBSD: mdreloc.c,v 1.35 2012/11/07 07:24:46 apb Exp $ */ #include sys/cdefs.h #ifndef lint -__RCSID($NetBSD: mdreloc.c,v 1.34 2011/03/25 18:07:05 joerg Exp $); +__RCSID($NetBSD: mdreloc.c,v 1.35 2012/11/07 07:24:46 apb Exp $); #endif /* not lint */ #include sys/types.h @@ -129,13 +129,28 @@ _rtld_relocate_nonplt_objects(Obj_Entry _rtld_tls_offset_allocate(obj)) return -1; - *where = (Elf_Addr)(def-st_value - defobj-tlsoffset); + *where += (Elf_Addr)(def-st_value - defobj-tlsoffset); rdbg((TLS_TPOFF %s in %s -- %p, obj-strtab + obj-symtab[symnum].st_name, obj-path, (void *)*where)); break; + case R_TYPE(TLS_TPOFF32): + def = _rtld_find_symdef(symnum, obj, defobj, false); + if (def == NULL) +return -1; + + if (!defobj-tls_done + _rtld_tls_offset_allocate(obj)) +return -1; + + *where += (Elf_Addr)(defobj-tlsoffset - def-st_value); + rdbg((TLS_TPOFF32 %s in %s -- %p, + obj-strtab + obj-symtab[symnum].st_name, + obj-path, (void *)*where)); + break; + case R_TYPE(TLS_DTPMOD32): def = _rtld_find_symdef(symnum, obj, defobj, false); if (def == NULL)
CVS commit: src/libexec/ld.elf_so/arch/i386
Module Name:src Committed By: skrll Date: Wed Jan 13 22:34:07 UTC 2010 Modified Files: src/libexec/ld.elf_so/arch/i386: mdreloc.c Log Message: Shut gcc up. To generate a diff of this commit: cvs rdiff -u -r1.29 -r1.30 src/libexec/ld.elf_so/arch/i386/mdreloc.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. Modified files: Index: src/libexec/ld.elf_so/arch/i386/mdreloc.c diff -u src/libexec/ld.elf_so/arch/i386/mdreloc.c:1.29 src/libexec/ld.elf_so/arch/i386/mdreloc.c:1.30 --- src/libexec/ld.elf_so/arch/i386/mdreloc.c:1.29 Wed Jan 13 20:17:22 2010 +++ src/libexec/ld.elf_so/arch/i386/mdreloc.c Wed Jan 13 22:34:07 2010 @@ -1,8 +1,8 @@ -/* $NetBSD: mdreloc.c,v 1.29 2010/01/13 20:17:22 christos Exp $ */ +/* $NetBSD: mdreloc.c,v 1.30 2010/01/13 22:34:07 skrll Exp $ */ #include sys/cdefs.h #ifndef lint -__RCSID($NetBSD: mdreloc.c,v 1.29 2010/01/13 20:17:22 christos Exp $); +__RCSID($NetBSD: mdreloc.c,v 1.30 2010/01/13 22:34:07 skrll Exp $); #endif /* not lint */ #include sys/types.h @@ -192,6 +192,8 @@ Elf_Addr new_value; int err; + new_value = 0; /* XXX gcc */ + err = _rtld_relocate_plt_object(obj, rel, new_value); if (err) _rtld_die();