This is the mail archive of the glibc-cvs@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

GNU C Library master sources branch hjl/ifunc/test updated. glibc-2.16-ports-merge-416-g6711ab3


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, hjl/ifunc/test has been updated
       via  6711ab3cf9bdc2fa46af1a61605117b28b3e6fd8 (commit)
       via  c1e059c7286409dd5be1553bd1537dfe7ad8d5ed (commit)
       via  1a917b80b4a20d54ef5be40694053efb735bb899 (commit)
       via  230fbafacb65903d42998641646483794b860370 (commit)
       via  ee74ab256bc3d8c075d1aea45ff5fdefbd5b549d (commit)
      from  89be07cbef8846b07df7616b517cf56ddbbb57b5 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=6711ab3cf9bdc2fa46af1a61605117b28b3e6fd8

commit 6711ab3cf9bdc2fa46af1a61605117b28b3e6fd8
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Sep 23 12:01:04 2012 -0700

    Remove trailing whitespaces

diff --git a/debug/test-stpcpy_chk-ifunc.c b/debug/test-stpcpy_chk-ifunc.c
index cc2a40c..cf86bc1 100644
--- a/debug/test-stpcpy_chk-ifunc.c
+++ b/debug/test-stpcpy_chk-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-stpcpy_chk.c" 
+#include "test-stpcpy_chk.c"
diff --git a/debug/test-strcpy_chk-ifunc.c b/debug/test-strcpy_chk-ifunc.c
index 1bef83a..fff7234 100644
--- a/debug/test-strcpy_chk-ifunc.c
+++ b/debug/test-strcpy_chk-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-strcpy_chk.c" 
+#include "test-strcpy_chk.c"
diff --git a/string/test-memccpy-ifunc.c b/string/test-memccpy-ifunc.c
index cb5aa60..4ae2d67 100644
--- a/string/test-memccpy-ifunc.c
+++ b/string/test-memccpy-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-memccpy.c" 
+#include "test-memccpy.c"
diff --git a/string/test-memchr-ifunc.c b/string/test-memchr-ifunc.c
index 3dd1890..4b9068b 100644
--- a/string/test-memchr-ifunc.c
+++ b/string/test-memchr-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-memchr.c" 
+#include "test-memchr.c"
diff --git a/string/test-memcmp-ifunc.c b/string/test-memcmp-ifunc.c
index eaea228..de7d29c 100644
--- a/string/test-memcmp-ifunc.c
+++ b/string/test-memcmp-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-memcmp.c" 
+#include "test-memcmp.c"
diff --git a/string/test-memcpy-ifunc.c b/string/test-memcpy-ifunc.c
index b88a694..36d70a0 100644
--- a/string/test-memcpy-ifunc.c
+++ b/string/test-memcpy-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-memcpy.c" 
+#include "test-memcpy.c"
diff --git a/string/test-memmem-ifunc.c b/string/test-memmem-ifunc.c
index bfb917d..ae87c13 100644
--- a/string/test-memmem-ifunc.c
+++ b/string/test-memmem-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-memmem.c" 
+#include "test-memmem.c"
diff --git a/string/test-memmove-ifunc.c b/string/test-memmove-ifunc.c
index 5fafab6..0d8f836 100644
--- a/string/test-memmove-ifunc.c
+++ b/string/test-memmove-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-memmove.c" 
+#include "test-memmove.c"
diff --git a/string/test-mempcpy-ifunc.c b/string/test-mempcpy-ifunc.c
index 1cd1341..d5f5bd5 100644
--- a/string/test-mempcpy-ifunc.c
+++ b/string/test-mempcpy-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-mempcpy.c" 
+#include "test-mempcpy.c"
diff --git a/string/test-memset-ifunc.c b/string/test-memset-ifunc.c
index 2bc5732..bf19402 100644
--- a/string/test-memset-ifunc.c
+++ b/string/test-memset-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-memset.c" 
+#include "test-memset.c"
diff --git a/string/test-rawmemchr-ifunc.c b/string/test-rawmemchr-ifunc.c
index 59418fd..91a30a0 100644
--- a/string/test-rawmemchr-ifunc.c
+++ b/string/test-rawmemchr-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-rawmemchr.c" 
+#include "test-rawmemchr.c"
diff --git a/string/test-stpcpy-ifunc.c b/string/test-stpcpy-ifunc.c
index 1d37dc5..5968d23 100644
--- a/string/test-stpcpy-ifunc.c
+++ b/string/test-stpcpy-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-stpcpy.c" 
+#include "test-stpcpy.c"
diff --git a/string/test-stpncpy-ifunc.c b/string/test-stpncpy-ifunc.c
index 3f747b9..4485c27 100644
--- a/string/test-stpncpy-ifunc.c
+++ b/string/test-stpncpy-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-stpncpy.c" 
+#include "test-stpncpy.c"
diff --git a/string/test-strcasecmp-ifunc.c b/string/test-strcasecmp-ifunc.c
index 788d80c..5ae7121 100644
--- a/string/test-strcasecmp-ifunc.c
+++ b/string/test-strcasecmp-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-strcasecmp.c" 
+#include "test-strcasecmp.c"
diff --git a/string/test-strcasestr-ifunc.c b/string/test-strcasestr-ifunc.c
index c32dfe3..07475b1 100644
--- a/string/test-strcasestr-ifunc.c
+++ b/string/test-strcasestr-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-strcasestr.c" 
+#include "test-strcasestr.c"
diff --git a/string/test-strcat-ifunc.c b/string/test-strcat-ifunc.c
index 85a6c54..9a157cd 100644
--- a/string/test-strcat-ifunc.c
+++ b/string/test-strcat-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-strcat.c" 
+#include "test-strcat.c"
diff --git a/string/test-strchr-ifunc.c b/string/test-strchr-ifunc.c
index 46d47e2..6e85e18 100644
--- a/string/test-strchr-ifunc.c
+++ b/string/test-strchr-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-strchr.c" 
+#include "test-strchr.c"
diff --git a/string/test-strchrnul-ifunc.c b/string/test-strchrnul-ifunc.c
index 787faf5..eb8854f 100644
--- a/string/test-strchrnul-ifunc.c
+++ b/string/test-strchrnul-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-strchrnul.c" 
+#include "test-strchrnul.c"
diff --git a/string/test-strcmp-ifunc.c b/string/test-strcmp-ifunc.c
index 3e05816..ea2795f 100644
--- a/string/test-strcmp-ifunc.c
+++ b/string/test-strcmp-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-strcmp.c" 
+#include "test-strcmp.c"
diff --git a/string/test-strcpy-ifunc.c b/string/test-strcpy-ifunc.c
index 16c64d1..127580f 100644
--- a/string/test-strcpy-ifunc.c
+++ b/string/test-strcpy-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-strcpy.c" 
+#include "test-strcpy.c"
diff --git a/string/test-strcspn-ifunc.c b/string/test-strcspn-ifunc.c
index 95a91e5..5541516 100644
--- a/string/test-strcspn-ifunc.c
+++ b/string/test-strcspn-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-strcspn.c" 
+#include "test-strcspn.c"
diff --git a/string/test-strlen-ifunc.c b/string/test-strlen-ifunc.c
index bdeef34..c879fe8 100644
--- a/string/test-strlen-ifunc.c
+++ b/string/test-strlen-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-strlen.c" 
+#include "test-strlen.c"
diff --git a/string/test-strncasecmp-ifunc.c b/string/test-strncasecmp-ifunc.c
index 438aca0..05824fe 100644
--- a/string/test-strncasecmp-ifunc.c
+++ b/string/test-strncasecmp-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-strncasecmp.c" 
+#include "test-strncasecmp.c"
diff --git a/string/test-strncat-ifunc.c b/string/test-strncat-ifunc.c
index d78c714..61b2c87 100644
--- a/string/test-strncat-ifunc.c
+++ b/string/test-strncat-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-strncat.c" 
+#include "test-strncat.c"
diff --git a/string/test-strncmp-ifunc.c b/string/test-strncmp-ifunc.c
index 0e7f8bd..a1f14a4 100644
--- a/string/test-strncmp-ifunc.c
+++ b/string/test-strncmp-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-strncmp.c" 
+#include "test-strncmp.c"
diff --git a/string/test-strncpy-ifunc.c b/string/test-strncpy-ifunc.c
index 9735349..ed3f04f 100644
--- a/string/test-strncpy-ifunc.c
+++ b/string/test-strncpy-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-strncpy.c" 
+#include "test-strncpy.c"
diff --git a/string/test-strnlen-ifunc.c b/string/test-strnlen-ifunc.c
index d863740..8615091 100644
--- a/string/test-strnlen-ifunc.c
+++ b/string/test-strnlen-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-strnlen.c" 
+#include "test-strnlen.c"
diff --git a/string/test-strpbrk-ifunc.c b/string/test-strpbrk-ifunc.c
index 9d70c74..e904c98 100644
--- a/string/test-strpbrk-ifunc.c
+++ b/string/test-strpbrk-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-strpbrk.c" 
+#include "test-strpbrk.c"
diff --git a/string/test-strrchr-ifunc.c b/string/test-strrchr-ifunc.c
index 2f39ec9..31d1c6b 100644
--- a/string/test-strrchr-ifunc.c
+++ b/string/test-strrchr-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-strrchr.c" 
+#include "test-strrchr.c"
diff --git a/string/test-strspn-ifunc.c b/string/test-strspn-ifunc.c
index e815c15..67054f8 100644
--- a/string/test-strspn-ifunc.c
+++ b/string/test-strspn-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-strspn.c" 
+#include "test-strspn.c"
diff --git a/string/test-strstr-ifunc.c b/string/test-strstr-ifunc.c
index 754a0d2..559646a 100644
--- a/string/test-strstr-ifunc.c
+++ b/string/test-strstr-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-strstr.c" 
+#include "test-strstr.c"
diff --git a/wcsmbs/test-wcschr-ifunc.c b/wcsmbs/test-wcschr-ifunc.c
index 0537695..29fb77d 100644
--- a/wcsmbs/test-wcschr-ifunc.c
+++ b/wcsmbs/test-wcschr-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-wcschr.c" 
+#include "test-wcschr.c"
diff --git a/wcsmbs/test-wcscmp-ifunc.c b/wcsmbs/test-wcscmp-ifunc.c
index 9b14cc9..9384579 100644
--- a/wcsmbs/test-wcscmp-ifunc.c
+++ b/wcsmbs/test-wcscmp-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-wcscmp.c" 
+#include "test-wcscmp.c"
diff --git a/wcsmbs/test-wcscpy-ifunc.c b/wcsmbs/test-wcscpy-ifunc.c
index 7cfe9ff..3b69ea2 100644
--- a/wcsmbs/test-wcscpy-ifunc.c
+++ b/wcsmbs/test-wcscpy-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-wcscpy.c" 
+#include "test-wcscpy.c"
diff --git a/wcsmbs/test-wcslen-ifunc.c b/wcsmbs/test-wcslen-ifunc.c
index 5d780a2..49735c4 100644
--- a/wcsmbs/test-wcslen-ifunc.c
+++ b/wcsmbs/test-wcslen-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-wcslen.c" 
+#include "test-wcslen.c"
diff --git a/wcsmbs/test-wcsrchr-ifunc.c b/wcsmbs/test-wcsrchr-ifunc.c
index 86ba92a..b02a2a2 100644
--- a/wcsmbs/test-wcsrchr-ifunc.c
+++ b/wcsmbs/test-wcsrchr-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-wcsrchr.c" 
+#include "test-wcsrchr.c"
diff --git a/wcsmbs/test-wmemcmp-ifunc.c b/wcsmbs/test-wmemcmp-ifunc.c
index 6043d28..b07341e 100644
--- a/wcsmbs/test-wmemcmp-ifunc.c
+++ b/wcsmbs/test-wmemcmp-ifunc.c
@@ -1,2 +1,2 @@
 #define TEST_IFUNC 1
-#include "test-wmemcmp.c" 
+#include "test-wmemcmp.c"

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=c1e059c7286409dd5be1553bd1537dfe7ad8d5ed

commit c1e059c7286409dd5be1553bd1537dfe7ad8d5ed
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Sep 23 08:59:47 2012 -0700

    Build libc_ifunc.so and use it for ifunc tests

diff --git a/ChangeLog.test-ifunc b/ChangeLog.test-ifunc
index d9f4052..d2af3a3 100644
--- a/ChangeLog.test-ifunc
+++ b/ChangeLog.test-ifunc
@@ -1,5 +1,29 @@
 2012-09-23  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* Makeconfig (+link-ifunc-tests): New macro.
+	(+link-static-ifunc-tests): Likewise.
+	(link-libc-ifunc-before-gnulib): Likwewise.
+	(link-libc-ifunc): Likwewise.
+	(link-libc-ifunc-tests): Likwewise.
+	(link-libc-static-ifunc-tests): Likwewise.
+	* Makerules (LDFLAGS-c_ifunc.so): Likewise.
+	(LDLIBS-c_ifunc.so): Likwewise.
+	($(common-objpfx)libc_ifunc.so): New target.
+	($(common-objpfx)libc_ifunc.so): Depend on
+	$(common-objpfx)libc_ifunc.map.
+	($(common-objpfx)libc_ifunc.so$(libc.so-version): New target.
+	(common-generated): Add libc_ifunc.so$(libc.so-version).
+	* Rules (binaries-ifunc-tests): New macro.
+	(binaries-static-ifunc-tests): Likwewise.
+	(binaries-shared-ifunc-tests): Likwewise.
+	(binaries-shared-tests): Also filter out $(binaries-ifunc-tests).
+	($(addprefix $(objpfx),$(binaries-shared-ifunc-tests))): New
+	rule.
+	($(addprefix $(objpfx),$(binaries-static-ifunc-tests))): Likwewise.
+	* string/Makefile (libc_ifunc-routines): Removed.
+
+2012-09-23  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* scripts/versions.awk: Print out libc_ifunc.map.
 
 2012-09-22  H.J. Lu  <hongjiu.lu@intel.com>
diff --git a/Makeconfig b/Makeconfig
index 8d4f7b4..951cf48 100644
--- a/Makeconfig
+++ b/Makeconfig
@@ -426,6 +426,7 @@ ifndef +link
 +link-after-libc = $(+postctor) $(+postinit)
 +link = $(+link-before-libc) $(link-libc) $(+link-after-libc)
 +link-tests = $(+link-before-libc) $(link-libc-tests) $(+link-after-libc)
++link-ifunc-tests = $(+link-before-libc) $(link-libc-ifunc-tests) $(+link-after-libc)
 endif
 # Command for linking PIE programs with the C library.
 ifndef +link-pie
@@ -456,6 +457,8 @@ ifndef +link-static
 	       $(+link-static-after-libc)
 +link-static-tests = $(+link-static-before-libc) $(link-libc-static-tests) \
 		     $(+link-static-after-libc)
++link-static-ifunc-tests = $(+link-static-before-libc) $(link-libc-static-ifunc-tests) \
+		     $(+link-static-after-libc)
 endif
 # Command for statically linking bounded-pointer programs with the C library.
 ifndef +link-bounded
@@ -485,6 +488,13 @@ link-libc-before-gnulib = -Wl,-rpath-link=$(rpath-link) \
 	    $(as-needed) $(common-objpfx)elf/ld.so $(no-as-needed)
 link-libc = $(link-libc-before-gnulib) $(gnulib)
 link-libc-tests = $(link-libc-before-gnulib) $(gnulib-tests)
+# Link against libc_ifunc.so for IFUNC tests.
+link-libc-ifunc-before-gnulib = -Wl,-rpath-link=$(rpath-link) \
+	    $(common-objpfx)libc_ifunc.so$(libc.so-version) \
+	    $(common-objpfx)$(patsubst %,$(libtype.oS),c) \
+	    $(as-needed) $(common-objpfx)elf/ld.so $(no-as-needed)
+link-libc-ifunc = $(link-libc-ifunc-before-gnulib) $(gnulib)
+link-libc-ifunc-tests = $(link-libc-ifunc-before-gnulib) $(gnulib-tests)
 # This is how to find at build-time things that will be installed there.
 rpath-dirs = math elf dlfcn nss nis rt resolv crypt
 rpath-link = \
@@ -495,6 +505,8 @@ nssobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)nss)
 resolvobjdir := $(patsubst ../$(subdir),.,$(common-objpfx)resolv)
 link-libc = $(common-objpfx)libc.a $(otherlibs) $(gnulib) $(common-objpfx)libc.a $(gnulib)
 link-libc-tests = $(common-objpfx)libc.a $(otherlibs) $(gnulib-tests) $(common-objpfx)libc.a $(gnulib-tests)
+link-libc-ifunc = $(common-objpfx)string/libc-test.o $(common-objpfx)libc.a $(otherlibs) $(gnulib) $(common-objpfx)libc.a $(gnulib)
+link-libc-ifunc-tests = $(common-objpfx)string/libc-test.o $(common-objpfx)libc.a $(otherlibs) $(gnulib-tests) $(common-objpfx)libc.a $(gnulib-tests)
 endif
 endif
 
@@ -521,6 +533,7 @@ endif
 # The static libraries.
 link-libc-static = -Wl,--start-group $(common-objpfx)libc.a $(static-gnulib) -Wl,--end-group
 link-libc-static-tests = -Wl,--start-group $(common-objpfx)libc.a $(static-gnulib-tests) -Wl,--end-group
+link-libc-static-ifunc-tests = -Wl,--start-group $(common-objpfx)libc.a $(common-objpfx)string/libc-test.o $(static-gnulib-tests) -Wl,--end-group
 link-libc-bounded = $(common-objpfx)libc_b.a $(gnulib) $(common-objpfx)libc_b.a
 
 # How to link against libgcc.  Some libgcc functions, such as those
diff --git a/Makerules b/Makerules
index 1281b94..fb2a7cd 100644
--- a/Makerules
+++ b/Makerules
@@ -546,6 +546,9 @@ LDFLAGS-c.so += -e __libc_main
 ifeq ($(bind-now),yes)
 LDFLAGS-c.so += -Wl,-z,now
 endif
+# Build libbc_ifunc.so the same way as libc.so.
+LDFLAGS-c_ifunc.so = $(LDFLAGS-c.so)
+LDLIBS-c_ifunc.so = $(LDLIBS-c.so)
 # Pre-link the objects of libc_pic.a so that we can locally resolve
 # COMMON symbols before we link against ld.so.  This is because ld.so
 # contains some of libc_pic.a already, which will prevent the COMMONs
@@ -578,14 +581,25 @@ $(common-objpfx)libc.so: $(elfobjdir)/soinit.os \
 			 $(elfobjdir)/interp.os $(elfobjdir)/ld.so \
 			 $(shlib-lds)
 	$(build-shlib)
+$(common-objpfx)libc_ifunc.so: $(elfobjdir)/soinit.os \
+			       $(common-objpfx)libc_pic.os$(libc_pic_clean) \
+			       $(common-objpfx)string/libc-test.os \
+			       $(elfobjdir)/sofini.os \
+			       $(elfobjdir)/interp.os $(elfobjdir)/ld.so \
+			       $(shlib-lds)
+	$(build-shlib)
 ifeq ($(versioning),yes)
 $(common-objpfx)libc.so: $(common-objpfx)libc.map
+$(common-objpfx)libc_ifunc.so: $(common-objpfx)libc_ifunc.map
 endif
 common-generated += libc.so libc_pic.os
 ifdef libc.so-version
 $(common-objpfx)libc.so$(libc.so-version): $(common-objpfx)libc.so
 	$(make-link)
 common-generated += libc.so$(libc.so-version)
+$(common-objpfx)libc_ifunc.so$(libc.so-version): $(common-objpfx)libc_ifunc.so
+	$(make-link)
+common-generated += libc_ifunc.so$(libc.so-version)
 endif
 endif
 
diff --git a/Rules b/Rules
index 17d938e..c436b43 100644
--- a/Rules
+++ b/Rules
@@ -108,6 +108,7 @@ binaries-all = $(binaries-all-notests) $(binaries-all-tests)
 binaries-static-notests = $(others-static)
 binaries-static-tests = $(tests-static) $(xtests-static)
 binaries-static = $(binaries-static-notests) $(binaries-static-tests)
+binaries-ifunc-tests = $(tests-ifunc) $(xtests-ifunc)
 ifeq (yesyes,$(have-fpie)$(build-shared))
 binaries-pie = $(others-pie) $(tests-pie) $(xtests-pie)
 else
@@ -123,7 +124,13 @@ binaries-static =
 binaries-pie =
 endif
 
-binaries-shared-tests = $(filter-out $(binaries-pie) $(binaries-static), \
+binaries-static-ifunc-tests = $(filter $(binaries-ifunc-tests), \
+				       $(binaries-static-tests))
+binaries-shared-ifunc-tests = $(filter-out $(binaries-static-ifunc-tests), \
+					   $(binaries-ifunc-tests))
+
+binaries-shared-tests = $(filter-out $(binaries-pie) $(binaries-static) \
+					$(binaries-ifunc-tests), \
 				     $(binaries-all-tests))
 binaries-shared-notests = $(filter-out $(binaries-pie) $(binaries-static), \
 				       $(binaries-all-notests))
@@ -142,6 +149,13 @@ $(addprefix $(objpfx),$(binaries-shared-tests)): %: %.o \
 	$(+link-tests)
 endif
 
+ifneq "$(strip $(binaries-shared-ifunc-tests))" ""
+$(addprefix $(objpfx),$(binaries-shared-ifunc-tests)): %: %.o \
+  $(sort $(filter $(common-objpfx)lib%,$(link-libc-ifunc))) \
+  $(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
+	$(+link-ifunc-tests)
+endif
+
 ifneq "$(strip $(binaries-pie))" ""
 $(addprefix $(objpfx),$(binaries-pie)): %: %.o \
   $(sort $(filter $(common-objpfx)lib%,$(link-libc))) \
@@ -163,6 +177,13 @@ $(addprefix $(objpfx),$(binaries-static-tests)): %: %.o \
 	$(+link-static-tests)
 endif
 
+ifneq "$(strip $(binaries-static-ifunc-tests))" ""
+$(addprefix $(objpfx),$(binaries-static-ifunc-tests)): %: %.o \
+  $(sort $(filter $(common-objpfx)lib%,$(link-libc-static-ifunc-tests))) \
+  $(addprefix $(csu-objpfx),start.o) $(+preinit) $(+postinit)
+	$(+link-static-ifunc-tests)
+endif
+
 ifeq ($(build-bounded),yes)
 binaries-bounded = $(addsuffix -bp,$(tests) $(xtests) $(test-srcs))
 $(addprefix $(objpfx),$(binaries-bounded)): %-bp: %.ob \
diff --git a/string/Makefile b/string/Makefile
index 974c1c9..17ae4be 100644
--- a/string/Makefile
+++ b/string/Makefile
@@ -41,8 +41,6 @@ routines	:= strcat strchr strcmp strcoll strcpy strcspn		\
 		   strcoll_l strxfrm_l string-inlines memrchr		\
 		   xpg-strerror strerror_l
 
-libc_ifunc-routines = libc-test
-
 # Gcc internally generates calls to unbounded memcpy and memset
 # for -fbounded-pointer compiles.  Glibc uses memchr for explicit checks.
 o-objects.ob	:= memcpy.o memset.o memchr.o

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=1a917b80b4a20d54ef5be40694053efb735bb899

commit 1a917b80b4a20d54ef5be40694053efb735bb899
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sun Sep 23 07:56:14 2012 -0700

    Print out libc_ifunc.map

diff --git a/ChangeLog.test-ifunc b/ChangeLog.test-ifunc
index c543477..d9f4052 100644
--- a/ChangeLog.test-ifunc
+++ b/ChangeLog.test-ifunc
@@ -1,3 +1,7 @@
+2012-09-23  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* scripts/versions.awk: Print out libc_ifunc.map.
+
 2012-09-22  H.J. Lu  <hongjiu.lu@intel.com>
 
 	* config.h.in (TEST_MULTIARCH): Removed.
diff --git a/scripts/versions.awk b/scripts/versions.awk
index df56030..527f818 100644
--- a/scripts/versions.awk
+++ b/scripts/versions.awk
@@ -107,8 +107,10 @@ END {
   oldver = "";
   printf("version-maps =");
   while (getline < tmpfile) {
-    if ($1 == "libc_ifunc")
+    if ($1 == "libc_ifunc") {
+      printf(" %s.map", $1);
       continue;
+    }
     if ($1 != oldlib) {
       if (oldlib != "") {
 	closeversion(oldver, veryoldver);

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=230fbafacb65903d42998641646483794b860370

commit 230fbafacb65903d42998641646483794b860370
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Sep 22 16:38:18 2012 -0700

    Remove --enable-test-multi-arch
    
    Remove --enable-test-multi-arch and generate libc_ifunc.map.  We
    will generate libc_ifunc.so for ifunc tests.

diff --git a/ChangeLog.test-ifunc b/ChangeLog.test-ifunc
index 3718dff..c543477 100644
--- a/ChangeLog.test-ifunc
+++ b/ChangeLog.test-ifunc
@@ -1,5 +1,19 @@
 2012-09-22  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* config.h.in (TEST_MULTIARCH): Removed.
+	* config.make.in (test-multi-arch): Likewise.
+
+	* configure.in: Removed --enable-test-multi-arch.
+	* configure: Regenerated.
+
+	* scripts/versions.awk: Generate libc_ifunc.map.
+
+	* string/Makefile (routines): Don't add libc-test.
+	(libc_ifunc-routines): New macro.
+	Don't include ../Makeconfig.
+
+2012-09-22  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* debug/Makefile (ifunc-tests): New macro.
 	(tests-ifunc): Likewise.
 	(tests): Add $(tests-ifunc).
diff --git a/config.h.in b/config.h.in
index 564bbd2..10a9925 100644
--- a/config.h.in
+++ b/config.h.in
@@ -177,9 +177,6 @@
 /* Define if library functions should try to contact the nscd daemon.  */
 #undef USE_NSCD
 
-/* Define if optimizations for multiple architectures should be tested.  */
-#undef TEST_MULTIARCH
-
 /*
  */
 
diff --git a/config.make.in b/config.make.in
index c887ca9..b6d1c94 100644
--- a/config.make.in
+++ b/config.make.in
@@ -77,7 +77,6 @@ versioning = @VERSIONING@
 oldest-abi = @oldest_abi@
 exceptions = @exceptions@
 multi-arch = @multi_arch@
-test-multi-arch = @test_multi_arch@
 
 mach-interface-list = @mach_interface_list@
 
diff --git a/configure b/configure
index e1f1b2e..739d2bd 100755
--- a/configure
+++ b/configure
@@ -657,7 +657,6 @@ add_ons
 build_nscd
 link_obsolete_rpc
 libc_cv_nss_crypt
-test_multi_arch
 all_warnings
 force_install
 bindnow
@@ -749,7 +748,6 @@ enable_force_install
 enable_kernel
 enable_all_warnings
 enable_multi_arch
-enable_test_multi_arch
 enable_nss_crypt
 enable_obsolete_rpc
 enable_systemtap
@@ -1409,9 +1407,6 @@ Optional Features:
   --enable-all-warnings   enable all useful warnings gcc can issue
   --enable-multi-arch     enable single DSO with optimizations for multiple
                           architectures
-  --enable-test-multi-arch
-                          enable test of optimizations for multiple
-                          architectures
   --enable-nss-crypt      enable libcrypt to use nss
   --enable-obsolete-rpc   build and install the obsolete RPC code for
                           link-time usage
@@ -3637,19 +3632,6 @@ else
 fi
 
 
-# Check whether --enable-test-multi-arch was given.
-if test "${enable_test_multi_arch+set}" = set; then :
-  enableval=$enable_test_multi_arch; test_multi_arch=$enableval
-else
-  test_multi_arch=no
-fi
-
-if test x"$test_multi_arch" != xno; then
-  $as_echo "#define TEST_MULTIARCH 1" >>confdefs.h
-
-fi
-
-
 # Check whether --enable-nss-crypt was given.
 if test "${enable_nss_crypt+set}" = set; then :
   enableval=$enable_nss_crypt; nss_crypt=$enableval
diff --git a/configure.in b/configure.in
index b60bed0..878bf1a 100644
--- a/configure.in
+++ b/configure.in
@@ -223,16 +223,6 @@ AC_ARG_ENABLE([multi-arch],
 	      [multi_arch=$enableval],
 	      [multi_arch=default])
 
-AC_ARG_ENABLE([test-multi-arch],
-	      AC_HELP_STRING([--enable-test-multi-arch],
-			     [enable test of optimizations for multiple architectures]),
-	      [test_multi_arch=$enableval],
-	      [test_multi_arch=no])
-if test x"$test_multi_arch" != xno; then
-  AC_DEFINE(TEST_MULTIARCH)
-fi
-AC_SUBST(test_multi_arch)
-
 AC_ARG_ENABLE([nss-crypt],
 	      AC_HELP_STRING([--enable-nss-crypt],
 			     [enable libcrypt to use nss]),
diff --git a/scripts/versions.awk b/scripts/versions.awk
index 22b1c8e..df56030 100644
--- a/scripts/versions.awk
+++ b/scripts/versions.awk
@@ -41,8 +41,12 @@ BEGIN {
 /^[a-zA-Z0-9_.]+/ {
   actlib = $1;
   if (!libs[$1]) {
-    printf("no versions defined for %s\n", $1) > "/dev/stderr";
-    ++lossage;
+    if ($1 == "libc_ifunc")
+      libs[$1] = 1;
+    else {
+      printf("no versions defined for %s\n", $1) > "/dev/stderr";
+      ++lossage;
+    }
   }
   next;
 }
@@ -103,6 +107,8 @@ END {
   oldver = "";
   printf("version-maps =");
   while (getline < tmpfile) {
+    if ($1 == "libc_ifunc")
+      continue;
     if ($1 != oldlib) {
       if (oldlib != "") {
 	closeversion(oldver, veryoldver);
@@ -133,5 +139,44 @@ END {
   printf("\n");
   closeversion(oldver, veryoldver);
   close_and_move(outfile, real_outfile);
+
+  if (libs["libc_ifunc"]) {
+    close (tmpfile);
+    # Generate libc_ifunc.map from libc and libc_ifunc versions.
+    oldlib = "";
+    oldver = "";
+    while (getline < tmpfile) {
+      if ($1 != "libc" && $1 != "libc_ifunc")
+	continue;
+      if (oldlib != "libc_ifunc") {
+        if (oldlib != "") {
+	  closeversion(oldver, veryoldver);
+	  oldver = "";
+	  close_and_move(outfile, real_outfile);
+	}
+	oldlib = "libc_ifunc";
+	real_outfile = buildroot oldlib ".map";
+	outfile = real_outfile "T";
+	firstinfile = 1;
+	veryoldver = "";
+      }
+      if ($2 != oldver) {
+	if (oldver != "") {
+	  closeversion(oldver, veryoldver);
+	  veryoldver = oldver;
+	}
+	printf("%s {\n  global:\n", $2) > outfile;
+	oldver = $2;
+      }
+      printf("   ") > outfile;
+      for (n = 3; n <= NF; ++n) {
+	printf(" %s", $n) > outfile;
+      }
+      printf("\n") > outfile;
+    }
+    printf("\n");
+    closeversion(oldver, veryoldver);
+    close_and_move(outfile, real_outfile);
+  }
   #system("rm -f " tmpfile);
 }
diff --git a/string/Makefile b/string/Makefile
index ade2435..974c1c9 100644
--- a/string/Makefile
+++ b/string/Makefile
@@ -41,11 +41,7 @@ routines	:= strcat strchr strcmp strcoll strcpy strcspn		\
 		   strcoll_l strxfrm_l string-inlines memrchr		\
 		   xpg-strerror strerror_l
 
-include ../Makeconfig
-
-ifeq (yes,$(test-multi-arch))
-routines += libc-test
-endif
+libc_ifunc-routines = libc-test
 
 # Gcc internally generates calls to unbounded memcpy and memset
 # for -fbounded-pointer compiles.  Glibc uses memchr for explicit checks.
diff --git a/string/Versions b/string/Versions
index 9cecf29..be68a9d 100644
--- a/string/Versions
+++ b/string/Versions
@@ -80,9 +80,12 @@ libc {
   GLIBC_2.6 {
     strerror_l;
   }
-%ifdef TEST_MULTIARCH
+}
+
+%ifdef USE_MULTIARCH
+libc_ifunc {
   GLIBC_PRIVATE {
     __libc_func;
   }
-%endif
 }
+%endif

http://sources.redhat.com/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=ee74ab256bc3d8c075d1aea45ff5fdefbd5b549d

commit ee74ab256bc3d8c075d1aea45ff5fdefbd5b549d
Author: H.J. Lu <hjl.tools@gmail.com>
Date:   Sat Sep 22 10:49:46 2012 -0700

    Add ifunc tests

diff --git a/ChangeLog.test-ifunc b/ChangeLog.test-ifunc
index 802d41e..3718dff 100644
--- a/ChangeLog.test-ifunc
+++ b/ChangeLog.test-ifunc
@@ -1,5 +1,56 @@
 2012-09-22  H.J. Lu  <hongjiu.lu@intel.com>
 
+	* debug/Makefile (ifunc-tests): New macro.
+	(tests-ifunc): Likewise.
+	(tests): Add $(tests-ifunc).
+	* string/Makefile (ifunc-tests): New macro.
+	(tests-ifunc): Likewise.
+	(tests): Add $(tests-ifunc).
+	* string/test-string.h: Check TEST_IFUNC instead of
+	TEST_MULTIARCH.
+	* wcsmbs/Makefile (ifunc-tests): New macro.
+	(tests-ifunc): Likewise.
+	(tests): Add $(tests-ifunc).
+	* debug/test-stpcpy_chk-ifunc.c: New file.
+	* debug/test-strcpy_chk-ifunc.c: Likewise.
+	* string/test-memccpy-ifunc.c: Likewise.
+	* string/test-memchr-ifunc.c: Likewise.
+	* string/test-memcmp-ifunc.c: Likewise.
+	* string/test-memcpy-ifunc.c: Likewise.
+	* string/test-memmem-ifunc.c: Likewise.
+	* string/test-memmove-ifunc.c: Likewise.
+	* string/test-mempcpy-ifunc.c: Likewise.
+	* string/test-memset-ifunc.c: Likewise.
+	* string/test-rawmemchr-ifunc.c: Likewise.
+	* string/test-stpcpy-ifunc.c: Likewise.
+	* string/test-stpncpy-ifunc.c: Likewise.
+	* string/test-strcasecmp-ifunc.c: Likewise.
+	* string/test-strcasestr-ifunc.c: Likewise.
+	* string/test-strcat-ifunc.c: Likewise.
+	* string/test-strchr-ifunc.c: Likewise.
+	* string/test-strchrnul-ifunc.c: Likewise.
+	* string/test-strcmp-ifunc.c: Likewise.
+	* string/test-strcpy-ifunc.c: Likewise.
+	* string/test-strcspn-ifunc.c: Likewise.
+	* string/test-strlen-ifunc.c: Likewise.
+	* string/test-strncasecmp-ifunc.c: Likewise.
+	* string/test-strncat-ifunc.c: Likewise.
+	* string/test-strncmp-ifunc.c: Likewise.
+	* string/test-strncpy-ifunc.c: Likewise.
+	* string/test-strnlen-ifunc.c: Likewise.
+	* string/test-strpbrk-ifunc.c: Likewise.
+	* string/test-strrchr-ifunc.c: Likewise.
+	* string/test-strspn-ifunc.c: Likewise.
+	* string/test-strstr-ifunc.c: Likewise.
+	* wcsmbs/test-wcschr-ifunc.c: Likewise.
+	* wcsmbs/test-wcscmp-ifunc.c: Likewise.
+	* wcsmbs/test-wcscpy-ifunc.c: Likewise.
+	* wcsmbs/test-wcslen-ifunc.c: Likewise.
+	* wcsmbs/test-wcsrchr-ifunc.c: Likewise.
+	* wcsmbs/test-wmemcmp-ifunc.c: Likewise.
+
+2012-09-22  H.J. Lu  <hongjiu.lu@intel.com>
+
 	* sysdeps/i386/i686/multiarch/libc-test.c: Include <wchar.h>.
 	(find_wcschr): New.
 	(find_wcscmp): Likewise.
diff --git a/debug/Makefile b/debug/Makefile
index ae5b674..426989b 100644
--- a/debug/Makefile
+++ b/debug/Makefile
@@ -126,6 +126,10 @@ tests = backtrace-tst tst-longjmp_chk tst-chk1 tst-chk2 tst-chk3 \
 	tst-chk4 tst-chk5 tst-chk6 tst-lfschk4 tst-lfschk5 tst-lfschk6 \
 	tst-longjmp_chk2
 
+ifunc-tests = test-stpcpy_chk test-strcpy_chk
+tests-ifunc = $(addsuffix -ifunc,$(ifunc-tests))
+tests += $(tests-ifunc)
+
 extra-libs = libSegFault libpcprofile
 extra-libs-others = $(extra-libs)
 
diff --git a/debug/test-stpcpy_chk-ifunc.c b/debug/test-stpcpy_chk-ifunc.c
new file mode 100644
index 0000000..cc2a40c
--- /dev/null
+++ b/debug/test-stpcpy_chk-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-stpcpy_chk.c" 
diff --git a/debug/test-strcpy_chk-ifunc.c b/debug/test-strcpy_chk-ifunc.c
new file mode 100644
index 0000000..1bef83a
--- /dev/null
+++ b/debug/test-strcpy_chk-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-strcpy_chk.c" 
diff --git a/string/Makefile b/string/Makefile
index c0d0885..ade2435 100644
--- a/string/Makefile
+++ b/string/Makefile
@@ -64,6 +64,9 @@ tests		:= tester inl-tester noinl-tester testcopy test-ffs	\
 		   bug-envz1 tst-strxfrm2 tst-endian tst-svc2		\
 		   bug-strstr1 bug-strcasestr1 bug-strchr1 tst-strtok_r
 
+ifunc-tests = $(addprefix test-,$(strop-tests))
+tests-ifunc = $(addsuffix -ifunc,$(ifunc-tests))
+tests += $(tests-ifunc)
 
 include ../Rules
 
diff --git a/string/test-memccpy-ifunc.c b/string/test-memccpy-ifunc.c
new file mode 100644
index 0000000..cb5aa60
--- /dev/null
+++ b/string/test-memccpy-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-memccpy.c" 
diff --git a/string/test-memchr-ifunc.c b/string/test-memchr-ifunc.c
new file mode 100644
index 0000000..3dd1890
--- /dev/null
+++ b/string/test-memchr-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-memchr.c" 
diff --git a/string/test-memcmp-ifunc.c b/string/test-memcmp-ifunc.c
new file mode 100644
index 0000000..eaea228
--- /dev/null
+++ b/string/test-memcmp-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-memcmp.c" 
diff --git a/string/test-memcpy-ifunc.c b/string/test-memcpy-ifunc.c
new file mode 100644
index 0000000..b88a694
--- /dev/null
+++ b/string/test-memcpy-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-memcpy.c" 
diff --git a/string/test-memmem-ifunc.c b/string/test-memmem-ifunc.c
new file mode 100644
index 0000000..bfb917d
--- /dev/null
+++ b/string/test-memmem-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-memmem.c" 
diff --git a/string/test-memmove-ifunc.c b/string/test-memmove-ifunc.c
new file mode 100644
index 0000000..5fafab6
--- /dev/null
+++ b/string/test-memmove-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-memmove.c" 
diff --git a/string/test-mempcpy-ifunc.c b/string/test-mempcpy-ifunc.c
new file mode 100644
index 0000000..1cd1341
--- /dev/null
+++ b/string/test-mempcpy-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-mempcpy.c" 
diff --git a/string/test-memset-ifunc.c b/string/test-memset-ifunc.c
new file mode 100644
index 0000000..2bc5732
--- /dev/null
+++ b/string/test-memset-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-memset.c" 
diff --git a/string/test-rawmemchr-ifunc.c b/string/test-rawmemchr-ifunc.c
new file mode 100644
index 0000000..59418fd
--- /dev/null
+++ b/string/test-rawmemchr-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-rawmemchr.c" 
diff --git a/string/test-stpcpy-ifunc.c b/string/test-stpcpy-ifunc.c
new file mode 100644
index 0000000..1d37dc5
--- /dev/null
+++ b/string/test-stpcpy-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-stpcpy.c" 
diff --git a/string/test-stpncpy-ifunc.c b/string/test-stpncpy-ifunc.c
new file mode 100644
index 0000000..3f747b9
--- /dev/null
+++ b/string/test-stpncpy-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-stpncpy.c" 
diff --git a/string/test-strcasecmp-ifunc.c b/string/test-strcasecmp-ifunc.c
new file mode 100644
index 0000000..788d80c
--- /dev/null
+++ b/string/test-strcasecmp-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-strcasecmp.c" 
diff --git a/string/test-strcasestr-ifunc.c b/string/test-strcasestr-ifunc.c
new file mode 100644
index 0000000..c32dfe3
--- /dev/null
+++ b/string/test-strcasestr-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-strcasestr.c" 
diff --git a/string/test-strcat-ifunc.c b/string/test-strcat-ifunc.c
new file mode 100644
index 0000000..85a6c54
--- /dev/null
+++ b/string/test-strcat-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-strcat.c" 
diff --git a/string/test-strchr-ifunc.c b/string/test-strchr-ifunc.c
new file mode 100644
index 0000000..46d47e2
--- /dev/null
+++ b/string/test-strchr-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-strchr.c" 
diff --git a/string/test-strchrnul-ifunc.c b/string/test-strchrnul-ifunc.c
new file mode 100644
index 0000000..787faf5
--- /dev/null
+++ b/string/test-strchrnul-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-strchrnul.c" 
diff --git a/string/test-strcmp-ifunc.c b/string/test-strcmp-ifunc.c
new file mode 100644
index 0000000..3e05816
--- /dev/null
+++ b/string/test-strcmp-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-strcmp.c" 
diff --git a/string/test-strcpy-ifunc.c b/string/test-strcpy-ifunc.c
new file mode 100644
index 0000000..16c64d1
--- /dev/null
+++ b/string/test-strcpy-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-strcpy.c" 
diff --git a/string/test-strcspn-ifunc.c b/string/test-strcspn-ifunc.c
new file mode 100644
index 0000000..95a91e5
--- /dev/null
+++ b/string/test-strcspn-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-strcspn.c" 
diff --git a/string/test-string.h b/string/test-string.h
index e365ed0..b37329c 100644
--- a/string/test-string.h
+++ b/string/test-string.h
@@ -107,7 +107,7 @@ size_t iterations = 100000;
 #define CALL(impl, ...)	\
   (* (proto_t) (impl)->fn) (__VA_ARGS__)
 
-#if defined TEST_MULTIARCH && defined TEST_NAME
+#if defined TEST_IFUNC && defined TEST_NAME
 static const struct libc_func_test *func_list;
 static int impl_count = -1;
 static impl_t *impl_array;
@@ -178,7 +178,7 @@ static impl_t *impl_array;
 static void
 test_init (void)
 {
-#if defined TEST_MULTIARCH && defined TEST_NAME
+#if defined TEST_IFUNC && defined TEST_NAME
   func_list = __libc_func (TEST_NAME);
 #endif
 
diff --git a/string/test-strlen-ifunc.c b/string/test-strlen-ifunc.c
new file mode 100644
index 0000000..bdeef34
--- /dev/null
+++ b/string/test-strlen-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-strlen.c" 
diff --git a/string/test-strncasecmp-ifunc.c b/string/test-strncasecmp-ifunc.c
new file mode 100644
index 0000000..438aca0
--- /dev/null
+++ b/string/test-strncasecmp-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-strncasecmp.c" 
diff --git a/string/test-strncat-ifunc.c b/string/test-strncat-ifunc.c
new file mode 100644
index 0000000..d78c714
--- /dev/null
+++ b/string/test-strncat-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-strncat.c" 
diff --git a/string/test-strncmp-ifunc.c b/string/test-strncmp-ifunc.c
new file mode 100644
index 0000000..0e7f8bd
--- /dev/null
+++ b/string/test-strncmp-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-strncmp.c" 
diff --git a/string/test-strncpy-ifunc.c b/string/test-strncpy-ifunc.c
new file mode 100644
index 0000000..9735349
--- /dev/null
+++ b/string/test-strncpy-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-strncpy.c" 
diff --git a/string/test-strnlen-ifunc.c b/string/test-strnlen-ifunc.c
new file mode 100644
index 0000000..d863740
--- /dev/null
+++ b/string/test-strnlen-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-strnlen.c" 
diff --git a/string/test-strpbrk-ifunc.c b/string/test-strpbrk-ifunc.c
new file mode 100644
index 0000000..9d70c74
--- /dev/null
+++ b/string/test-strpbrk-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-strpbrk.c" 
diff --git a/string/test-strrchr-ifunc.c b/string/test-strrchr-ifunc.c
new file mode 100644
index 0000000..2f39ec9
--- /dev/null
+++ b/string/test-strrchr-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-strrchr.c" 
diff --git a/string/test-strspn-ifunc.c b/string/test-strspn-ifunc.c
new file mode 100644
index 0000000..e815c15
--- /dev/null
+++ b/string/test-strspn-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-strspn.c" 
diff --git a/string/test-strstr-ifunc.c b/string/test-strstr-ifunc.c
new file mode 100644
index 0000000..754a0d2
--- /dev/null
+++ b/string/test-strstr-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-strstr.c" 
diff --git a/wcsmbs/Makefile b/wcsmbs/Makefile
index 7402ec9..b8e4e68 100644
--- a/wcsmbs/Makefile
+++ b/wcsmbs/Makefile
@@ -45,6 +45,9 @@ strop-tests :=  wcscmp wmemcmp wcslen wcschr wcsrchr wcscpy
 tests := tst-wcstof wcsmbs-tst1 tst-wcsnlen tst-btowc tst-mbrtowc \
 	 tst-wcrtomb tst-wcpncpy tst-mbsrtowcs tst-wchar-h tst-mbrtowc2 \
 	 tst-c16c32-1 wcsatcliff $(addprefix test-,$(strop-tests))
+ifunc-tests = $(addprefix test-,$(strop-tests))
+tests-ifunc = $(addsuffix -ifunc,$(ifunc-tests))
+tests += $(tests-ifunc)
 
 include ../Rules
 
diff --git a/wcsmbs/test-wcschr-ifunc.c b/wcsmbs/test-wcschr-ifunc.c
new file mode 100644
index 0000000..0537695
--- /dev/null
+++ b/wcsmbs/test-wcschr-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-wcschr.c" 
diff --git a/wcsmbs/test-wcscmp-ifunc.c b/wcsmbs/test-wcscmp-ifunc.c
new file mode 100644
index 0000000..9b14cc9
--- /dev/null
+++ b/wcsmbs/test-wcscmp-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-wcscmp.c" 
diff --git a/wcsmbs/test-wcscpy-ifunc.c b/wcsmbs/test-wcscpy-ifunc.c
new file mode 100644
index 0000000..7cfe9ff
--- /dev/null
+++ b/wcsmbs/test-wcscpy-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-wcscpy.c" 
diff --git a/wcsmbs/test-wcslen-ifunc.c b/wcsmbs/test-wcslen-ifunc.c
new file mode 100644
index 0000000..5d780a2
--- /dev/null
+++ b/wcsmbs/test-wcslen-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-wcslen.c" 
diff --git a/wcsmbs/test-wcsrchr-ifunc.c b/wcsmbs/test-wcsrchr-ifunc.c
new file mode 100644
index 0000000..86ba92a
--- /dev/null
+++ b/wcsmbs/test-wcsrchr-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-wcsrchr.c" 
diff --git a/wcsmbs/test-wmemcmp-ifunc.c b/wcsmbs/test-wmemcmp-ifunc.c
new file mode 100644
index 0000000..6043d28
--- /dev/null
+++ b/wcsmbs/test-wmemcmp-ifunc.c
@@ -0,0 +1,2 @@
+#define TEST_IFUNC 1
+#include "test-wmemcmp.c" 

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog.test-ifunc            |   93 +++++++++++++++++++++++++++++++++++++++
 Makeconfig                      |   13 +++++
 Makerules                       |   14 ++++++
 Rules                           |   23 +++++++++-
 config.h.in                     |    3 -
 config.make.in                  |    1 -
 configure                       |   18 --------
 configure.in                    |   10 ----
 debug/Makefile                  |    4 ++
 debug/test-stpcpy_chk-ifunc.c   |    2 +
 debug/test-strcpy_chk-ifunc.c   |    2 +
 scripts/versions.awk            |   51 ++++++++++++++++++++-
 string/Makefile                 |    9 +---
 string/Versions                 |    7 ++-
 string/test-memccpy-ifunc.c     |    2 +
 string/test-memchr-ifunc.c      |    2 +
 string/test-memcmp-ifunc.c      |    2 +
 string/test-memcpy-ifunc.c      |    2 +
 string/test-memmem-ifunc.c      |    2 +
 string/test-memmove-ifunc.c     |    2 +
 string/test-mempcpy-ifunc.c     |    2 +
 string/test-memset-ifunc.c      |    2 +
 string/test-rawmemchr-ifunc.c   |    2 +
 string/test-stpcpy-ifunc.c      |    2 +
 string/test-stpncpy-ifunc.c     |    2 +
 string/test-strcasecmp-ifunc.c  |    2 +
 string/test-strcasestr-ifunc.c  |    2 +
 string/test-strcat-ifunc.c      |    2 +
 string/test-strchr-ifunc.c      |    2 +
 string/test-strchrnul-ifunc.c   |    2 +
 string/test-strcmp-ifunc.c      |    2 +
 string/test-strcpy-ifunc.c      |    2 +
 string/test-strcspn-ifunc.c     |    2 +
 string/test-string.h            |    4 +-
 string/test-strlen-ifunc.c      |    2 +
 string/test-strncasecmp-ifunc.c |    2 +
 string/test-strncat-ifunc.c     |    2 +
 string/test-strncmp-ifunc.c     |    2 +
 string/test-strncpy-ifunc.c     |    2 +
 string/test-strnlen-ifunc.c     |    2 +
 string/test-strpbrk-ifunc.c     |    2 +
 string/test-strrchr-ifunc.c     |    2 +
 string/test-strspn-ifunc.c      |    2 +
 string/test-strstr-ifunc.c      |    2 +
 wcsmbs/Makefile                 |    3 +
 wcsmbs/test-wcschr-ifunc.c      |    2 +
 wcsmbs/test-wcscmp-ifunc.c      |    2 +
 wcsmbs/test-wcscpy-ifunc.c      |    2 +
 wcsmbs/test-wcslen-ifunc.c      |    2 +
 wcsmbs/test-wcsrchr-ifunc.c     |    2 +
 wcsmbs/test-wmemcmp-ifunc.c     |    2 +
 51 files changed, 282 insertions(+), 45 deletions(-)
 create mode 100644 debug/test-stpcpy_chk-ifunc.c
 create mode 100644 debug/test-strcpy_chk-ifunc.c
 create mode 100644 string/test-memccpy-ifunc.c
 create mode 100644 string/test-memchr-ifunc.c
 create mode 100644 string/test-memcmp-ifunc.c
 create mode 100644 string/test-memcpy-ifunc.c
 create mode 100644 string/test-memmem-ifunc.c
 create mode 100644 string/test-memmove-ifunc.c
 create mode 100644 string/test-mempcpy-ifunc.c
 create mode 100644 string/test-memset-ifunc.c
 create mode 100644 string/test-rawmemchr-ifunc.c
 create mode 100644 string/test-stpcpy-ifunc.c
 create mode 100644 string/test-stpncpy-ifunc.c
 create mode 100644 string/test-strcasecmp-ifunc.c
 create mode 100644 string/test-strcasestr-ifunc.c
 create mode 100644 string/test-strcat-ifunc.c
 create mode 100644 string/test-strchr-ifunc.c
 create mode 100644 string/test-strchrnul-ifunc.c
 create mode 100644 string/test-strcmp-ifunc.c
 create mode 100644 string/test-strcpy-ifunc.c
 create mode 100644 string/test-strcspn-ifunc.c
 create mode 100644 string/test-strlen-ifunc.c
 create mode 100644 string/test-strncasecmp-ifunc.c
 create mode 100644 string/test-strncat-ifunc.c
 create mode 100644 string/test-strncmp-ifunc.c
 create mode 100644 string/test-strncpy-ifunc.c
 create mode 100644 string/test-strnlen-ifunc.c
 create mode 100644 string/test-strpbrk-ifunc.c
 create mode 100644 string/test-strrchr-ifunc.c
 create mode 100644 string/test-strspn-ifunc.c
 create mode 100644 string/test-strstr-ifunc.c
 create mode 100644 wcsmbs/test-wcschr-ifunc.c
 create mode 100644 wcsmbs/test-wcscmp-ifunc.c
 create mode 100644 wcsmbs/test-wcscpy-ifunc.c
 create mode 100644 wcsmbs/test-wcslen-ifunc.c
 create mode 100644 wcsmbs/test-wcsrchr-ifunc.c
 create mode 100644 wcsmbs/test-wmemcmp-ifunc.c


hooks/post-receive
-- 
GNU C Library master sources


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]