about summary refs log tree commit diff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2015-10-14 06:33:24 -0700
committerH.J. Lu <hjl.tools@gmail.com>2015-10-14 06:33:48 -0700
commitd95453ef5d9fccac44ab3d4a161d917e7ef6231f (patch)
tree67e00942b8d458dae176210175b125000d452026
parentd3d9c95aefded7716d037e241f9d23a1cccab45a (diff)
downloadglibc-d95453ef5d9fccac44ab3d4a161d917e7ef6231f.tar.gz
glibc-d95453ef5d9fccac44ab3d4a161d917e7ef6231f.tar.xz
glibc-d95453ef5d9fccac44ab3d4a161d917e7ef6231f.zip
Avoid PLT when calling __sched_getaffinity_new
This patch adds an internal entry for __sched_getaffinity_new so that
__sched_getaffinity_old calls __sched_getaffinity_new without going
through PLT.

	[BZ #18822]
	* sysdeps/unix/sysv/linux/sched_getaffinity.c
	(__sched_getaffinity_new): Add libc_hidden_proto and
	libc_hidden_def.
-rw-r--r--ChangeLog7
-rw-r--r--sysdeps/unix/sysv/linux/sched_getaffinity.c7
2 files changed, 14 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 6cc7224af6..74f413c81f 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2015-10-14  H.J. Lu  <hongjiu.lu@intel.com>
 
+	[BZ #18822]
+	* sysdeps/unix/sysv/linux/sched_getaffinity.c
+	(__sched_getaffinity_new): Add libc_hidden_proto and
+	libc_hidden_def.
+
+2015-10-14  H.J. Lu  <hongjiu.lu@intel.com>
+
 	[BZ #19007]
 	* scripts/localplt.awk: Also allow GOT references.
 	* sysdeps/unix/sysv/linux/i386/localplt.data: Mark
diff --git a/sysdeps/unix/sysv/linux/sched_getaffinity.c b/sysdeps/unix/sysv/linux/sched_getaffinity.c
index 9850806298..a37573f8a6 100644
--- a/sysdeps/unix/sysv/linux/sched_getaffinity.c
+++ b/sysdeps/unix/sysv/linux/sched_getaffinity.c
@@ -25,6 +25,11 @@
 
 
 #ifdef __NR_sched_getaffinity
+# if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4)
+extern int __sched_getaffinity_new (pid_t, size_t, cpu_set_t *);
+libc_hidden_proto (__sched_getaffinity_new)
+# endif
+
 int
 __sched_getaffinity_new (pid_t pid, size_t cpusetsize, cpu_set_t *cpuset)
 {
@@ -44,6 +49,8 @@ versioned_symbol (libc, __sched_getaffinity_new, sched_getaffinity,
 
 
 # if SHLIB_COMPAT (libc, GLIBC_2_3_3, GLIBC_2_3_4)
+libc_hidden_def (__sched_getaffinity_new)
+
 int
 attribute_compat_text_section
 __sched_getaffinity_old (pid_t pid, cpu_set_t *cpuset)