diff options
author | Ulrich Drepper <drepper@redhat.com> | 2009-05-31 23:45:33 -0700 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 2009-05-31 23:45:33 -0700 |
commit | 74414708355a922a514d5c76183eca6931c4488a (patch) | |
tree | 60dd084df2e9f02464f66b0da2068f4561856458 /include | |
parent | 963cb6fcb47ca212c0c57cc57bd7510f6549579c (diff) | |
download | glibc-74414708355a922a514d5c76183eca6931c4488a.tar.gz glibc-74414708355a922a514d5c76183eca6931c4488a.tar.xz glibc-74414708355a922a514d5c76183eca6931c4488a.zip |
Finish IFUNC support for x86 and x86-64.
Add support for the IRELAIVE relocation and IFUNC in static executables.
Diffstat (limited to 'include')
-rw-r--r-- | include/libc-symbols.h | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/include/libc-symbols.h b/include/libc-symbols.h index d53bcb9b77..68da77c58e 100644 --- a/include/libc-symbols.h +++ b/include/libc-symbols.h @@ -845,4 +845,21 @@ for linking") } \ __asm__ (".type " #name ", %gnu_indirect_function"); +#ifdef HAVE_ASM_SET_DIRECTIVE +# define libc_ifunc_hidden_def1(local, name) \ + __asm__ (declare_symbol_alias_1_stringify (ASM_GLOBAL_DIRECTIVE) \ + " " #local "\n\t" \ + ".hidden " #local "\n\t" \ + ".set " #local ", " #name); +#else +# define libc_ifunc_hidden_def1(local, name) \ + __asm__ (declare_symbol_alias_1_stringify (ASM_GLOBAL_DIRECTIVE) \ + " " #local "\n\t" \ + ".hidden " #local "\n\t" \ + #local " = " #name); +#endif + +#define libc_ifunc_hidden_def(name) \ + libc_ifunc_hidden_def1 (__GI_##name, name) + #endif /* libc-symbols.h */ |