This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH] Add a way to bypass the PLT when calling getauxval
- From: "Tulio Magno Quites Machado Filho" <tuliom at linux dot vnet dot ibm dot com>
- To: libc-alpha at sourceware dot org
- Cc: pc at us dot ibm dot com
- Date: Wed, 24 May 2017 16:41:23 -0300
- Subject: [PATCH] Add a way to bypass the PLT when calling getauxval
- Authentication-results: sourceware.org; auth=none
Add __libc_getauxval as an internal libc symbol allowing internal libc
calls to bypass the PLT.
This is leaving the ABI as it was: getauxval continues to be exported as a
weak symbol and __getauxval as a global symbol.
2017-05-24 Tulio Magno Quites Machado Filho <tuliom@linux.vnet.ibm.com>
* include/sys/auxv.h: Add a prototype for __libc_getauxval.
* misc/getauxval.c (__getauxval): Rename to __libc_getauxval and
add the strong alias __getauxval to __libc_getauxval.
---
include/sys/auxv.h | 2 ++
misc/getauxval.c | 6 ++++--
2 files changed, 6 insertions(+), 2 deletions(-)
diff --git a/include/sys/auxv.h b/include/sys/auxv.h
index dede2c3..7b6ad3b 100644
--- a/include/sys/auxv.h
+++ b/include/sys/auxv.h
@@ -1 +1,3 @@
#include <misc/sys/auxv.h>
+
+extern __typeof (getauxval) __libc_getauxval;
diff --git a/misc/getauxval.c b/misc/getauxval.c
index c83fbce..ff3e0ba 100644
--- a/misc/getauxval.c
+++ b/misc/getauxval.c
@@ -21,7 +21,8 @@
unsigned long int
-__getauxval (unsigned long int type)
+attribute_hidden
+__libc_getauxval (unsigned long int type)
{
#ifdef HAVE_AUX_VECTOR
ElfW(auxv_t) *p;
@@ -42,4 +43,5 @@ __getauxval (unsigned long int type)
return 0;
}
-weak_alias (__getauxval, getauxval)
+weak_alias (__libc_getauxval, getauxval)
+strong_alias (__libc_getauxval, __getauxval)
--
2.1.0