Define elf_ifunc_invoke for ARM.

This commit is contained in:
Joseph Myers 2011-06-21 14:19:45 +00:00
parent 6cc02c7aae
commit 5411b5632d
2 changed files with 14 additions and 2 deletions

View file

@ -1,3 +1,8 @@
2011-06-21 Joseph Myers <joseph@codesourcery.com>
* sysdeps/arm/dl-irel.h (elf_ifunc_invoke): New.
(elf_irel): Use it.
2010-06-20 Joseph Myers <joseph@codesourcery.com>
* sysdeps/unix/sysv/linux/arm/eabi/internal_sendmmsg.S: New.

View file

@ -1,6 +1,6 @@
/* Machine-dependent ELF indirect relocation inline functions.
ARM version.
Copyright (C) 2009, 2010 Free Software Foundation, Inc.
Copyright (C) 2009, 2010, 2011 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@ -26,6 +26,13 @@
#define ELF_MACHINE_IREL 1
static inline Elf32_Addr
__attribute ((always_inline))
elf_ifunc_invoke (Elf32_Addr addr)
{
return ((Elf32_Addr (*) (void)) (addr)) ();
}
static inline void
__attribute ((always_inline))
elf_irel (const Elf32_Rel *reloc)
@ -35,7 +42,7 @@ elf_irel (const Elf32_Rel *reloc)
if (__builtin_expect (r_type == R_ARM_IRELATIVE, 1))
{
Elf32_Addr value = ((Elf32_Addr (*) (void)) (*reloc_addr)) ();
Elf32_Addr value = elf_ifunc_invoke (*reloc_addr);
*reloc_addr = value;
}
else