]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
x86-64: Use IFUNC strncat inside libc.so
authorH.J. Lu <hjl.tools@gmail.com>
Wed, 16 May 2018 16:03:45 +0000 (09:03 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Wed, 16 May 2018 16:04:35 +0000 (09:04 -0700)
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.

ChangeLog
sysdeps/x86_64/multiarch/strncat-c.c
sysdeps/x86_64/multiarch/strncat.c

index 3113eda2223a55aa2ae6a08ab7dced3355fa8df0..3d4f2373ffaaf342549401d29dd64033d35c62d0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -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.
index db8ad9917c56f29e05e217fd805364055702e36b..93a7fab7eab4a69636716762aa3b4f7c332aa18f 100644 (file)
@@ -1,3 +1,2 @@
 #define STRNCAT __strncat_sse2
-#define STRNCAT_PRIMARY
-#include "string/strncat.c"
+#include <string/strncat.c>
index 1267eb4972f3170b30231a285e0389c5a3545743..841c165565add1321ca27081ef2969d86a1009bf 100644 (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