]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
alpha: don't call ifunc functions in trace mode
authorAndreas Schwab <schwab@redhat.com>
Wed, 5 Oct 2011 09:50:05 +0000 (11:50 +0200)
committerAndreas Schwab <schwab@redhat.com>
Wed, 5 Oct 2011 09:50:05 +0000 (11:50 +0200)
ChangeLog.alpha
sysdeps/alpha/dl-machine.h

index 55f8768987c63d2462a10f913b2bd9bc9724095d..b7d6bb1afb3f7f97aa5f1782f8dc932936950555 100644 (file)
@@ -1,3 +1,8 @@
+2011-10-05  Andreas Schwab  <schwab@redhat.com>
+
+       * sysdeps/alpha/dl-machine.h (elf_machine_rela)
+       (elf_machine_lazy_rel): Add parameter skip_ifunc.
+
 2011-03-28  Aurelien Jarno  <aurelien@aurel32.net>
 
        * sysdeps/unix/sysv/linux/alpha/____longjmp_chk.S(____longjmp_chk):
@@ -48,7 +53,7 @@
        Define without 64-bit aliases.
 
 2010-05-03  Aurelien Jarno  <aurelien@aurel32.net>
+
        * sysdeps/alpha/memchr.S: Use prefetch load.
        * sysdeps/alpha/alphaev6/memchr.S: Likewise.
 
index e4a502208c605739598121126ba0af084acf1dd4..2790ae5702f8dd46074a4f757fb533e75a35e97a 100644 (file)
@@ -1,5 +1,5 @@
 /* Machine-dependent ELF dynamic relocation inline functions.  Alpha version.
-   Copyright (C) 1996-2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 1996-2005, 2006, 2011 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Richard Henderson <rth@tamu.edu>.
 
@@ -371,7 +371,8 @@ elf_machine_rela (struct link_map *map,
                  const Elf64_Rela *reloc,
                  const Elf64_Sym *sym,
                  const struct r_found_version *version,
-                 void *const reloc_addr_arg)
+                 void *const reloc_addr_arg,
+                 int skip_ifunc)
 {
   Elf64_Addr *const reloc_addr = reloc_addr_arg;
   unsigned long int const r_type = ELF64_R_TYPE (reloc->r_info);
@@ -514,7 +515,8 @@ elf_machine_rela_relative (Elf64_Addr l_addr, const Elf64_Rela *reloc,
 auto inline void
 __attribute__ ((always_inline))
 elf_machine_lazy_rel (struct link_map *map,
-                     Elf64_Addr l_addr, const Elf64_Rela *reloc)
+                     Elf64_Addr l_addr, const Elf64_Rela *reloc,
+                     int skip_ifunc)
 {
   Elf64_Addr * const reloc_addr = (void *)(l_addr + reloc->r_offset);
   unsigned long int const r_type = ELF64_R_TYPE (reloc->r_info);