diff options
author | Adhemerval Zanella <azanella@linux.vnet.ibm.com> | 2013-03-15 10:58:56 -0300 |
---|---|---|
committer | Adhemerval Zanella <azanella@linux.vnet.ibm.com> | 2013-03-15 10:58:56 -0300 |
commit | ef26eece6331a1f6d959818e37c438cc7ce68e53 (patch) | |
tree | 4c7afee3a37857c9e8a92d801bf1b630c433dad6 /sysdeps/unix/sysv/linux/powerpc/bits | |
parent | 8cfdb7e0560ab27e70a1d2e898fb4a0a67a13c70 (diff) | |
download | glibc-ef26eece6331a1f6d959818e37c438cc7ce68e53.tar glibc-ef26eece6331a1f6d959818e37c438cc7ce68e53.tar.gz glibc-ef26eece6331a1f6d959818e37c438cc7ce68e53.tar.bz2 glibc-ef26eece6331a1f6d959818e37c438cc7ce68e53.zip |
PowerPC: gettimeofday optimization by using IFUNC
Diffstat (limited to 'sysdeps/unix/sysv/linux/powerpc/bits')
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h b/sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h index 545fda462a..5f5fc1eb3a 100644 --- a/sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h +++ b/sysdeps/unix/sysv/linux/powerpc/bits/libc-vdso.h @@ -32,6 +32,16 @@ extern void *__vdso_get_tbfreq; extern void *__vdso_getcpu; +/* This macro is needed for PPC64 to return a skeleton OPD entry of a vDSO + symbol. This works because _dl_vdso_vsym always return the function + address, and no vDSO symbols use the TOC or chain pointers from the OPD + so we can allow them to be garbage. */ +#if defined(__PPC64__) || defined(__powerpc64__) +#define VDSO_IFUNC_RET(value) &value +#else +#define VDSO_IFUNC_RET(value) value +#endif + #endif #endif /* _LIBC_VDSO_H */ |