This is the mail archive of the libc-alpha@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]

Remove TEST_IFUNC, tests-ifunc and *-ifunc.c tests


TEST_IFUNC is only tested in two headers, bench-string.h and
test-string.h, after it gets defined by those headers, and it never
gets undefined.

Thus no defines of TEST_IFUNC are needed, and the *-ifunc.c tests that
just define TEST_IFUNC and include other tests are also redundant, as
is the code to remove $(tests-ifunc) and $(xtests-ifunc) conditionally
from tests and xtests.  This patch removes the useless defines and
tests of TEST_IFUNC and the associated useless tests and makefile
code.  It thereby fixes a series of warnings
"../string/test-string.h:21:0: warning: "TEST_IFUNC" redefined" where
test-string.h defines TEST_IFUNC to empty, other files define it to 1
and this produces warnings.

Tested for x86_64.

2014-11-25  Joseph Myers  <joseph@codesourcery.com>

	* debug/test-stpcpy_chk-ifunc.c: Remove file.
	* debug/test-strcpy_chk-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.
	* Rules [$(multi-arch) = no] (tests): Do not filter out
	$(tests-ifunc).
	[$(multi-arch) = no] (xtests): Do not filter out $(xtests-ifunc).
	* debug/Makefile (tests-ifunc): Remove variable.
	(tests): Do not add $(tests-ifunc).
	* wcsmbs/Makefile (tests-ifunc): Remove variable.
	(tests): Do not add $(tests-ifunc).
	* benchtests/bench-string.h (TEST_IFUNC): Remove macro.
	[TEST_IFUNC]: Remove conditionals.
	* string/test-string.h (TEST_IFUNC): Remove macro.
	[TEST_IFUNC]: Remove conditionals.

diff --git a/Rules b/Rules
index 4f9cdf3..82d8e97 100644
--- a/Rules
+++ b/Rules
@@ -84,10 +84,6 @@ common-generated += dummy.o dummy.c
 # This makes all the auxiliary and test programs.
 
 .PHONY: others tests bench
-ifeq ($(multi-arch),no)
-tests := $(filter-out $(tests-ifunc), $(tests))
-xtests := $(filter-out $(xtests-ifunc), $(xtests))
-endif
 
 ifeq ($(build-programs),yes)
 others: $(addprefix $(objpfx),$(others) $(sysdep-others) $(extra-objs))
diff --git a/benchtests/bench-string.h b/benchtests/bench-string.h
index bdb927f..d0a247a 100644
--- a/benchtests/bench-string.h
+++ b/benchtests/bench-string.h
@@ -17,7 +17,6 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <sys/cdefs.h>
-#define TEST_IFUNC 1
 
 typedef struct
 {
@@ -107,7 +106,7 @@ size_t iterations = 100000;
 # define CALL(impl, ...)	\
     (* (proto_t) (impl)->fn) (__VA_ARGS__)
 
-# if defined TEST_IFUNC && defined TEST_NAME
+# ifdef TEST_NAME
 /* Increase size of FUNC_LIST if assert is triggered at run-time.  */
 static struct libc_ifunc_impl func_list[32];
 static int func_count;
@@ -153,11 +152,11 @@ static impl_t *impl_array;
      impl = impl_array;							      \
      for (count = 0; count < impl_count; ++count, ++impl)		      \
        if (!notall || impl->test)
-# else /* ! (defined TEST_IFUNC && defined TEST_NAME) */
+# else /* !TEST_NAME */
 #  define FOR_EACH_IMPL(impl, notall) \
      for (impl_t *impl = __start_impls; impl < __stop_impls; ++impl)	      \
        if (!notall || impl->test)
-# endif /* ! (defined TEST_IFUNC && defined TEST_NAME) */
+# endif /* !TEST_NAME */
 
 # ifndef BUF1PAGES
 #  define BUF1PAGES 1
@@ -166,7 +165,7 @@ static impl_t *impl_array;
 static void
 test_init (void)
 {
-# if defined TEST_IFUNC && defined TEST_NAME
+# ifdef TEST_NAME
   func_count = __libc_ifunc_impl_list (TEST_NAME, func_list,
 				       (sizeof func_list
 					/ sizeof func_list[0]));
diff --git a/debug/Makefile b/debug/Makefile
index c284c51..3ddcd1e 100644
--- a/debug/Makefile
+++ b/debug/Makefile
@@ -135,9 +135,6 @@ tests = backtrace-tst tst-longjmp_chk tst-chk1 tst-chk2 tst-chk3 \
 	tst-longjmp_chk2 tst-backtrace2 tst-backtrace3 tst-backtrace4 \
 	tst-backtrace5 tst-backtrace6
 
-tests-ifunc := $(stpcpy_chk strcpy_chk:%=test-%-ifunc)
-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
deleted file mode 100644
index 91bd628..0000000
--- a/debug/test-stpcpy_chk-ifunc.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Test and measure IFUNC implementations of stpcpy checking function.
-   Copyright (C) 2012-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#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
deleted file mode 100644
index 8fe9fad..0000000
--- a/debug/test-strcpy_chk-ifunc.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Test and measure IFUNC implementations of strcpy checking function.
-   Copyright (C) 2012-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#define TEST_IFUNC 1
-#include "test-strcpy_chk.c"
diff --git a/string/test-string.h b/string/test-string.h
index 4d9a39d..0051132 100644
--- a/string/test-string.h
+++ b/string/test-string.h
@@ -18,7 +18,6 @@
    <http://www.gnu.org/licenses/>.  */
 
 #include <sys/cdefs.h>
-#define TEST_IFUNC
 
 typedef struct
 {
@@ -105,7 +104,7 @@ size_t iterations = 100000;
 #define CALL(impl, ...)	\
   (* (proto_t) (impl)->fn) (__VA_ARGS__)
 
-#if defined TEST_IFUNC && defined TEST_NAME
+#ifdef TEST_NAME
 /* Increase size of FUNC_LIST if assert is triggered at run-time.  */
 static struct libc_ifunc_impl func_list[32];
 static int func_count;
@@ -164,7 +163,7 @@ static impl_t *impl_array;
 static void
 test_init (void)
 {
-#if defined TEST_IFUNC && defined TEST_NAME
+#ifdef TEST_NAME
   func_count = __libc_ifunc_impl_list (TEST_NAME, func_list,
 				       (sizeof func_list
 					/ sizeof func_list[0]));
diff --git a/wcsmbs/Makefile b/wcsmbs/Makefile
index 42843a6..f964d9f 100644
--- a/wcsmbs/Makefile
+++ b/wcsmbs/Makefile
@@ -46,8 +46,6 @@ 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))
-tests-ifunc := $(strop-tests:%=test-%-ifunc)
-tests += $(tests-ifunc)
 
 include ../Rules
 
diff --git a/wcsmbs/test-wcschr-ifunc.c b/wcsmbs/test-wcschr-ifunc.c
deleted file mode 100644
index cf10c95..0000000
--- a/wcsmbs/test-wcschr-ifunc.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Test and measure IFUNC implementations of wcschr function.
-   Copyright (C) 2012-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#define TEST_IFUNC 1
-#include "test-wcschr.c"
diff --git a/wcsmbs/test-wcscmp-ifunc.c b/wcsmbs/test-wcscmp-ifunc.c
deleted file mode 100644
index 94bfead..0000000
--- a/wcsmbs/test-wcscmp-ifunc.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Test and measure IFUNC implementations of wcscmp function.
-   Copyright (C) 2012-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#define TEST_IFUNC 1
-#include "test-wcscmp.c"
diff --git a/wcsmbs/test-wcscpy-ifunc.c b/wcsmbs/test-wcscpy-ifunc.c
deleted file mode 100644
index 7478908..0000000
--- a/wcsmbs/test-wcscpy-ifunc.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Test and measure IFUNC implementations of wcscpy function.
-   Copyright (C) 2012-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#define TEST_IFUNC 1
-#include "test-wcscpy.c"
diff --git a/wcsmbs/test-wcslen-ifunc.c b/wcsmbs/test-wcslen-ifunc.c
deleted file mode 100644
index 974ea18..0000000
--- a/wcsmbs/test-wcslen-ifunc.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Test and measure IFUNC implementations of wcslen function.
-   Copyright (C) 2012-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#define TEST_IFUNC 1
-#include "test-wcslen.c"
diff --git a/wcsmbs/test-wcsrchr-ifunc.c b/wcsmbs/test-wcsrchr-ifunc.c
deleted file mode 100644
index 16e3eb5..0000000
--- a/wcsmbs/test-wcsrchr-ifunc.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Test and measure IFUNC implementations of wcsrchr function.
-   Copyright (C) 2012-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#define TEST_IFUNC 1
-#include "test-wcsrchr.c"
diff --git a/wcsmbs/test-wmemcmp-ifunc.c b/wcsmbs/test-wmemcmp-ifunc.c
deleted file mode 100644
index da1a71d..0000000
--- a/wcsmbs/test-wmemcmp-ifunc.c
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Test and measure IFUNC implementations of wmemcmp function.
-   Copyright (C) 2012-2014 Free Software Foundation, Inc.
-   This file is part of the GNU C Library.
-
-   The GNU C Library is free software; you can redistribute it and/or
-   modify it under the terms of the GNU Lesser General Public
-   License as published by the Free Software Foundation; either
-   version 2.1 of the License, or (at your option) any later version.
-
-   The GNU C Library is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   Lesser General Public License for more details.
-
-   You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
-   <http://www.gnu.org/licenses/>.  */
-
-#define TEST_IFUNC 1
-#include "test-wmemcmp.c"

-- 
Joseph S. Myers
joseph@codesourcery.com


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