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]

Community source repository for glibc add-on ports branch, master, updated. glibc-2.15-264-g73da6ba


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 "Community source repository for glibc add-on ports".

The branch, master has been updated
       via  73da6bacfd1647612a51e1b67d6bc93c4f7436cd (commit)
      from  5b0ef573d2ee116009b324d442cb74b9a9c62bdf (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-ports.git;a=commitdiff;h=73da6bacfd1647612a51e1b67d6bc93c4f7436cd

commit 73da6bacfd1647612a51e1b67d6bc93c4f7436cd
Author: Richard Henderson <rth@redhat.com>
Date:   Fri May 25 12:07:05 2012 -0400

    arm: Pass hwcap to ifuncs.
    
            * sysdeps/arm/dl-irel.h (elf_ifunc_invoke): Pass dl_hwcap.
    	* sysdeps/arm/dl-machine.h (elf_machine_rel): Use elf_ifunc_invoke.
            (elf_machine_rela): Likewise.

diff --git a/ChangeLog.arm b/ChangeLog.arm
index f6eac63..778b4d7 100644
--- a/ChangeLog.arm
+++ b/ChangeLog.arm
@@ -1,3 +1,9 @@
+2012-05-25  Richard Henderson  <rth@twiddle.net>
+
+	* sysdeps/arm/dl-irel.h (elf_ifunc_invoke): Pass dl_hwcap.
+	* sysdeps/arm/dl-machine.h (elf_machine_rel): Use elf_ifunc_invoke.
+	(elf_machine_rela): Likewise.
+
 2012-05-23  Joseph Myers  <joseph@codesourcery.com>
 
 	* sysdeps/unix/sysv/linux/arm/bits/mman.h (MADV_DONTDUMP): Define.
diff --git a/sysdeps/arm/dl-irel.h b/sysdeps/arm/dl-irel.h
index 5141031..5b1964e 100644
--- a/sysdeps/arm/dl-irel.h
+++ b/sysdeps/arm/dl-irel.h
@@ -29,7 +29,7 @@ static inline Elf32_Addr
 __attribute ((always_inline))
 elf_ifunc_invoke (Elf32_Addr addr)
 {
-  return ((Elf32_Addr (*) (void)) (addr)) ();
+  return ((Elf32_Addr (*) (unsigned long int)) (addr)) (GLRO(dl_hwcap));
 }
 
 static inline void
diff --git a/sysdeps/arm/dl-machine.h b/sysdeps/arm/dl-machine.h
index 58cf418..8d905e8 100644
--- a/sysdeps/arm/dl-machine.h
+++ b/sysdeps/arm/dl-machine.h
@@ -25,6 +25,7 @@
 #include <sys/param.h>
 #include <tls.h>
 #include <dl-tlsdesc.h>
+#include <dl-irel.h>
 
 #define CLEAR_CACHE(BEG,END)						\
   INTERNAL_SYSCALL_ARM (cacheflush, , 3, (BEG), (END), 0)
@@ -377,7 +378,7 @@ elf_machine_rel (struct link_map *map, const Elf32_Rel *reloc,
 	  && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0)
 	  && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1)
 	  && __builtin_expect (!skip_ifunc, 1))
-	value = ((Elf32_Addr (*) (void)) value) ();
+	value = elf_ifunc_invoke (value);
 
       switch (r_type)
 	{
@@ -551,7 +552,7 @@ elf_machine_rela (struct link_map *map, const Elf32_Rela *reloc,
 	  && __builtin_expect (ELFW(ST_TYPE) (sym->st_info) == STT_GNU_IFUNC, 0)
 	  && __builtin_expect (sym->st_shndx != SHN_UNDEF, 1)
 	  && __builtin_expect (!skip_ifunc, 1))
-	value = ((Elf32_Addr (*) (void)) value) ();
+	value = elf_ifunc_invoke (value);
 
       switch (r_type)
 	{

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

Summary of changes:
 ChangeLog.arm            |    6 ++++++
 sysdeps/arm/dl-irel.h    |    2 +-
 sysdeps/arm/dl-machine.h |    5 +++--
 3 files changed, 10 insertions(+), 3 deletions(-)


hooks/post-receive
-- 
Community source repository for glibc add-on ports


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