This is the mail archive of the
glibc-cvs@sourceware.org
mailing list for the glibc project.
GNU C Library master sources branch hjl/ifunc/test updated. glibc-2.16-ports-merge-416-g6711ab3
- From: hjl at sourceware dot org
- To: glibc-cvs at sourceware dot org
- Date: 23 Sep 2012 19:01:36 -0000
- Subject: 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