Enumerate tests with special rules in tests-special variable.

This patch is a revised and updated version of
<https://sourceware.org/ml/libc-alpha/2014-01/msg00196.html>.

In order to generate overall summaries of the results of all tests in
the glibc testsuite, we need to identify and concatenate the files
with the results of individual tests.

Tomas Dohnalek's patch used $(common-objpfx)*/*.test-result for this.
However, the normal glibc approach is explicit enumeration of the
expected set of files with a given property, rather than all files
matching some pattern like that.  Furthermore, we would like to be
able to mark tests as UNRESOLVED if the file with their results is for
some reason missing, and in future we would like to be able to mark
tests as UNSUPPORTED if they are disabled for a particular
configuration (rather than simply having them missing from the list of
tests as at present).  Such handling of tests that were not run or did
not record results requires an explicit enumeration of tests.

For the tests following the default makefile rules, $(tests) (and
$(xtests)) provides such an enumeration.  Others, however, are added
directly as dependencies of the "tests" and "xtests" makefile
targets.  This patch changes the makefiles to put them in variables
tests-special and xtests-special, with appropriate dependencies on the
tests listed there then being added centrally.

Those variables are used in Rules and so need to be set before Rules
is included in a subdirectory makefile, which is often earlier in the
makefile than the dependencies were present before.  We previously
discussed the question of where to include Rules; see the question at
<https://sourceware.org/ml/libc-alpha/2012-11/msg00798.html>, and a
discussion in
<https://sourceware.org/ml/libc-alpha/2013-01/msg00337.html> of why
Rules is included early rather than late in subdirectory makefiles.

It was necessary to avoid an indirection through the check-abi target
and get the check-abi-* targets for individual libraries into the
tests-special variable.  The intl/ test $(objpfx)tst-gettext.out,
previously built only because of dependencies from other tests, was
also added to tests-special for the same reason.

The entries in tests-special are the full makefile targets, complete
with $(objpfx) and .out.  If a future change causes tests to be named
consistently with a .out suffix, this can be changed to include just
the path relative to $(objpfx), without .out.

Tested x86_64, including that the same set of files is generated in
the build directory by a build and testsuite run both before and after
the patch (except for changes to the
elf/tst-null-argv.debug.out.<number> file name), and a build with
run-built-tests=no to verify there aren't any more obvious instances
of the issue Marcus Shawcroft reported with a previous version in
<https://sourceware.org/ml/libc-alpha/2014-01/msg00462.html>.

	* Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	(tests): Depend on $(tests-special).
	* Makerules (check-abi-list): New variable.
	(check-abi): Depend on $(check-abi-list).
	[$(subdir) = elf] (tests-special): Add
	$(objpfx)check-abi-libc.out.
	[$(build-shared) = yes && subdir] (tests-special): Add
	$(check-abi-list).
	[$(build-shared) = yes && subdir] (tests): Do not depend on
	check-abi.
	* Rules (tests): Depend on $(tests-special).
	(xtests): Depend on $(xtests-special).
	* catgets/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	* conform/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	* elf/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	* grp/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	* iconv/Makefile (xtests): Change dependencies to ....
	(xtests-special): ... additions to this variable.
	* iconvdata/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	* intl/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.  Also add
	$(objpfx)tst-gettext.out.
	* io/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	* libio/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	* malloc/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	* misc/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	* nptl/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	* nptl_db/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	* posix/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	(xtests): Change dependencies to ....
	(xtests-special): ... additions to this variable.
	* resolv/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	(xtests): Change dependencies to ....
	(xtests-special): ... additions to this variable.
	* stdio-common/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	(do-tst-unbputc): Remove target.
	(do-tst-printf): Likewise.
	* stdlib/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	* string/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
	* sysdeps/x86/Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.

localedata:
	* Makefile (tests): Change dependencies to ....
	(tests-special): ... additions to this variable.
conformtest: clean up POSIX expectations for semaphore.h, signal.h, tar.h.

Continuing the series of patches to clean up conformtest expectations
for "POSIX" (1995/6) based on review of the expectations against the
standard, this patch cleans up those for semaphore.h, signal.h and
tar.h (including various corrections for other standards for the
expectations affected by this patch).  Tested x86_64.

(Some of the failures for signal.h shown up by this patch correcting
expectations for that header are among the reasons for posix/annexc
being expected to fail.  The goal is for conformtest eventually to
replace posix/annexc and stdlib/isomac once it has all relevant
functionality, and for the loop over standards and headers in
conformtest to convert to separate makefile targets for each
combination, so they can be run in parallel and so that xfails can be
more specific than the present xfailing of the whole of conformtest.)

	* conform/conformtest.pl: Allow ' and \ in values given for
	constants.
	* conform/data/semaphore.h-data [POSIX] (fcntl.h): Allow header
	inclusion.
	[POSIX] (sys/types.h): Likewise.
	[POSIX2008 || XOPEN2K8] (sys/types.h): Don't allow header
	inclusion.
	[POSIX || UNIX98 || XOPEN2K] (time.h): Don't allow header
	inclusion.
	* conform/data/signal.h-data (SIGIO): Remove expectation.
	[XPG3] (SIGBUS): Do not expect.
	[POSIX || XPG3] (SIGPOLL): Likewise.
	[POSIX || XPG3] (SIGPROF): Likewise.
	[POSIX || XPG3] (SIGSYS): Likewise.
	[XPG3] (SIGTRAP): Likewise.
	[POSIX || XPG3] (SIGURG): Likewise.
	[POSIX || XPG3] (SIGVTALRM): Likewise.
	[POSIX || XPG3] (SIGXCPU): Likewise.
	[POSIX || XPG3] (SIGXFSZ): Likewise.
	[POSIX] (SA_SIGINFO): Expect.
	[XPG3] (siginfo_t): Do not expect type or contents.
	[POSIX] (si_pid): Do not expect element.
	[POSIX] (si_uid): Likewise.
	[POSIX] (si_addr): Likewise.
	[POSIX] (si_status): Likewise.
	[POSIX] (si_band): Likewise.
	[XPG4] (si_value): Likewise.
	[POSIX || XPG3] (ILL_ILLOPC): Do not expect.
	[POSIX || XPG3] (ILL_ILLOPN): Likewise.
	[POSIX || XPG3] (ILL_ILLADR): Likewise.
	[POSIX || XPG3] (ILL_ILLTRP): Likewise.
	[POSIX || XPG3] (ILL_PRVOPC): Likewise.
	[POSIX || XPG3] (ILL_PRVREG): Likewise.
	[POSIX || XPG3] (ILL_COPROC): Likewise.
	[POSIX || XPG3] (ILL_BADSTK): Likewise.
	[POSIX || XPG3] (FPE_INTDIV): Likewise.
	[POSIX || XPG3] (FPE_INTOVF): Likewise.
	[POSIX || XPG3] (FPE_FLTDIV): Likewise.
	[POSIX || XPG3] (FPE_FLTOVF): Likewise.
	[POSIX || XPG3] (FPE_FLTUND): Likewise.
	[POSIX || XPG3] (FPE_FLTRES): Likewise.
	[POSIX || XPG3] (FPE_FLTINV): Likewise.
	[POSIX || XPG3] (FPE_FLTSUB): Likewise.
	[POSIX || XPG3] (SEGV_MAPERR): Likewise.
	[POSIX || XPG3] (SEGV_ACCERR): Likewise.
	[POSIX || XPG3] (BUS_ADRALN): Likewise.
	[POSIX || XPG3] (BUS_ADRERR): Likewise.
	[POSIX || XPG3] (BUS_OBJERR): Likewise.
	[POSIX || XPG3] (CLD_EXITED): Likewise.
	[POSIX || XPG3] (CLD_KILLED): Likewise.
	[POSIX || XPG3] (CLD_DUMPED): Likewise.
	[POSIX || XPG3] (CLD_TRAPPED): Likewise.
	[POSIX || XPG3] (CLD_STOPPED): Likewise.
	[POSIX || XPG3] (CLD_CONTINUED): Likewise.
	[POSIX || XPG3] (POLL_IN): Likewise.
	[POSIX || XPG3] (POLL_OUT): Likewise.
	[POSIX || XPG3] (POLL_MSG): Likewise.
	[POSIX || XPG3] (POLL_ERR): Likewise.
	[POSIX || XPG3] (POLL_PRI): Likewise.
	[POSIX || XPG3] (POLL_HUP): Likewise.
	[POSIX || XPG3 || POSIX2008] (TRAP_BRKPT): Likewise.
	[POSIX || XPG3 || POSIX2008] (TRAP_TRACE): Likewise.
	(SIG*): Do not allow.
	[XPG3] (si_*): Likewise.
	[XPG3] (SI_*): Likewise.
	[XPG3 || XPG4] (sigev_*): Likewise.
	[XPG3 || XPG4] (SIGEV_*): Likewise.
	[XPG3 || XPG4] (sival_*): Likewise.
	[POSIX || XPG3 || XPG4] (uc_*): Likewise.
	[POSIX || XPG3] (BUS_*): Likewise.
	[POSIX || XPG3] (CLD_*): Likewise.
	[POSIX || XPG3] (FPE_*): Likewise.
	[POSIX || XPG3] (ILL_*): Likewise.
	[POSIX || XPG3] (POLL_*): Likewise.
	[POSIX || XPG3] (SEGV_*): Likewise.
	[POSIX || XPG3 || POSIX2008] (SS_*): Likewise.
	[POSIX || XPG3 || POSIX2008] (SV_*): Likewise.
	[POSIX || XPG3 || POSIX2008] (TRAP_*): Likewise.
	[POSIX || XPG3 || POSIX2008] (ss_*): Likewise.
	[POSIX || XPG3 || POSIX2008] (sv_*): Likewise.
	* conform/data/tar.h-data (TMAGLEN): Use macro-int-constant.
	Specify type and value.
	(TVERSLEN): Likewise.
	(REGTYPE): Likewise.
	(AREGTYPE): Likewise.
	(LNKTYPE): Likewise.
	(SYMTYPE): Likewise.
	(CHRTYPE): Likewise.
	(BLKTYPE): Likewise.
	(DIRTYPE): Likewise.
	(FIFOTYPE): Likewise.
	(CONTTYPE): Likewise.
	(TSUID): Likewise.
	(TSGID): Likewise.
	(TSVTX): Likewise.
	(TUREAD): Likewise.
	(TUWRITE): Likewise.
	(TUEXEC): Likewise.
	(TGREAD): Likewise.
	(TGWRITE): Likewise.
	(TGEXEC): Likewise.
	(TOREAD): Likewise.
	(TOWRITE): Likewise.
	(TOEXEC): Likewise.
	[POSIX] (TSVTX): Expect constant.
conformtest: split up running of tests from makefile.

This patch changes the logic by which header conformance tests are run
so that the makefiles run the tests for each (standard, header) pair
separately rather than as a single test (there are 518 such pairs
being tested at present).

Since these tests are slow and previously couldn't be run in parallel,
this obviously speeds up the whole test run significantly when using
parallel testing.  There are other benefits.  These tests can now be
marked as expected to fail at the level of (standard, header) pairs,
meaning that regressions introduced by a header change are much more
likely to be spotted (of course, such a regression could be a bug in
the header or in the expectations, most of which have not been
properly checked against the relevant standards).

The patch introduces lists in conform/Makefile of the headers to test
for each standard, with a new (quick) test for each standard that the
list agrees with the set of headers for which there are in fact
nonempty expectations for that standard.  This means that each of the
518 pairs being tested is actually something meaningful to test rather
than a null test.  I also hope to use these lists of headers in
various standards in future tests for namespace violations where a
function in a standard is implemented to call a non-reserved name for
a function outside that standard.

Although there are a lot of tests now marked as expected to fail, I
expect most of those to be easy to fix (whether with fixes to the
expectations, the headers or both - if fixing a header bug, of course
file it in Bugzilla first); only a limited number are likely to
reflect actual missing features in glibc.

Tested x86_64 (GCC 4.7 branch).  It's quite possible some failures
vary from platform to platform, in which case either additional XFAILs
can be added here, or platform-specific header bugs (if applicable)
the failures show up can be fixed.  I made XFAILs unconditional for
tests that should only fail for GCC 4.6 and earlier; we could make the
GCC version available in the makefiles and condition these, but simply
moving the XFAILing to a finer granularity seems a clear improvement
on the previous state of the whole of conformtest being XFAILed.

	* Makeconfig (test-xfail-name): New variable.
	(evaluate-test): Use $(test-xfail-name) instead of $(@F:.out=) to
	compute variable name for expected failures.
	* conform/Makefile (conformtest-headers-data): New variable.
	(conformtest-standards): Likewise.
	(conformtest-headers-ISO): Likewise.
	(conformtest-headers-ISO99): Likewise.
	(conformtest-headers-ISO11): Likewise.
	(conformtest-headers-POSIX): Likewise.
	(conformtest-headers-XPG3): Likewise.
	(conformtest-headers-XPG4): Likewise.
	(conformtest-headers-UNIX98): Likewise.
	(conformtest-headers-XOPEN2K): Likewise.
	(conformtest-headers-POSIX2008): Likewise.
	(conformtest-headers-XOPEN2K8): Likewise.
	(conformtest-header-list-base): Likewise.
	(conformtest-header-list-tests): Likewise.
	(conformtest-header-base): Likewise.
	(conformtest-header-tests): Likewise.
	(tests-special): Add $(conformtest-header-list-tests).  If
	[$(fast-check) && !$(cross-compiling)], add
	$(conformtest-header-tests) instead of
	$(objpfx)run-conformtest.out.
	(generated): Add $(conformtest-header-list-base).  If
	[$(fast-check) && !$(cross-compiling)], add
	$(conformtest-header-base).  Remove previous setting.
	($(conformtest-header-list-tests)): New target.
	(test-xfail-run-conformtest): Remove variable.
	($(objpfx)run-conformtest.out): Remove target.
	(test-xfail-ISO11/complex.h/conform): New variable.
	(test-xfail-ISO11/stdalign.h/conform): Likewise.
	(test-xfail-ISO11/stdnoreturn.h/conform): Likewise.
	(test-xfail-XPG3/varargs.h/conform): Likewise.
	(test-xfail-XPG4/varargs.h/conform): Likewise.
	(test-xfail-UNIX98/varargs.h/conform): Likewise.
	(test-xfail-XPG4/ndbm.h/conform): Likewise.
	(test-xfail-UNIX98/ndbm.h/conform): Likewise.
	(test-xfail-XOPEN2K/ndbm.h/conform): Likewise.
	(test-xfail-XOPEN2K8/ndbm.h/conform): Likewise.
	(test-xfail-XPG3/fcntl.h/conform): Likewise.
	(test-xfail-XPG3/ftw.h/conform): Likewise.
	(test-xfail-XPG3/grp.h/conform): Likewise.
	(test-xfail-XPG3/langinfo.h/conform): Likewise.
	(test-xfail-XPG3/limits.h/conform): Likewise.
	(test-xfail-XPG3/pwd.h/conform): Likewise.
	(test-xfail-XPG3/search.h/conform): Likewise.
	(test-xfail-XPG3/signal.h/conform): Likewise.
	(test-xfail-XPG3/stdio.h/conform): Likewise.
	(test-xfail-XPG3/stdlib.h/conform): Likewise.
	(test-xfail-XPG3/string.h/conform): Likewise.
	(test-xfail-XPG3/sys/ipc.h/conform): Likewise.
	(test-xfail-XPG3/sys/msg.h/conform): Likewise.
	(test-xfail-XPG3/sys/sem.h/conform): Likewise.
	(test-xfail-XPG3/sys/shm.h/conform): Likewise.
	(test-xfail-XPG3/sys/stat.h/conform): Likewise.
	(test-xfail-XPG3/sys/types.h/conform): Likewise.
	(test-xfail-XPG3/sys/wait.h/conform): Likewise.
	(test-xfail-XPG3/termios.h/conform): Likewise.
	(test-xfail-XPG3/time.h/conform): Likewise.
	(test-xfail-XPG3/unistd.h/conform): Likewise.
	(test-xfail-XPG4/arpa/inet.h/conform): Likewise.
	(test-xfail-XPG4/fcntl.h/conform): Likewise.
	(test-xfail-XPG4/langinfo.h/conform): Likewise.
	(test-xfail-XPG4/netdb.h/conform): Likewise.
	(test-xfail-XPG4/netinet/in.h/conform): Likewise.
	(test-xfail-XPG4/signal.h/conform): Likewise.
	(test-xfail-XPG4/stdio.h/conform): Likewise.
	(test-xfail-XPG4/stdlib.h/conform): Likewise.
	(test-xfail-XPG4/stropts.h/conform): Likewise.
	(test-xfail-XPG4/sys/ipc.h/conform): Likewise.
	(test-xfail-XPG4/sys/msg.h/conform): Likewise.
	(test-xfail-XPG4/sys/sem.h/conform): Likewise.
	(test-xfail-XPG4/sys/shm.h/conform): Likewise.
	(test-xfail-XPG4/sys/socket.h/conform): Likewise.
	(test-xfail-XPG4/sys/stat.h/conform): Likewise.
	(test-xfail-XPG4/sys/time.h/conform): Likewise.
	(test-xfail-XPG4/sys/types.h/conform): Likewise.
	(test-xfail-XPG4/sys/wait.h/conform): Likewise.
	(test-xfail-XPG4/termios.h/conform): Likewise.
	(test-xfail-XPG4/ucontext.h/conform): Likewise.
	(test-xfail-XPG4/unistd.h/conform): Likewise.
	(test-xfail-XPG4/utmpx.h/conform): Likewise.
	(test-xfail-POSIX/sched.h/conform): Likewise.
	(test-xfail-POSIX/signal.h/conform): Likewise.
	(test-xfail-POSIX/sys/wait.h/conform): Likewise.
	(test-xfail-POSIX/tar.h/conform): Likewise.
	(test-xfail-UNIX98/arpa/inet.h/conform): Likewise.
	(test-xfail-UNIX98/fcntl.h/conform): Likewise.
	(test-xfail-UNIX98/langinfo.h/conform): Likewise.
	(test-xfail-UNIX98/netdb.h/conform): Likewise.
	(test-xfail-UNIX98/netinet/in.h/conform): Likewise.
	(test-xfail-UNIX98/sched.h/conform): Likewise.
	(test-xfail-UNIX98/signal.h/conform): Likewise.
	(test-xfail-UNIX98/stdio.h/conform): Likewise.
	(test-xfail-UNIX98/stdlib.h/conform): Likewise.
	(test-xfail-UNIX98/stropts.h/conform): Likewise.
	(test-xfail-UNIX98/sys/ipc.h/conform): Likewise.
	(test-xfail-UNIX98/sys/msg.h/conform): Likewise.
	(test-xfail-UNIX98/sys/sem.h/conform): Likewise.
	(test-xfail-UNIX98/sys/shm.h/conform): Likewise.
	(test-xfail-UNIX98/sys/socket.h/conform): Likewise.
	(test-xfail-UNIX98/sys/time.h/conform): Likewise.
	(test-xfail-UNIX98/sys/wait.h/conform): Likewise.
	(test-xfail-UNIX98/ucontext.h/conform): Likewise.
	(test-xfail-UNIX98/unistd.h/conform): Likewise.
	(test-xfail-UNIX98/utmpx.h/conform): Likewise.
	(test-xfail-XOPEN2K/aio.h/conform): Likewise.
	(test-xfail-XOPEN2K/arpa/inet.h/conform): Likewise.
	(test-xfail-XOPEN2K/fcntl.h/conform): Likewise.
	(test-xfail-XOPEN2K/langinfo.h/conform): Likewise.
	(test-xfail-XOPEN2K/math.h/conform): Likewise.
	(test-xfail-XOPEN2K/mqueue.h/conform): Likewise.
	(test-xfail-XOPEN2K/netdb.h/conform): Likewise.
	(test-xfail-XOPEN2K/netinet/in.h/conform): Likewise.
	(test-xfail-XOPEN2K/semaphore.h/conform): Likewise.
	(test-xfail-XOPEN2K/signal.h/conform): Likewise.
	(test-xfail-XOPEN2K/stdarg.h/conform): Likewise.
	(test-xfail-XOPEN2K/stdio.h/conform): Likewise.
	(test-xfail-XOPEN2K/stropts.h/conform): Likewise.
	(test-xfail-XOPEN2K/sys/ipc.h/conform): Likewise.
	(test-xfail-XOPEN2K/sys/msg.h/conform): Likewise.
	(test-xfail-XOPEN2K/sys/sem.h/conform): Likewise.
	(test-xfail-XOPEN2K/sys/shm.h/conform): Likewise.
	(test-xfail-XOPEN2K/sys/socket.h/conform): Likewise.
	(test-xfail-XOPEN2K/sys/wait.h/conform): Likewise.
	(test-xfail-XOPEN2K/termios.h/conform): Likewise.
	(test-xfail-XOPEN2K/tgmath.h/conform): Likewise.
	(test-xfail-XOPEN2K/ucontext.h/conform): Likewise.
	(test-xfail-XOPEN2K/utmpx.h/conform): Likewise.
	(test-xfail-POSIX2008/arpa/inet.h/conform): Likewise.
	(test-xfail-POSIX2008/fcntl.h/conform): Likewise.
	(test-xfail-POSIX2008/netdb.h/conform): Likewise.
	(test-xfail-POSIX2008/netinet/in.h/conform): Likewise.
	(test-xfail-POSIX2008/signal.h/conform): Likewise.
	(test-xfail-POSIX2008/stropts.h/conform): Likewise.
	(test-xfail-POSIX2008/sys/socket.h/conform): Likewise.
	(test-xfail-POSIX2008/sys/wait.h/conform): Likewise.
	(test-xfail-XOPEN2K8/arpa/inet.h/conform): Likewise.
	(test-xfail-XOPEN2K8/fcntl.h/conform): Likewise.
	(test-xfail-XOPEN2K8/limits.h/conform): Likewise.
	(test-xfail-XOPEN2K8/math.h/conform): Likewise.
	(test-xfail-XOPEN2K8/netdb.h/conform): Likewise.
	(test-xfail-XOPEN2K8/netinet/in.h/conform): Likewise.
	(test-xfail-XOPEN2K8/signal.h/conform): Likewise.
	(test-xfail-XOPEN2K8/stdio.h/conform): Likewise.
	(test-xfail-XOPEN2K8/stropts.h/conform): Likewise.
	(test-xfail-XOPEN2K8/sys/ipc.h/conform): Likewise.
	(test-xfail-XOPEN2K8/sys/msg.h/conform): Likewise.
	(test-xfail-XOPEN2K8/sys/select.h/conform): Likewise.
	(test-xfail-XOPEN2K8/sys/sem.h/conform): Likewise.
	(test-xfail-XOPEN2K8/sys/shm.h/conform): Likewise.
	(test-xfail-XOPEN2K8/sys/socket.h/conform): Likewise.
	(test-xfail-XOPEN2K8/sys/time.h/conform): Likewise.
	(test-xfail-XOPEN2K8/sys/wait.h/conform): Likewise.
	(test-xfail-XOPEN2K8/termios.h/conform): Likewise.
	(test-xfail-XOPEN2K8/tgmath.h/conform): Likewise.
	(test-xfail-XOPEN2K8/utmpx.h/conform): Likewise.
	(conformtest-cc-flags): Likewise.
	($(conformtest-header-tests): New target.
	* conform/check-header-lists.sh: New file.
	* conform/run-conformtest.sh: Remove.
Generate overall summary of test results.

This patch, an updated version of
<https://sourceware.org/ml/libc-alpha/2014-01/msg00197.html>, makes
testsuite runs generate an overall summary of test results.

A new script merge-test-results.sh deals both with collecting results
within a directory to a file with all the results from that directory,
and collecting the results from subdirectories into a single overall
file (there's not much in common between the two modes of operation of
the script, but it seemed silly to have two separate scripts for
this).  Within a directory, missing results produce UNRESOLVED lines;
at top level, missing results for a whole directory produce an ERROR
line (since toplevel can't identify what the specific missing tests
are in this case).

Note that this does not change the rules for when "make" considers
there has been an error, or terminates, so unexpected failures will
still cause make to terminate, or, with -k, mean the commands for
"tests" don't get run because of failure of a dependency.

Tested x86_64, including that the summary does in fact reflect all the
tests with .test-result files.

	* scripts/merge-test-results.sh: New file.
	* Makefile (tests-special-notdir): New variable.
	(tests): Run merge-test-results.sh.
	(xtests): Likewise.
	* Rules (tests-special-notdir): New variable.
	(xtests-special-notdir): Likewise.
	(tests): Run merge-test-results.sh
	(xtests): Likewise.
Make tests consistently use *.out output files.

This patch systematically renames miscellaneous tests so their outputs
use a *.out name (unless the test is just running some glibc program
with its conventional output file name, rather than a special program
at all, as in catgets tests generating *.cat).  In the case of the
iconv test test-iconvconfig, output is redirected where it wasn't
before.

In various places the "generated" variable is updated to reflect the
revised test names; in iconvdata/Makefile a typo (mmtrace-tst-loading)
is also fixed.  resolv/Makefile sets both "generate" (which appears
unused) and "generated".  Bitrot in the settings of these variables
could no doubt be fixed so that "make clean" after build and testing
leaves results the same as after configure (and indeed the
tests-special / xtests-special variables could be used to simplify
things, by removing those files automatically rather than listing them
manually in these variables), and "make distclean" leaves an empty
build directory, but right now it appears various files don't get
deleted.  I think they are liable to continue to bitrot in the absence
of routine testing that these targets actually work, given that
building in the source directory isn't supported and that was the main
use of such makefile targets.

Tested x86_64.

	* elf/Makefile (tests-special): Rename tests to end with .out.
	($(objpfx)noload-mem): Likewise.
	($(objpfx)tst-leaks1-mem): Likewise.
	($(objpfx)tst-leaks1-static-mem.out): Likewise.
	* iconv/Makefile (xtests-special): Change test-iconvconfig to
	$(objpfx)test-iconvconfig.out.
	(test-iconvconfig): Change to $(objpfx)test-iconvconfig.out.  Use
	set -e inside subshell and redirect output to file.
	* iconvdata/Makefile (generated): Rename tests to end with .out.
	Correct type.
	(tests-special): Rename tests to end with .out.
	($(objpfx)mtrace-tst-loading): Likewise.
	* intl/Makefile (generated): Likewise.
	(tests-special): Likewise.
	($(objpfx)mtrace-tst-gettext): Likewise.
	* misc/Makefile (generated): Likewise.
	(tests-special): Likewise.
	($(objpfx)tst-error1-mem): Likewise.
	* nptl/Makefile (tests-special): Likewise.
	($(objpfx)tst-stack3-mem): Likewise.
	(generated): Likewise.
	* posix/Makefile (generated): Likewise.
	(tests-special): Likewise.
	(xtests-special): Likewise.
	($(objpfx)tst-fnmatch-mem): Likewise.
	($(objpfx)bug-regex2-mem): Likewise.
	($(objpfx)bug-regex14-mem): Likewise.
	($(objpfx)bug-regex21-mem): Likewise.
	($(objpfx)bug-regex31-mem): Likewise.
	($(objpfx)tst-vfork3-mem): Likewise.
	($(objpfx)tst-rxspencer-no-utf8-mem): Likewise.
	($(objpfx)tst-pcre-mem): Likewise.
	($(objpfx)tst-boost-mem): Likewise.
	($(objpfx)bug-ga2-mem): Likewise.
	($(objpfx)bug-glob2-mem): Likewise.
	* resolv/Makefile (generate): Likewise.
	(tests-special): Likewise.
	(xtests-special): Likewise.
	(generated): Likewise.
	($(objpfx)mtrace-tst-leaks): Likewise.
	($(objpfx)mtrace-tst-leaks2): Likewise.

localedata:
	* Makefile (generated): Rename tests to end with .out.
	(tests-special): Likewise.
	($(objpfx)mtrace-tst-leaks): Likewise.
Count miscellaneous files built on host for testing as tests.

In <https://sourceware.org/ml/libc-alpha/2014-01/msg00198.html> I
raised the question of counting miscellaneous dependencies of tests,
built on the host rather than the build system, as tests, so that when
test failures don't stop "make check" neither do those other builds on
the host, so that a flaky host doesn't stop "make check" from
producing a complete summary of test results.  Brooks supported that
idea in <https://sourceware.org/ml/libc-alpha/2014-02/msg00301.html>.

This patch implements that change for all the examples I could find:
one message catalog in catgets/, locales in localedata/ and timezone
files in timezone/.

Tested x86_64.

	* catgets/Makefile (tests-special): Add $(objpfx)sample.SJIS.cat.
	($(objpfx)sample.SJIS.cat): Use $(evaluate-test).
	* timezone/Makefile (testdata): Move definition above include of
	Rules.
	(test-zones): New variable.
	(tests-special): Add zone files.
	(build-testdata): Use $(evaluate-test).

localedata/ChangeLog:
	* Makefile (LOCALES): Move definition above include of Rules.
	(LOCALE_SRCS): Likewise.
	(CHARMAPS): Likewise.
	(CTYPE_FILES): Likewise.
	(tests-special): Add locale files.
	($(addprefix $(objpfx),$(CTYPE_FILES))): Use $(evaluate-test).
[PATCH] [AArch64] Optional trapping exceptions support.

Trapping exceptions in AArch64 are optional.  The relevant exception
control bits in FPCR are are defined as RES0 hence the absence of
support can be detected by reading back the FPCR and comparing with
the desired value.
Include all of <time.h> from <sched.h> for older standards (bug 16670).

This patch fixes one of the header namespace issues shown up by
conformtest, <sched.h> failing to expose all symbols from <time.h> as
required by older standards.  The patch keeps the existing behavior if
__USE_XOPEN2K is defined (the default; POSIX.1-2001 was the version
that made it optional to expose these symbols), but ensures that all
the symbols from <time.h> are exposed if an older standard is
selected.  Tested x86_64.

	[BZ #16670]
	* posix/sched.h [!__USE_XOPEN2K] (__need_time_t): Don't define
	before #include of <time.h>.
	[!__USE_XOPEN2K] (__need_timespec): Likewise.
	* conform/Makefile (test-xfail-POSIX/sched.h/conform): Remove.
	(test-xfail-UNIX98/sched.h/conform): Likewise.
Fix POSIX namespace for <bits/siginfo.h> (bug 16674).

<bits/siginfo.h> causes symbols ILL_*, FPE_*, SEGV_* BUS_*, CLD_*,
POLL_* and TRAP_* to be exposed in <signal.h> (and <sys/wait.h>), even
though those symbols are not in non-XSI POSIX before POSIX.1-2008 and
even in POSIX.1-2008 the TRAP_* symbols are XSI-only.  This patch
conditions the symbols appropriately in the various <bits/siginfo.h>
implementations (various <signal.h> and <sys/wait.h> conformtest
issues remain for standards other than POSIX (1995/6)).  Tested
x86_64.

	[BZ #16674]
	* bits/siginfo.h (ILL_ILLOPC): Condition on [__USE_XOPEN_EXTENDED
	|| __USE_XOPEN2K8].
	(ILL_ILLOPN): Likewise.
	(ILL_ILLADR): Likewise.
	(ILL_ILLTRP): Likewise.
	(ILL_PRVOPC): Likewise.
	(ILL_PRVREG): Likewise.
	(ILL_COPROC): Likewise.
	(ILL_BADSTK): Likewise.
	(FPE_INTDIV): Likewise.
	(FPE_INTOVF): Likewise.
	(FPE_FLTDIV): Likewise.
	(FPE_FLTOVF): Likewise.
	(FPE_FLTUND): Likewise.
	(FPE_FLTRES): Likewise.
	(FPE_FLTINV): Likewise.
	(FPE_FLTSUB): Likewise.
	(SEGV_MAPERR): Likewise.
	(SEGV_ACCERR): Likewise.
	(BUS_ADRALN): Likewise.
	(BUS_ADRERR): Likewise.
	(BUS_OBJERR): Likewise.
	(TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED].
	(TRAP_TRACE): Likewise.
	(CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED ||
	__USE_XOPEN2K8].
	(CLD_KILLED): Likewise.
	(CLD_DUMPED): Likewise.
	(CLD_TRAPPED): Likewise.
	(CLD_STOPPED): Likewise.
	(CLD_CONTINUED): Likewise.
	(POLL_IN): Likewise.
	(POLL_OUT): Likewise.
	(POLL_MSG): Likewise.
	(POLL_ERR): Likewise.
	(POLL_PRI): Likewise.
	(POLL_HUP): Likewise.
	* sysdeps/unix/sysv/linux/alpha/bits/siginfo.h (ILL_ILLOPC):
	Likewise.
	(ILL_ILLOPN): Likewise.
	(ILL_ILLADR): Likewise.
	(ILL_ILLTRP): Likewise.
	(ILL_PRVOPC): Likewise.
	(ILL_PRVREG): Likewise.
	(ILL_COPROC): Likewise.
	(ILL_BADSTK): Likewise.
	(FPE_INTDIV): Likewise.
	(FPE_INTOVF): Likewise.
	(FPE_FLTDIV): Likewise.
	(FPE_FLTOVF): Likewise.
	(FPE_FLTUND): Likewise.
	(FPE_FLTRES): Likewise.
	(FPE_FLTINV): Likewise.
	(FPE_FLTSUB): Likewise.
	(SEGV_MAPERR): Likewise.
	(SEGV_ACCERR): Likewise.
	(BUS_ADRALN): Likewise.
	(BUS_ADRERR): Likewise.
	(BUS_OBJERR): Likewise.
	(BUS_MCEERR_AR): Likewise.
	(BUS_MCEERR_AO): Likewise.
	(TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED].
	(TRAP_TRACE): Likewise.
	(CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED ||
	__USE_XOPEN2K8].
	(CLD_KILLED): Likewise.
	(CLD_DUMPED): Likewise.
	(CLD_TRAPPED): Likewise.
	(CLD_STOPPED): Likewise.
	(CLD_CONTINUED): Likewise.
	(POLL_IN): Likewise.
	(POLL_OUT): Likewise.
	(POLL_MSG): Likewise.
	(POLL_ERR): Likewise.
	(POLL_PRI): Likewise.
	(POLL_HUP): Likewise.
	* sysdeps/unix/sysv/linux/bits/siginfo.h (ILL_ILLOPC): Likewise.
	(ILL_ILLOPN): Likewise.
	(ILL_ILLADR): Likewise.
	(ILL_ILLTRP): Likewise.
	(ILL_PRVOPC): Likewise.
	(ILL_PRVREG): Likewise.
	(ILL_COPROC): Likewise.
	(ILL_BADSTK): Likewise.
	(FPE_INTDIV): Likewise.
	(FPE_INTOVF): Likewise.
	(FPE_FLTDIV): Likewise.
	(FPE_FLTOVF): Likewise.
	(FPE_FLTUND): Likewise.
	(FPE_FLTRES): Likewise.
	(FPE_FLTINV): Likewise.
	(FPE_FLTSUB): Likewise.
	(SEGV_MAPERR): Likewise.
	(SEGV_ACCERR): Likewise.
	(BUS_ADRALN): Likewise.
	(BUS_ADRERR): Likewise.
	(BUS_OBJERR): Likewise.
	(BUS_MCEERR_AR): Likewise.
	(BUS_MCEERR_AO): Likewise.
	(TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED].
	(TRAP_TRACE): Likewise.
	(CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED ||
	__USE_XOPEN2K8].
	(CLD_KILLED): Likewise.
	(CLD_DUMPED): Likewise.
	(CLD_TRAPPED): Likewise.
	(CLD_STOPPED): Likewise.
	(CLD_CONTINUED): Likewise.
	(POLL_IN): Likewise.
	(POLL_OUT): Likewise.
	(POLL_MSG): Likewise.
	(POLL_ERR): Likewise.
	(POLL_PRI): Likewise.
	(POLL_HUP): Likewise.
	* sysdeps/unix/sysv/linux/ia64/bits/siginfo.h (ILL_ILLOPC):
	Likewise.
	(ILL_ILLOPN): Likewise.
	(ILL_ILLADR): Likewise.
	(ILL_ILLTRP): Likewise.
	(ILL_PRVOPC): Likewise.
	(ILL_PRVREG): Likewise.
	(ILL_COPROC): Likewise.
	(ILL_BADSTK): Likewise.
	(ILL_BADIADDR): Likewise.
	(ILL_BREAK): Likewise.
	(FPE_INTDIV): Likewise.
	(FPE_INTOVF): Likewise.
	(FPE_FLTDIV): Likewise.
	(FPE_FLTOVF): Likewise.
	(FPE_FLTUND): Likewise.
	(FPE_FLTRES): Likewise.
	(FPE_FLTINV): Likewise.
	(FPE_FLTSUB): Likewise.
	(FPE_DECOVF): Likewise.
	(FPE_DECDIV): Likewise.
	(FPE_DECERR): Likewise.
	(FPE_INVASC): Likewise.
	(FPE_INVDEC): Likewise.
	(SEGV_MAPERR): Likewise.
	(SEGV_ACCERR): Likewise.
	(SEGV_PSTKOVF): Likewise.
	(BUS_ADRALN): Likewise.
	(BUS_ADRERR): Likewise.
	(BUS_OBJERR): Likewise.
	(BUS_MCEERR_AR): Likewise.
	(BUS_MCEERR_AO): Likewise.
	(TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED].
	(TRAP_TRACE): Likewise.
	(TRAP_BRANCH): Likewise.
	(TRAP_HWBKPT): Likewise.
	(CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED ||
	__USE_XOPEN2K8].
	(CLD_KILLED): Likewise.
	(CLD_DUMPED): Likewise.
	(CLD_TRAPPED): Likewise.
	(CLD_STOPPED): Likewise.
	(CLD_CONTINUED): Likewise.
	(POLL_IN): Likewise.
	(POLL_OUT): Likewise.
	(POLL_MSG): Likewise.
	(POLL_ERR): Likewise.
	(POLL_PRI): Likewise.
	(POLL_HUP): Likewise.
	* sysdeps/unix/sysv/linux/mips/bits/siginfo.h (ILL_ILLOPC): Likewise.
	(ILL_ILLOPN): Likewise.
	(ILL_ILLADR): Likewise.
	(ILL_ILLTRP): Likewise.
	(ILL_PRVOPC): Likewise.
	(ILL_PRVREG): Likewise.
	(ILL_COPROC): Likewise.
	(ILL_BADSTK): Likewise.
	(FPE_INTDIV): Likewise.
	(FPE_INTOVF): Likewise.
	(FPE_FLTDIV): Likewise.
	(FPE_FLTOVF): Likewise.
	(FPE_FLTUND): Likewise.
	(FPE_FLTRES): Likewise.
	(FPE_FLTINV): Likewise.
	(FPE_FLTSUB): Likewise.
	(SEGV_MAPERR): Likewise.
	(SEGV_ACCERR): Likewise.
	(BUS_ADRALN): Likewise.
	(BUS_ADRERR): Likewise.
	(BUS_OBJERR): Likewise.
	(BUS_MCEERR_AR): Likewise.
	(BUS_MCEERR_AO): Likewise.
	(TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED].
	(TRAP_TRACE): Likewise.
	(CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED ||
	__USE_XOPEN2K8].
	(CLD_KILLED): Likewise.
	(CLD_DUMPED): Likewise.
	(CLD_TRAPPED): Likewise.
	(CLD_STOPPED): Likewise.
	(CLD_CONTINUED): Likewise.
	(POLL_IN): Likewise.
	(POLL_OUT): Likewise.
	(POLL_MSG): Likewise.
	(POLL_ERR): Likewise.
	(POLL_PRI): Likewise.
	(POLL_HUP): Likewise.
	* sysdeps/unix/sysv/linux/s390/bits/siginfo.h (ILL_ILLOPC): Likewise.
	(ILL_ILLOPN): Likewise.
	(ILL_ILLADR): Likewise.
	(ILL_ILLTRP): Likewise.
	(ILL_PRVOPC): Likewise.
	(ILL_PRVREG): Likewise.
	(ILL_COPROC): Likewise.
	(ILL_BADSTK): Likewise.
	(FPE_INTDIV): Likewise.
	(FPE_INTOVF): Likewise.
	(FPE_FLTDIV): Likewise.
	(FPE_FLTOVF): Likewise.
	(FPE_FLTUND): Likewise.
	(FPE_FLTRES): Likewise.
	(FPE_FLTINV): Likewise.
	(FPE_FLTSUB): Likewise.
	(SEGV_MAPERR): Likewise.
	(SEGV_ACCERR): Likewise.
	(BUS_ADRALN): Likewise.
	(BUS_ADRERR): Likewise.
	(BUS_OBJERR): Likewise.
	(BUS_MCEERR_AR): Likewise.
	(BUS_MCEERR_AO): Likewise.
	(TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED].
	(TRAP_TRACE): Likewise.
	(CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED ||
	__USE_XOPEN2K8].
	(CLD_KILLED): Likewise.
	(CLD_DUMPED): Likewise.
	(CLD_TRAPPED): Likewise.
	(CLD_STOPPED): Likewise.
	(CLD_CONTINUED): Likewise.
	(POLL_IN): Likewise.
	(POLL_OUT): Likewise.
	(POLL_MSG): Likewise.
	(POLL_ERR): Likewise.
	(POLL_PRI): Likewise.
	(POLL_HUP): Likewise.
	* sysdeps/unix/sysv/linux/sparc/bits/siginfo.h (ILL_ILLOPC): Likewise.
	(ILL_ILLOPN): Likewise.
	(ILL_ILLADR): Likewise.
	(ILL_ILLTRP): Likewise.
	(ILL_PRVOPC): Likewise.
	(ILL_PRVREG): Likewise.
	(ILL_COPROC): Likewise.
	(ILL_BADSTK): Likewise.
	(FPE_INTDIV): Likewise.
	(FPE_INTOVF): Likewise.
	(FPE_FLTDIV): Likewise.
	(FPE_FLTOVF): Likewise.
	(FPE_FLTUND): Likewise.
	(FPE_FLTRES): Likewise.
	(FPE_FLTINV): Likewise.
	(FPE_FLTSUB): Likewise.
	(SEGV_MAPERR): Likewise.
	(SEGV_ACCERR): Likewise.
	(BUS_ADRALN): Likewise.
	(BUS_ADRERR): Likewise.
	(BUS_OBJERR): Likewise.
	(BUS_MCEERR_AR): Likewise.
	(BUS_MCEERR_AO): Likewise.
	(TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED].
	(TRAP_TRACE): Likewise.
	(CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED ||
	__USE_XOPEN2K8].
	(CLD_KILLED): Likewise.
	(CLD_DUMPED): Likewise.
	(CLD_TRAPPED): Likewise.
	(CLD_STOPPED): Likewise.
	(CLD_CONTINUED): Likewise.
	(POLL_IN): Likewise.
	(POLL_OUT): Likewise.
	(POLL_MSG): Likewise.
	(POLL_ERR): Likewise.
	(POLL_PRI): Likewise.
	(POLL_HUP): Likewise.
	* sysdeps/unix/sysv/linux/tile/bits/siginfo.h (ILL_ILLOPC): Likewise.
	(ILL_ILLOPN): Likewise.
	(ILL_ILLADR): Likewise.
	(ILL_ILLTRP): Likewise.
	(ILL_PRVOPC): Likewise.
	(ILL_PRVREG): Likewise.
	(ILL_COPROC): Likewise.
	(ILL_BADSTK): Likewise.
	(ILL_DBLFLT): Likewise.
	(ILL_HARDWALL): Likewise.
	(FPE_INTDIV): Likewise.
	(FPE_INTOVF): Likewise.
	(FPE_FLTDIV): Likewise.
	(FPE_FLTOVF): Likewise.
	(FPE_FLTUND): Likewise.
	(FPE_FLTRES): Likewise.
	(FPE_FLTINV): Likewise.
	(FPE_FLTSUB): Likewise.
	(SEGV_MAPERR): Likewise.
	(SEGV_ACCERR): Likewise.
	(BUS_ADRALN): Likewise.
	(BUS_ADRERR): Likewise.
	(BUS_OBJERR): Likewise.
	(BUS_MCEERR_AR): Likewise.
	(BUS_MCEERR_AO): Likewise.
	(TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED].
	(TRAP_TRACE): Likewise.
	(CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED ||
	__USE_XOPEN2K8].
	(CLD_KILLED): Likewise.
	(CLD_DUMPED): Likewise.
	(CLD_TRAPPED): Likewise.
	(CLD_STOPPED): Likewise.
	(CLD_CONTINUED): Likewise.
	(POLL_IN): Likewise.
	(POLL_OUT): Likewise.
	(POLL_MSG): Likewise.
	(POLL_ERR): Likewise.
	(POLL_PRI): Likewise.
	(POLL_HUP): Likewise.
	* sysdeps/unix/sysv/linux/x86/bits/siginfo.h (ILL_ILLOPC): Likewise.
	(ILL_ILLOPN): Likewise.
	(ILL_ILLADR): Likewise.
	(ILL_ILLTRP): Likewise.
	(ILL_PRVOPC): Likewise.
	(ILL_PRVREG): Likewise.
	(ILL_COPROC): Likewise.
	(ILL_BADSTK): Likewise.
	(FPE_INTDIV): Likewise.
	(FPE_INTOVF): Likewise.
	(FPE_FLTDIV): Likewise.
	(FPE_FLTOVF): Likewise.
	(FPE_FLTUND): Likewise.
	(FPE_FLTRES): Likewise.
	(FPE_FLTINV): Likewise.
	(FPE_FLTSUB): Likewise.
	(SEGV_MAPERR): Likewise.
	(SEGV_ACCERR): Likewise.
	(BUS_ADRALN): Likewise.
	(BUS_ADRERR): Likewise.
	(BUS_OBJERR): Likewise.
	(BUS_MCEERR_AR): Likewise.
	(BUS_MCEERR_AO): Likewise.
	(TRAP_BRKPT): Condition on [__USE_XOPEN_EXTENDED].
	(TRAP_TRACE): Likewise.
	(CLD_EXITED): Condition on [__USE_XOPEN_EXTENDED ||
	__USE_XOPEN2K8].
	(CLD_KILLED): Likewise.
	(CLD_DUMPED): Likewise.
	(CLD_TRAPPED): Likewise.
	(CLD_STOPPED): Likewise.
	(CLD_CONTINUED): Likewise.
	(POLL_IN): Likewise.
	(POLL_OUT): Likewise.
	(POLL_MSG): Likewise.
	(POLL_ERR): Likewise.
	(POLL_PRI): Likewise.
	(POLL_HUP): Likewise.
	* conform/Makefile (test-xfail-POSIX/signal.h/conform): Remove.
	(test-xfail-POSIX/sys/wait.h/conform): Likewise.
Add libm-test.inc macro for all-rounding-modes testing.

This patch adds support in libm-test.inc for automatically running
tests of a function in all rounding modes, in the form of a macro
ALL_RM_TEST to loop over all rounding modes when running tests of a
function, and uses it for functions whose results should always be
independent of the rounding mode.

Conversion of tests of nextafter to ALL_RM_TEST was deferred because
trying that conversion showed up bug 16677.  (Finding such a bug of
course illustrates the point of testing more systematically in all
rounding modes rather than only reactively when bugs get reported in a
particular function in a non-default mode.)  Conversion of tests where
results can depend on the rounding mode will follow once I add
gen-libm-test.pl support for using different initializers for the
expected results for different rounding modes (again, some conversions
may need deferring until bugs are fixed, depending on how
straightforward they are to XFAIL in a particular context).

Some existing tests get run five times rather than four, with
round-to-nearest tests both run in that as default rounding mode and
also with it explicitly set with fesetround (FE_TONEAREST).  This
duplication doesn't seem particularly useful, so ALL_RM_TEST only runs
tests four times.

Tested x86_64 and x86.

	* math/libm-test.inc (ALL_RM_TEST): New macro.
	(ceil_test): Use ALL_RM_TEST.
	(cimag_test): Likewise.
	(conj_test): Likewise.
	(copysign_test): Likewise.
	(cproj_test): Likewise.
	(creal_test): Likewise.
	(fabs_test): Likewise.
	(floor_test): Likewise.
	(fmax_test): Likewise.
	(fmin_test): Likewise.
	(fmod_test): Likewise.
	(fpclassify_test): Likewise.
	(frexp_test): Likewise.
	(ilogb_test): Likewise.
	(isfinite_test): Likewise.
	(finite_test): Likewise.
	(isgreater_test): Likewise.
	(isgreaterequal_test): Likewise.
	(isinf_test): Likewise.
	(isless_test): Likewise.
	(islessequal_test): Likewise.
	(islessgreater_test): Likewise.
	(isnan_test): Likewise.
	(isnormal_test): Likewise.
	(issignaling_test): Likewise.
	(isunordered_test): Likewise.
	(logb_test): Likewise.
	(logb_downward_test_data): Remove.
	(logb_test_downward): Likewise.
	(lround_test): Use ALL_RM_TEST.
	(llround_test): Likewise.
	(modf_test): Likewise.
	(nexttoward_test): Likewise.
	(remainder_test): Likewise.
	(drem_test): Likewise.
	(remainder_tonearest_test_data): Likewise.
	(remainder_test_tonearest): Likewise.
	(drem_test_tonearest): Likewise.
	(remainder_towardzero_test_data): Likewise.
	(remainder_test_towardzero): Likewise.
	(drem_test_towardzero): Likewise.
	(remainder_downward_test_data): Likewise.
	(remainder_test_downward): Likewise.
	(drem_test_downward): Likewise.
	(remainder_upward_test_data): Likewise.
	(remainder_test_upward): Likewise.
	(drem_test_upward): Likewise.
	(remquo_test): Use ALL_RM_TEST.  Remove comment about x.
	(round_test): Use ALL_RM_TEST.
	(signbit_test): Likewise.
	(trunc_test): Likewise.
	(significand_test): Likewise.
	(main): Don't call removed functions.
PowerPC: Fix modf/modff optimization return sign

This patch fix the optimized powerpc-fpu modf/modff implementation
when using in non-default rounding mode where the zero sign is not
as expected. It fixes the libm testsuite tests

  modf_downward (0)  == 0.00000000000000000000e+00
  modf_downward (20) == 0.00000000000000000000e+00
  modf_downward (21) == 0.00000000000000000000e+00

Where the sign returned was negative.