Mark __tunables_init hidden and avoid PLT
Commit Message
On Wed, May 24, 2017 at 10:57 PM, Siddhesh Poyarekar
<siddhesh@gotplt.org> wrote:
> On Thursday 25 May 2017 12:47 AM, H.J. Lu wrote:
>> 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.
>
> We don't export __tunables_init, so it shouldn't have a PLT anyway. As
> for __tunable_set_val, I have it in my patch 3/5:
>
> https://sourceware.org/ml/libc-alpha/2017-05/msg00654.html
>
> which needs minor rework before pushing.
>
These can be in a simpler patch. Here is the updated one.
OK for master?
Comments
On Thursday 25 May 2017 06:03 PM, H.J. Lu wrote:
> On Wed, May 24, 2017 at 10:57 PM, Siddhesh Poyarekar
> <siddhesh@gotplt.org> wrote:
>> On Thursday 25 May 2017 12:47 AM, H.J. Lu wrote:
>>> 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.
>>
>> We don't export __tunables_init, so it shouldn't have a PLT anyway. As
>> for __tunable_set_val, I have it in my patch 3/5:
>>
>> https://sourceware.org/ml/libc-alpha/2017-05/msg00654.html
>>
>> which needs minor rework before pushing.
>>
>
> These can be in a simpler patch. Here is the updated one.
>
> OK for master?
OK.
Siddhesh
From ed8f688eeab70308af7240931861189d3f509e1c Mon Sep 17 00:00:00 2001
From: "H.J. Lu" <hjl.tools@gmail.com>
Date: Wed, 24 May 2017 12:09:41 -0700
Subject: [PATCH] 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.
---
elf/dl-tunables.c | 2 ++
elf/dl-tunables.h | 3 +++
2 files changed, 5 insertions(+)
@@ -470,3 +470,5 @@ cb:
if (callback)
callback (&cur->val);
}
+
+rtld_hidden_def (__tunable_set_val)
@@ -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) \
--
2.9.4