Commit Graph

346 Commits

Author SHA1 Message Date
Joseph Myers
8540f6d2a7 Don't require test wrappers to preserve environment variables, use more consistent environment.
One wart in the original support for test wrappers for cross testing,
as noted in
<https://sourceware.org/ml/libc-alpha/2012-10/msg00722.html>, is the
requirement for test wrappers to pass a poorly-defined set of
environment variables from the build system to the system running the
glibc under test.  Although some variables are passed explicitly via
$(test-wrapper-env), including LD_* variables that simply can't be
passed implicitly because of the side effects they'd have on the build
system's dynamic linker, others are passed implicitly, including
variables such as GCONV_PATH and LOCPATH that could potentially affect
the build system's libc (so effectively relying on any such effects
not breaking the wrappers).  In addition, the code in
cross-test-ssh.sh for preserving environment variables is fragile (it
depends on how bash formats a list of exported variables, and could
well break for multi-line variable definitions where the contents
contain things looking like other variable definitions).

This patch moves to explicitly passing environment variables via
$(test-wrapper-env).  Makefile variables that previously used
$(test-wrapper) are split up into -before-env and -after-env parts
that can be passed separately to the various .sh files used in
testing, so those files can then insert environment settings between
the two parts.

The common default environment settings in make-test-out are made into
a separate makefile variable that can also be passed to scripts,
rather than many scripts duplicating those settings (for testing an
installed glibc, it is desirable to have the GCONV_PATH setting on
just one place, so just that one place needs to support it pointing to
an installed sysroot instead of the build tree).  The default settings
are included in the variables such as $(test-program-prefix), so that
if tests do not need any non-default settings they can continue to use
single variables rather than the split-up variables.

Although this patch cleans up LC_ALL=C settings (that being part of
the common defaults), various LANG=C and LANGUAGE=C settings remain.
Those are generally unnecessary and I propose a subsequent cleanup to
remove them.  LC_ALL takes precedence over LANG, and while LANGUAGE
takes precedence over LC_ALL, it only does so for settings other than
LC_ALL=C.  So LC_ALL=C on its own is sufficient to ensure the C
locale, and anything that gets LC_ALL=C does not need the other
settings.

While preparing this patch I noticed some tests with .sh files that
appeared to do nothing beyond what the generic makefile support for
tests can do (localedata/tst-wctype.sh - the makefiles support -ENV
variables and .input files - and localedata/tst-mbswcs.sh - just runs
five tests that could be run individually from the makefile).  So I
propose another subsequent cleanup to move those to using the generic
support instead of special .sh files.

Tested x86_64 (native) and powerpc32 (cross).

	* Makeconfig (run-program-env): New variable.
	(run-program-prefix-before-env): Likewise.
	(run-program-prefix-after-env): Likewise.
	(run-program-prefix): Define in terms of new variables.
	(built-program-cmd-before-env): New variable.
	(built-program-cmd-after-env): Likewise.
	(built-program-cmd): Define in terms of new variables.
	(test-program-prefix-before-env): New variable.
	(test-program-prefix-after-env): Likewise.
	(test-program-prefix): Define in terms of new variables.
	(test-program-cmd-before-env): New variable.
	(test-program-cmd-after-env): Likewise.
	(test-program-cmd): Define in terms of new variables.
	* Rules (make-test-out): Use $(run-program-env).
	* scripts/cross-test-ssh.sh (env_blacklist): Remove variable.
	(help): Do not mention environment variables.  Mention
	--timeoutfactor option.
	(timeoutfactor): New variable.
	(blacklist_exports): Remove function.
	(exports): Remove variable.
	(command): Do not include ${exports}.
	* manual/install.texi (Configuring and compiling): Do not mention
	test wrappers preserving environment variables.  Mention that last
	assignment to a variable must take precedence.
	* INSTALL: Regenerated.
	* benchtests/Makefile (run-bench): Use $(run-program-env).
	* catgets/Makefile ($(objpfx)test1.cat): Use
	$(built-program-cmd-before-env), $(run-program-env) and
	$(built-program-cmd-after-env).
	($(objpfx)test2.cat): Do not specify environment variables
	explicitly.
	($(objpfx)de/libc.cat): Use $(built-program-cmd-before-env),
	$(run-program-env) and $(built-program-cmd-after-env).
	($(objpfx)test-gencat.out): Use $(test-program-cmd-before-env),
	$(run-program-env) and $(test-program-cmd-after-env).
	($(objpfx)sample.SJIS.cat): Do not specify environment variables
	explicitly.
	* catgets/test-gencat.sh: Use test_program_cmd_before_env,
	run_program_env and test_program_cmd_after_env arguments.
	* elf/Makefile ($(objpfx)tst-pathopt.out): Use $(run-program-env).
	* elf/tst-pathopt.sh: Use run_program_env argument.
	* iconvdata/Makefile ($(objpfx)iconv-test.out): Use
	$(test-wrapper-env) and $(run-program-env).
	* iconvdata/run-iconv-test.sh: Use test_wrapper_env and
	run_program_env arguments.
	* iconvdata/tst-table.sh: Do not set GCONV_PATH explicitly.
	* intl/Makefile ($(objpfx)tst-gettext.out): Use
	$(test-program-prefix-before-env), $(run-program-env) and
	$(test-program-prefix-after-env).
	($(objpfx)tst-gettext2.out): Likewise.
	* intl/tst-gettext.sh: Use test_program_prefix_before_env,
	run_program_env and test_program_prefix_after_env arguments.
	* intl/tst-gettext2.sh: Likewise.
	* intl/tst-gettext4.sh: Do not set environment variables
	explicitly.
	* intl/tst-gettext6.sh: Likewise.
	* intl/tst-translit.sh: Likewise.
	* malloc/Makefile ($(objpfx)tst-mtrace.out): Use
	$(test-program-prefix-before-env), $(run-program-env) and
	$(test-program-prefix-after-env).
	* malloc/tst-mtrace.sh: Use test_program_prefix_before_env,
	run_program_env and test_program_prefix_after_env arguments.
	* math/Makefile (run-regen-ulps): Use $(run-program-env).
	* nptl/Makefile ($(objpfx)tst-tls6.out): Use $(run-program-env).
	* nptl/tst-tls6.sh: Use run_program_env argument.  Set LANG=C
	explicitly with each use of ${test_wrapper_env}.
	* posix/Makefile ($(objpfx)wordexp-tst.out): Use
	$(test-program-prefix-before-env), $(run-program-env) and
	$(test-program-prefix-after-env).
	* posix/tst-getconf.sh: Do not set environment variables
	explicitly.
	* posix/wordexp-tst.sh: Use test_program_prefix_before_env,
	run_program_env and test_program_prefix_after_env arguments.
	* stdio-common/tst-printf.sh: Do not set environment variables
	explicitly.
	* stdlib/Makefile ($(objpfx)tst-fmtmsg.out): Use
	$(test-program-prefix-before-env), $(run-program-env) and
	$(test-program-prefix-after-env).
	* stdlib/tst-fmtmsg.sh: Use test_program_prefix_before_env,
	run_program_env and test_program_prefix_after_env arguments.
	Split $test calls into $test_pre and $test.
	* timezone/Makefile (build-testdata): Use
	$(built-program-cmd-before-env), $(run-program-env) and
	$(built-program-cmd-after-env).

localedata/ChangeLog:
	* Makefile ($(addprefix $(objpfx),$(CTYPE_FILES))): Use
	$(built-program-cmd-before-env), $(run-program-env) and
	$(built-program-cmd-after-env).
	($(objpfx)sort-test.out): Use $(test-program-prefix-before-env),
	$(run-program-env) and $(test-program-prefix-after-env).
	($(objpfx)tst-fmon.out): Use $(run-program-prefix-before-env),
	$(run-program-env) and $(run-program-prefix-after-env).
	($(objpfx)tst-locale.out): Use $(built-program-cmd-before-env),
	$(run-program-env) and $(built-program-cmd-after-env).
	($(objpfx)tst-trans.out): Use $(run-program-prefix-before-env),
	$(run-program-env), $(run-program-prefix-after-env),
	$(test-program-prefix-before-env) and
	$(test-program-prefix-after-env).
	($(objpfx)tst-ctype.out): Use $(test-program-cmd-before-env),
	$(run-program-env) and $(test-program-cmd-after-env).
	($(objpfx)tst-wctype.out): Likewise.
	($(objpfx)tst-langinfo.out): Likewise.
	($(objpfx)tst-langinfo-static.out): Likewise.
	* gen-locale.sh: Use localedef_before_env, run_program_env and
	localedef_after_env arguments.
	* sort-test.sh: Use test_program_prefix_before_env,
	run_program_env and test_program_prefix_after_env arguments.
	* tst-ctype.sh: Use tst_ctype_before_env, run_program_env and
	tst_ctype_after_env arguments.
	* tst-fmon.sh: Use run_program_prefix_before_env, run_program_env
	and run_program_prefix_after_env arguments.
	* tst-langinfo.sh: Use tst_langinfo_before_env, run_program_env
	and tst_langinfo_after_env arguments.
	* tst-locale.sh: Use localedef_before_env, run_program_env and
	localedef_after_env arguments.
	* tst-mbswcs.sh: Do not set environment variables explicitly.
	* tst-numeric.sh: Likewise.
	* tst-rpmatch.sh: Likewise.
	* tst-trans.sh: Use run_program_prefix_before_env,
	run_program_env, run_program_prefix_after_env,
	test_program_prefix_before_env and test_program_prefix_after_env
	arguments.
	* tst-wctype.sh: Use tst_wctype_before_env, run_program_env and
	tst_wctype_after_env arguments.
2014-06-06 22:19:27 +00:00
Joseph Myers
4134b50d67 Consistently use $(elf-objpfx).
As previously noted
<https://sourceware.org/ml/libc-alpha/2013-05/msg00696.html>,
$(elf-objpfx) and $(elfobjdir) are redundant and should be
consolidated.  This patch consolidates on $(elf-objpfx) (for
consistency with $(csu-objpfx)), also changing direct uses of
$(common-objpfx)elf/ to use $(elf-objpfx).

Tested x86_64, including that installed shared libraries are unchanged
by the patch.

	* Makeconfig [$(build-hardcoded-path-in-tests) = yes]
	(rtld-tests-LDFLAGS): Use $(elf-objpfx) instead of
	$(common-objpfx)elf/.
	(link-libc-before-gnulib): Likewise.
	(elfobjdir): Remove variable.
	* Makefile (install): Use $(elf-objpfx) instead of
	$(common-objpfx)elf/.
	* Makerules (link-libc-args): Use $(elf-objpfx) instead of
	$(elfobjdir)/.
	(link-libc-deps): Likewise.
	($(common-objpfx)libc.so): Likewise.
	($(common-objpfx)linkobj/libc.so): Likewise.
	[$(cross-compiling) = no] (symbolic-link-prog): Use $(elf-objpfx)
	instead of $(common-objpfx)elf/.
	(symbolic-link-list): Likewise.
	* iconvdata/Makefile ($(inst_gconvdir)/gconv-modules)
	[$(cross-compiling) = no]: Likewise.
	* sysdeps/arm/Makefile (gnulib-arch): Use $(elf-objpfx) instead of
	$(elfobjdir)/.
	(static-gnulib-arch): Likewise.
	* sysdeps/s390/s390-64/Makefile ($(inst_gconvdir)/gconv-modules)
	[$(cross-compiling) = no]: Use $(elf-objpfx) instead of
	$(common-objpfx)elf/.

localedata/ChangeLog:
	* Makefile (LOCALEDEF): Use $(elf-objpfx) instead of
	$(common-objpfx)elf/.
2014-05-21 16:52:08 +00:00
Roland McGrath
95afbbe5fc Some configure-related decrufting. 2014-05-08 11:27:14 -07:00
Adhemerval Zanella
7ffa942302 PowerPC: define _CALL_ELF if compiler does not
This patch makes the configure adds -D_CALL_ELF=1 when compiler does
not define _CALL_ELF (versions before powerpc64le support).  It cleans
up compiler warnings on old compiler where _CALL_ELF is not defined
on powerpc64(be) builds.

It does by add a new config.make variable for configure-deduced
CPPFLAGS and accumulate into that (confix-extra-cppflags).  It also
generalizes libc_extra_cflags so it accumulates in sysdeps configure
fragmenets.
2014-04-06 16:48:08 -05:00
Joseph Myers
d6fe5e582d Do not terminate default test runs on test failure.
This patch is an updated version of
<https://sourceware.org/ml/libc-alpha/2014-01/msg00198.html> and
<https://sourceware.org/ml/libc-alpha/2014-03/msg00180.html>.

Normal practice for software testsuites is that rather than
terminating immediately when a test fails, they continue running and
report at the end on how many tests passed or failed.

The principle behind the glibc testsuite stopping on failure was
probably that the expected state is no failures and so any failure
indicates a problem such as miscompilation.  In practice, while this
is fairly close to true for native testing on x86_64 and x86 (kernel
bugs and race conditions can still cause intermittent failures), it's
less likely to be the case on other platforms, and so people testing
glibc run the testsuite with "make -k" and then examine the logs to
determine whether the failures are what they expect to fail on that
platform, possibly with some automation for the comparison.

This patch switches the glibc testsuite to the normal convention of
not stopping on failure - unless you use stop-on-test-failure=y, in
which case it behaves essentially as it did before (and does not
generate overall test summaries on failure).  Instead, the summary
tests.sum may contain tests that FAILed.  At the end of the test run,
any FAIL or ERROR lines from tests.sum are printed, and then it exits
with error status if there were any such lines.  In addition, build
failures will also cause the test run to stop - this has the
justification that those *do* indicate serious problems that should be
promptly fixed and aren't generally hard to fix (but apart from that,
avoiding the build stopping on those failures seems harder).

Note that unlike the previous patches in this series, this *does*
require people with automation around testing glibc to change their
processes - either to start using tests.sum / xtests.sum to track
failures and compare them with expectations (with or without also
using "make -k" and examining "make" logs to identify build failures),
or else to use stop-on-test-failure=y and ignore the new tests.sum /
xtests.sum mechanism.  (If all you check is the exit status from "make
check", no changes are needed unless you want to avoid test runs
continuing after the first failure.)

Tested x86_64.

	* scripts/evaluate-test.sh: Handle fourth argument to determine
	whether test run should stop on failure.
	* Makeconfig (stop-on-test-failure): New variable.
	(evaluate-test): Pass fourth argument to evaluate-test.sh based on
	$(stop-on-test-failure).
	* Makefile (tests): Give a summary of results from testing and
	exit with failure status if they include an ERROR or FAIL.
	(xtests): Likewise.
	* manual/install.texi (Configuring and compiling): Mention
	stop-on-test-failure=y.
	* INSTALL: Regenerated.
2014-03-14 21:02:40 +00:00
Roland McGrath
498a22333b Compile with -Wundef. 2014-03-14 11:32:51 -07:00
Joseph Myers
54ee292da7 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.
2014-03-07 03:23:34 +00:00
Joseph Myers
f8c17e79fa Support expected failures in .test-result files.
This patch, an updated version of
<https://sourceware.org/ml/libc-alpha/2014-01/msg00195.html>, makes it
possible for .test-result files for individual tests to contain XPASS
and XFAIL rather than PASS and FAIL in cases where failure is
expected.  This replaces the marking of two individual tests with "-"
to cause them to be expected at makefile level to fail;
evaluate-test.sh will ensure it exits with status 0 for an expected
failure.

Tested x86_64.

	* scripts/evaluate-test.sh: Take new argument indicating whether
	failure is expected.
	* Makeconfig (evaluate-test): Pass argument to evaluate-test.sh
	indicating whether failure is expected.
	* conform/Makefile (test-xfail-run-conformtest): New variable.
	($(objpfx)run-conformtest.out): Don't expect to fail at makefile
	level.
	* posix/Makefile (test-xfail-annexc): New variable.
	($(objpfx)annexc.out): Don't expect to fail at makefile level.
2014-02-27 03:25:27 +00:00
Tomas Dohnalek
591aeaf7a9 Generate .test-result files for ordinary tests.
This patch, an updated version of
<https://sourceware.org/ml/libc-alpha/2014-01/msg00193.html>, starts
the process of generating explicit PASS or FAIL status for individual
glibc tests.  It's based on Tomas Dohnalek's patch
<https://sourceware.org/ml/libc-alpha/2012-10/msg00278.html>, but is
deliberately more minimal: it doesn't try to cover any tests outside
of $(tests) / $(xtests) (that's for a later patch), nor does it put
the result together in an overall summary file (again, a later patch):
it just generates the .test-result files.

Thus, this patch keeps the overall logic for when a testsuite run
finishes completely unchanged: a test failing will terminate the run.
I think we *should* move to a more conventional approach where plain
"make check" does not terminate for an individual test failure, unless
e.g. you say "make stop-on-test-failure=y check", but that sort of
policy change is best done as a separate patch once the infrastructure
is in place to generate summary files for completed test runs (which
will entirely consist of PASS and XFAIL lines if the testsuite run
reaches the point of generating them, until such a policy change is
made).

Tested x86_64.

2014-02-14  Tomas Dohnalek  <tdohnale@redhat.com>
	    Joseph Myers  <joseph@codesourcery.com>

	* Makeconfig (test-name): New variable.
	(evaluate-test): Likewise.
	* Makerules (do-test-clean): Remove .test-result files.
	(common-mostlyclean): Likewise.
	* Rules ($(objpfx)%.out): Use $(evaluate-test) in both rules.
	* scripts/evaluate-test.sh: New file.
2014-02-15 01:04:57 +00:00
Allan McRae
d4697bc93d Update copyright notices with scripts/update-copyrights 2014-01-01 22:00:23 +10:00
Mike Frysinger
cb8a6dbd17 rename configure.in to configure.ac
Autoconf has been deprecating configure.in for quite a long time.
Rename all our configure.in and preconfigure.in files to .ac.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-10-30 17:32:08 +10:00
Siddhesh Poyarekar
01dc6df938 Don't use run-via-rtld-prefix for anything other than tests
run-via-rtld-prefix checks whether the program to be run is a static
test and skips if it is.  This is fine, except that it assumes that
the program to be run is the second $^, which is true only for tests.

This change creates an rtld-prefix, which is simply the dynamic linker
prefix with the necessary arguments and uses that in the non-test
targets.
2013-04-11 09:37:50 +05:30
Andreas Schwab
aaa8cb4b43 Add support for rtld directory different from slib directory 2013-03-19 12:07:26 +01:00
Roland McGrath
222d7f00a4 Add dependency tracking for preconfigure files. 2013-03-08 14:31:33 -08:00
Roland McGrath
90f42071e3 Fix last change. 2013-02-26 18:50:17 -08:00
Roland McGrath
7e80ddb824 Generalize %.v.i rule a bit. 2013-02-26 16:01:06 -08:00
Joseph Myers
daaa7713e9 Remove bounded-pointers build system support. 2013-02-15 15:07:54 +00:00
Roland McGrath
b84660a888 Support sysdeps/.../include/ directories. 2013-02-08 10:26:21 -08:00
Roland McGrath
7bd642f580 Move nss directory into sysdeps Subdirs. 2013-02-05 14:32:48 -08:00
H.J. Lu
740b3dbee8 Add --enable-hardcoded-path-in-tests configure option 2013-01-11 07:14:18 -08:00
Joseph Myers
568035b787 Update copyright notices with scripts/update-copyrights. 2013-01-02 19:05:09 +00:00
Joseph Myers
f4cf5f2d8b Add script to update copyright notices and reformat some to facilitate its use. 2013-01-01 16:29:10 +00:00
Joseph Myers
25fe89324c Fix run-program-prefix comment. 2012-10-25 15:54:16 +00:00
Joseph Myers
cc1290d07e Support cross-testing. 2012-10-24 21:59:01 +00:00
Joseph Myers
03ac099f6b Define and use $(run-built-tests). 2012-10-24 00:08:46 +00:00
Jim Blandy
166bca2480 Add and use $(host-built-program-cmd). 2012-10-23 22:49:59 +00:00
Joseph Myers
88866099db Refactor parts of run-program-prefix and built-program-cmd into new run-via-rtld-prefix. 2012-10-23 22:05:28 +00:00
Joseph Myers
728e272aec Remove relics of support for configuring in the source directory. 2012-10-19 20:03:12 +00:00
Joseph Myers
d173d12e77 Don't include link-libc-static in +link-static-before-libc. 2012-10-10 21:07:20 +00:00
Roland McGrath
cc87f7d851 Clean up *objdir variables. 2012-09-28 13:58:55 -07:00
H.J. Lu
94b32c3912 Use static link by default for --disable-shared 2012-09-24 17:31:36 -07:00
H.J. Lu
189e935bf8 Replace crtendS.o with crtend.o for static link 2012-09-24 11:25:57 -07:00
H.J. Lu
6551399088 Remove $(have-cpp-asm-debuginfo) check 2012-09-15 13:08:45 -07:00
H.J. Lu
a5055ad15a Use crtbeginT.o to statically link programs 2012-09-06 11:43:43 -07:00
Roland McGrath
c75ccd4c3a Clean up definition of _LIBC_REENTRANT and _IO_MTSAFE_IO. 2012-08-17 09:35:15 -07:00
Marek Polacek
3fb791b889 Small cleanup in Makeconfig. 2012-08-02 00:11:39 +02:00
Joseph Myers
95f5a9a866 Avoid use of libgcc_s and libgcc_eh when building glibc. 2012-07-03 19:14:59 +00:00
Roland McGrath
4248b1b1cf Respect --localstatedir for /var/db parent directory. 2012-06-22 10:11:07 -07:00
Joseph Myers
88a4576f50 Remove unused default-abi definition in Makeconfig. 2012-06-01 21:17:36 +00:00
H.J. Lu
0ab0291b84 Convert WORDSIZE[32|64]/ld entries to abi-variants 2012-05-30 08:33:26 -07:00
Roland McGrath
c14874927b syscalls.list support for vDSO IFUNCs, use it for x32 gettimeofday and time. 2012-05-24 13:13:46 -07:00
Roland McGrath
30b99d798f BZ#10375: Configure magic to use -fno-stack-protector if needed. 2012-05-16 16:22:50 -07:00
Roland McGrath
61653dfb81 BZ#10375: Configure magic to use -U_FORTIFY_SOURCE if needed. 2012-05-16 16:20:59 -07:00
Andreas Jaeger
29ba805c7b Revert "Revert "Build glibc with -frounding-math""
This reverts commit 20f244a03f.
2012-05-08 09:00:44 +02:00
Andreas Jaeger
20f244a03f Revert "Build glibc with -frounding-math"
This reverts commit bd7b0e561f.

Conflicts:

	ChangeLog
2012-05-07 21:50:25 +02:00
Andreas Jaeger
bd7b0e561f Build glibc with -frounding-math
* Makeconfig (+math-flags): New, set to -frounding-math.
	(+cflags): Add +math-flags so that all of glibc gets compiled with
	it.
2012-05-06 09:14:15 +02:00
Joseph Myers
62fde54fc5 Remove unused localtime makefile variables. 2012-05-01 18:56:25 +00:00
Joseph Myers
a3cc4f48e9 Remove --as-needed configure test. 2012-04-25 17:02:33 +00:00
Joseph Myers
3a533ca370 Don't handle libgcc_s suffixes. 2012-04-24 10:22:45 +00:00
Paul Eggert
59ba27a63a Replace FSF snail mail address with URLs. 2012-02-09 23:18:22 +00:00