mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-10 19:30:10 +00:00
Define elf_ifunc_invoke for ARM.
This commit is contained in:
parent
6cc02c7aae
commit
5411b5632d
@ -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.
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user