From baf2a265c71113a91f6971313ef191be9e77ef6a Mon Sep 17 00:00:00 2001 From: Adhemerval Zanella Date: Tue, 7 Jun 2022 11:11:03 -0300 Subject: misc: Optimize internal usage of __libc_single_threaded By adding an internal alias to avoid the GOT indirection. On some architecture, __libc_single_thread may be accessed through copy relocations and thus it requires to update also the copies default copy. This is done by adding a new internal macro, libc_hidden_data_{proto,def}, which has an addition argument that specifies the alias name (instead of default __GI_ one). Checked on x86_64-linux-gnu and i686-linux-gnu. Reviewed-by: Fangrui Song --- include/sys/single_threaded.h | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'include/sys') diff --git a/include/sys/single_threaded.h b/include/sys/single_threaded.h index 18f6972482..2015742be0 100644 --- a/include/sys/single_threaded.h +++ b/include/sys/single_threaded.h @@ -1 +1,12 @@ #include + +#ifndef _ISOMAC + +libc_hidden_proto_alias (__libc_single_threaded, + __libc_single_threaded_internal); + +#if !defined SHARED || !IS_IN(libc) +# define __libc_single_threaded_internal __libc_single_threaded +#endif + +#endif -- cgit v1.2.3