x86-64: Use IFUNC strncat inside libc.so

Unlike i386, we can call hidden IFUNC functions inside libc.so since
x86-64 PLT is always PIC.

Tested on x86-64.

	* sysdeps/x86_64/multiarch/strncat-c.c (STRNCAT_PRIMARY): Removed.
	Include <string/strncat.c>.
	* sysdeps/x86_64/multiarch/strncat.c (__strncat): New strong
	alias.
	(__GI___strncat): New hidden alias.
This commit is contained in:
H.J. Lu 2018-05-16 09:03:45 -07:00
parent c9992d13c4
commit 04958880e0
3 changed files with 14 additions and 2 deletions

View File

@ -1,3 +1,11 @@
2018-05-16 H.J. Lu <hongjiu.lu@intel.com>
* sysdeps/x86_64/multiarch/strncat-c.c (STRNCAT_PRIMARY): Removed.
Include <string/strncat.c>.
* sysdeps/x86_64/multiarch/strncat.c (__strncat): New strong
alias.
(__GI___strncat): New hidden alias.
2018-05-16 Joseph Myers <joseph@codesourcery.com>
* sysdeps/mips/mips32/libm-test-ulps: Update.

View File

@ -1,3 +1,2 @@
#define STRNCAT __strncat_sse2
#define STRNCAT_PRIMARY
#include "string/strncat.c"
#include <string/strncat.c>

View File

@ -27,4 +27,9 @@
# include "ifunc-unaligned-ssse3.h"
libc_ifunc_redirected (__redirect_strncat, strncat, IFUNC_SELECTOR ());
strong_alias (strncat, __strncat);
# ifdef SHARED
__hidden_ver1 (strncat, __GI___strncat, __redirect_strncat)
__attribute__((visibility ("hidden")));
# endif
#endif