about summary refs log tree commit diff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2017-05-25 06:55:42 -0700
committerH.J. Lu <hjl.tools@gmail.com>2017-05-25 06:55:58 -0700
commit81efada5287c3215307623e57d3bbbeefa0c1250 (patch)
treeac1ed59200482f5e459f3422b9f3de83d3a30e8a
parentee8015b9ea084d5727ce477fdd8d935f1de7f7f6 (diff)
downloadglibc-81efada5287c3215307623e57d3bbbeefa0c1250.tar.gz
glibc-81efada5287c3215307623e57d3bbbeefa0c1250.tar.xz
glibc-81efada5287c3215307623e57d3bbbeefa0c1250.zip
Make __tunables_init hidden and avoid PLT
Since __tunables_init is internal to ld.so, we should mark it hidden
to avoid PLT.  We should also avoid PLT when calling __tunable_set_val
within ld.so.

2017-05-25   Siddhesh Poyarekar  <siddhesh@sourceware.org>
	     H.J. Lu  <hongjiu.lu@intel.com>

	* elf/dl-tunables.c (__tunable_set_val): Make a hidden alias.
	* elf/dl-tunables.h (__tunables_init): Mark it hidden in rtld.
	(__tunable_set_val): Likewise.
-rw-r--r--ChangeLog7
-rw-r--r--elf/dl-tunables.c2
-rw-r--r--elf/dl-tunables.h3
3 files changed, 12 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index b0c2047b80..baf21026c3 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2017-05-25   Siddhesh Poyarekar  <siddhesh@sourceware.org>
+	     H.J. Lu  <hongjiu.lu@intel.com>
+
+	* elf/dl-tunables.c (__tunable_set_val): Make a hidden alias.
+	* elf/dl-tunables.h (__tunables_init): Mark it hidden in rtld.
+	(__tunable_set_val): Likewise.
+
 2017-05-25  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* Makeconfig ($(common-objpfx)dl-tunable-list.h): Also check
diff --git a/elf/dl-tunables.c b/elf/dl-tunables.c
index 8d72e268ef..b6e6b3da52 100644
--- a/elf/dl-tunables.c
+++ b/elf/dl-tunables.c
@@ -470,3 +470,5 @@ cb:
   if (callback)
     callback (&cur->val);
 }
+
+rtld_hidden_def (__tunable_set_val)
diff --git a/elf/dl-tunables.h b/elf/dl-tunables.h
index f33adfb359..20ee51254e 100644
--- a/elf/dl-tunables.h
+++ b/elf/dl-tunables.h
@@ -69,6 +69,9 @@ typedef struct _tunable tunable_t;
 extern void __tunables_init (char **);
 extern void __tunable_set_val (tunable_id_t, void *, tunable_callback_t);
 
+rtld_hidden_proto (__tunables_init)
+rtld_hidden_proto (__tunable_set_val)
+
 /* Check if the tunable has been set to a non-default value and if it is, copy
    it over into __VAL.  */
 # define TUNABLE_SET_VAL(__id,__val) \