This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch, master, updated. glibc-2.15-831-g0a10fb9


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  0a10fb9eecc1f890cc247ae0dd4bdd4c20e7343e (commit)
      from  df8a552f6f93f62c494177a49ee49d3bf40949b8 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=0a10fb9eecc1f890cc247ae0dd4bdd4c20e7343e

commit 0a10fb9eecc1f890cc247ae0dd4bdd4c20e7343e
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Thu May 10 19:24:54 2012 -0700

    Don't handle R_X86_64_RELATIVE64 in ld.so

diff --git a/ChangeLog b/ChangeLog
index 2f08802..b7a5055 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
 2012-05-10  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* sysdeps/x86_64/dl-machine.h (elf_machine_rela_relative): Handle
+	R_X86_64_RELATIVE64 only if RTLD_BOOTSTRAP isn't defined.
+
+2012-05-10  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* elf/elf.h (R_X86_64_RELATIVE64): New.
 	(R_X86_64_NUM): Updated.
 	* sysdeps/x86_64/dl-machine.h (elf_machine_rela): Handle
diff --git a/sysdeps/x86_64/dl-machine.h b/sysdeps/x86_64/dl-machine.h
index e3bab5f..32814b1 100644
--- a/sysdeps/x86_64/dl-machine.h
+++ b/sysdeps/x86_64/dl-machine.h
@@ -487,11 +487,13 @@ elf_machine_rela_relative (ElfW(Addr) l_addr, const ElfW(Rela) *reloc,
 			   void *const reloc_addr_arg)
 {
   ElfW(Addr) *const reloc_addr = reloc_addr_arg;
+#if !defined RTLD_BOOTSTRAP
   /* l_addr + r_addend may be > 0xffffffff and R_X86_64_RELATIVE64
      relocation updates the whole 64-bit entry.  */
   if (__builtin_expect (ELFW(R_TYPE) (reloc->r_info) == R_X86_64_RELATIVE64, 0))
     *(Elf64_Addr *) reloc_addr = (Elf64_Addr) l_addr + reloc->r_addend;
   else
+#endif
     {
       assert (ELFW(R_TYPE) (reloc->r_info) == R_X86_64_RELATIVE);
       *reloc_addr = l_addr + reloc->r_addend;

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                   |    5 +++++
 sysdeps/x86_64/dl-machine.h |    2 ++
 2 files changed, 7 insertions(+), 0 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]