Go to file
Joseph Myers 215db4029e Prepare libm-test.inc structures for multi-rounding-mode testing.
At present, libm-test.inc tests are run in multiple rounding modes by
having a separate array for each rounding mode (which might or might
not have the same test inputs as the other such arrays), a separate
function calling a RUN_TEST_LOOP_* macro over that array, and a
separate call to that function in main.  The number of functions
tested in multiple rounding modes has gradually increased as
rounding-mode-specific bugs have been found and fixed in different
functions.

It would be better to be able to use a single macro call, in a single
function, to run tests for a function over all rounding modes, with
this being done for all libm functions except in cases where it's
deferred until some bugs can be fixed because XFAILing all affected
tests would be painful (that's why the full set of pow tests isn't
currently run in all rounding modes).  This patch helps prepare for
that by making the structures storing expected results for tests store
results for all four rounding modes.  After this patch, the results
for all modes are just duplicates, but tests access the appropriate
field in the structure, so helping to pave the way for when the fields
stop being duplicates and multiple rounding modes can be tested from a
single array.  Tests might in future specify a single set of results,
to be used in all rounding modes; separate results for each rounding
mode, specified manually; or use of auto-libm-tests-* to generate
results for each rounding mode.

Tested x86_64.

	* math/libm-test.inc (struct test_f_f_data): Move expected results
	into structure for each rounding mode.
	(struct test_ff_f_data): Likewise.
	(struct test_ff_f_data_nexttoward): Likewise.
	(struct test_fi_f_data): Likewise.
	(struct test_fl_f_data): Likewise.
	(struct test_if_f_data): Likewise.
	(struct test_fff_f_data): Likewise.
	(struct test_c_f_data): Likewise.
	(struct test_f_f1_data): Likewise.
	(struct test_fF_f1_data): Likewise.
	(struct test_ffI_f1_data): Likewise.
	(struct test_c_c_data): Likewise.
	(struct test_cc_c_data): Likewise.
	(struct test_f_i_data): Likewise.
	(struct test_ff_i_data): Likewise.
	(struct test_f_l_data): Likewise.
	(struct test_f_L_data): Likewise.
	(struct test_fFF_11_data): Likewise.
	(RM_): New macro.
	(RM_FE_DOWNWARD): Likewise.
	(RM_FE_TONEAREST): Likewise.
	(RM_FE_TOWARDZERO): Likewise.
	(RM_FE_UPWARD): Likewise.
	(RUN_TEST_LOOP_f_f): Update references to expected results.
	(RUN_TEST_LOOP_2_f): Likewise.
	(RUN_TEST_LOOP_fff_f): Likewise.
	(RUN_TEST_LOOP_c_f): Likewise.
	(RUN_TEST_LOOP_f_f1): Likewise.
	(RUN_TEST_LOOP_fF_f1): Likewise.
	(RUN_TEST_LOOP_fI_f1): Likewise.
	(RUN_TEST_LOOP_ffI_f1): Likewise.
	(RUN_TEST_LOOP_c_c): Likewise.
	(RUN_TEST_LOOP_cc_c): Likewise.
	(RUN_TEST_LOOP_f_i): Likewise.
	(RUN_TEST_LOOP_f_i_tg): Likewise.
	(RUN_TEST_LOOP_ff_i_tg): Likewise.
	(RUN_TEST_LOOP_f_b): Likewise.
	(RUN_TEST_LOOP_f_b_tg): Likewise.
	(RUN_TEST_LOOP_f_l): Likewise.
	(RUN_TEST_LOOP_f_L): Likewise.
	(RUN_TEST_LOOP_fFF_11): Likewise.
	* math/gen-libm-test.pl (parse_args): Output four copies of
	expected results for each test.
2014-03-06 14:15:00 +00:00
argp Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
assert Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
benchtests Make strtok benchmark competive. 2014-02-28 22:45:33 +01:00
bits Complete _BSD_SOURCE / _SVID_source followup cleanup. 2014-02-21 21:45:26 +00:00
catgets Fix fallout from Joseph's untested Makeconfig change. 2014-02-28 13:00:27 -08:00
conf (NEED_INETADDR, NEED_INETATON): Define to 1, not empty. 1995-09-08 20:24:57 +00:00
conform Support expected failures in .test-result files. 2014-02-27 03:25:27 +00:00
crypt Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
csu Fix fallout from Joseph's untested Makeconfig change. 2014-02-28 13:00:27 -08:00
ctype Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
debug Fix fallout from Joseph's untested Makeconfig change. 2014-02-28 13:00:27 -08:00
dirent Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
dlfcn Fix fallout from Joseph's untested Makeconfig change. 2014-02-28 13:00:27 -08:00
elf Promote do_lookup_x:check_match to a full function. 2014-02-28 18:15:10 -05:00
gmon Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
gnulib Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
grp Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
gshadow Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
hesiod Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
hurd Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
iconv Generate .test-result files for tests with special rules. 2014-02-21 21:48:08 +00:00
iconvdata Fix fallout from Joseph's untested Makeconfig change. 2014-02-28 13:00:27 -08:00
include BZ #16632: Change [_BSD/_SVID]_SOURCE warning. 2014-02-25 13:23:25 -05:00
inet Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
intl Fix fallout from Joseph's untested Makeconfig change. 2014-02-28 13:00:27 -08:00
io Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
libidn Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
libio Fix up formatting in tst-ftell-active-handler.c 2014-03-04 15:49:58 +05:30
locale Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
localedata Fix fallout from Joseph's untested Makeconfig change. 2014-02-28 13:00:27 -08:00
login Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
mach Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
malloc Revert 4248f0da6f. 2014-03-03 12:30:17 -05:00
manual Don't include individual test ulps in libm-test-ulps. 2014-03-05 15:02:38 +00:00
math Prepare libm-test.inc structures for multi-rounding-mode testing. 2014-03-06 14:15:00 +00:00
misc Fix fallout from Joseph's untested Makeconfig change. 2014-02-28 13:00:27 -08:00
nis Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
nptl Retire the separate ChangeLog files in nptl/ and nptl_db/ subdirs. 2014-03-03 15:30:42 -08:00
nptl_db Retire the separate ChangeLog files in nptl/ and nptl_db/ subdirs. 2014-03-03 15:30:42 -08:00
nscd nscd: Improved support for tracking startup failure in nscd service (BZ #16639) 2014-03-03 23:18:31 +05:30
nss Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
po Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
ports Don't include individual test ulps in libm-test-ulps. 2014-03-05 15:02:38 +00:00
posix Fix fallout from Joseph's untested Makeconfig change. 2014-02-28 13:00:27 -08:00
pwd Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
resolv Fix fallout from Joseph's untested Makeconfig change. 2014-02-28 13:00:27 -08:00
resource Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
rt Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
scripts Support expected failures in .test-result files. 2014-02-27 03:25:27 +00:00
setjmp Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
shadow Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
signal Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
socket Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
soft-fp Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
stdio-common Add missing } in Versions file. 2014-02-28 11:07:43 -08:00
stdlib Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
streams Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
string PowerPC: strrchr optimization for POWER7/PPC64 2014-03-03 08:06:41 -06:00
sunrpc Fix fallout from Joseph's untested Makeconfig change. 2014-02-28 13:00:27 -08:00
sysdeps Don't define __ASSUME_UTIMES for linux-generic architectures. 2014-03-06 14:13:18 +00:00
sysvipc Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
termios Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
time Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
timezone Fix fallout from Joseph's untested Makeconfig change. 2014-02-28 13:00:27 -08:00
wcsmbs Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
wctype Consistently include Makeconfig after defining subdir. 2014-02-26 23:12:03 +00:00
.gitattributes exempt timezone files from the no-bad-whitespace policy 2009-06-15 18:15:54 +02:00
.gitignore ignore gdb related files 2013-12-27 16:30:50 -05:00
abi-tags * abi-tags (*-.*-syllable.*): New match, with ABI value 5. 2006-01-04 17:14:58 +00:00
aclocal.m4 rename configure.in to configure.ac 2013-10-30 17:32:08 +10:00
BUGS [BZ #5222] 2007-10-28 08:24:07 +00:00
CANCEL-FCT-WAIVE Update. 2004-03-08 07:58:18 +00:00
CANCEL-FILE-WAIVE Update. 2004-03-08 07:58:18 +00:00
ChangeLog Prepare libm-test.inc structures for multi-rounding-mode testing. 2014-03-06 14:15:00 +00:00
ChangeLog.1 * Makefile (distribute): Add ChangeLog.[0-9]. 1995-04-14 03:52:54 +00:00
ChangeLog.2 * Makefile (distribute): Add ChangeLog.[0-9]. 1995-04-14 03:52:54 +00:00
ChangeLog.3 * Makefile (distribute): Add ChangeLog.[0-9]. 1995-04-14 03:52:54 +00:00
ChangeLog.4 * Makefile (distribute): Add ChangeLog.[0-9]. 1995-04-14 03:52:54 +00:00
ChangeLog.5 * sysdeps/posix/getaddrinfo.c: Implement configuration file 2006-05-04 06:38:07 +00:00
ChangeLog.6 Update. 1997-07-22 00:10:33 +00:00
ChangeLog.7 Update. 1997-11-18 02:50:07 +00:00
ChangeLog.8 Update. Old logs are in ChangeLog.7. 1998-08-11 18:44:11 +00:00
ChangeLog.9 Update. 2000-04-28 06:14:43 +00:00
ChangeLog.10 Update. 2000-02-29 01:13:44 +00:00
ChangeLog.11 2.5-18.1 2007-07-12 18:26:36 +00:00
ChangeLog.12 2.5-18.1 2007-07-12 18:26:36 +00:00
ChangeLog.13 Update. 2002-10-03 16:37:04 +00:00
ChangeLog.14 Update. 2004-04-20 04:28:00 +00:00
ChangeLog.15 Split out ChangeLog.15 at 2.3 branch point 2005-02-16 07:34:17 +00:00
ChangeLog.16 Fix typo in name 2012-06-21 16:45:27 +02:00
ChangeLog.17 Revert "Sun agreed to a change of the license for the RPC code to a BSD-like license." 2010-06-27 19:34:03 -07:00
config.h.in tst-fanotify: switch to AC_DEFINE 2014-01-04 08:34:01 -05:00
config.make.in Remove --disable-versioning. 2013-09-04 15:25:42 +00:00
configure Set AUTOCONF variable when maintainer-mode is not used 2013-12-16 21:45:27 +10:00
configure.ac Set AUTOCONF variable when maintainer-mode is not used 2013-12-16 21:45:27 +10:00
CONFORMANCE Move __STDC_* predefined macros from features.h to stdc-predef.h. 2012-02-22 12:53:04 +00:00
COPYING Update to latest versions of GPL-2.0 and LGPL-2.1 2013-09-09 12:52:48 +10:00
COPYING.LIB Update to latest versions of GPL-2.0 and LGPL-2.1 2013-09-09 12:52:48 +10:00
cppflags-iterator.mk 2004-03-11 Jeroen Dekkers <jeroen@dekkers.cx> 2004-03-14 19:13:17 +00:00
extra-lib.mk Remove --disable-versioning. 2013-09-04 15:25:42 +00:00
extra-modules.mk Update. 2004-03-08 21:31:23 +00:00
INSTALL Stop partial menu generation in INSTALL file 2013-12-19 11:54:06 +10:00
libc-abis A few more archs have IFUNC support. 2010-03-17 02:43:12 -07:00
LICENSES Expand LICENSES file. 2012-12-05 21:56:15 +00:00
Makeconfig Support expected failures in .test-result files. 2014-02-27 03:25:27 +00:00
Makefile Generate .test-result files for tests with special rules. 2014-02-21 21:48:08 +00:00
Makefile.in Add target bench-clean 2013-04-16 14:07:21 +05:30
Makerules Remove obsolete SHLIB_COMPAT conditionalization in Versions files. 2014-02-22 01:19:45 -08:00
NAMESPACE Add and update many more entries. 2000-03-20 00:42:58 +00:00
NEWS Separate ftell from fseek logic and avoid modifying FILE data (#16532) 2014-03-04 07:45:58 +05:30
o-iterator.mk Fri Mar 17 12:58:37 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu> 1995-03-17 18:42:51 +00:00
PROJECTS Update. 2004-10-12 06:19:23 +00:00
README [MicroBlaze]: Move MicroBlaze from ports to sysdeps. 2014-02-17 11:08:21 +10:00
Rules Generate .test-result files for ordinary tests. 2014-02-15 01:04:57 +00:00
shlib-versions PowerPC: Change powerpc64le start ABI to 2.17. 2014-02-04 09:49:08 -02:00
test-skeleton.c tests: unify fortification handler logic 2014-02-08 06:58:43 -05:00
version.h Open development for 2.20 2014-02-08 08:10:29 +10:00
Versions.def Add GLIBC_2.17 to librt in Version.def 2014-02-21 11:32:19 +01:00
WUR-REPORT * posix/unistd.h (setuid, setreuid, seteuid, setresuid): 2012-08-01 18:12:58 +02:00

This directory contains the sources of the GNU C Library.
See the file "version.h" for what release version you have.

The GNU C Library is the standard system C library for all GNU systems,
and is an important part of what makes up a GNU system.  It provides the
system API for all programs written in C and C-compatible languages such
as C++ and Objective C; the runtime facilities of other programming
languages use the C library to access the underlying operating system.

In GNU/Linux systems, the C library works with the Linux kernel to
implement the operating system behavior seen by user applications.
In GNU/Hurd systems, it works with a microkernel and Hurd servers.

The GNU C Library implements much of the POSIX.1 functionality in the
GNU/Hurd system, using configurations i[4567]86-*-gnu.  The current
GNU/Hurd support requires out-of-tree patches that will eventually be
incorporated into an official GNU C Library release.

When working with Linux kernels, this version of the GNU C Library
requires Linux kernel version 2.6.16 or later.

Also note that the shared version of the libgcc_s library must be
installed for the pthread library to work correctly.

The GNU C Library supports these configurations for using Linux kernels:

	aarch64*-*-linux-gnu
	alpha*-*-linux-gnu
	arm-*-linux-gnueabi
	i[4567]86-*-linux-gnu
	x86_64-*-linux-gnu	Can build either x86_64 or x32
	ia64-*-linux-gnu
	m68k-*-linux-gnu
	microblaze*-*-linux-gnu
	mips-*-linux-gnu
	mips64-*-linux-gnu
	powerpc-*-linux-gnu	Hardware or software floating point, BE only.
	powerpc64*-*-linux-gnu	Big-endian and little-endian.
	s390-*-linux-gnu
	s390x-*-linux-gnu
	sh[34]-*-linux-gnu
	sparc*-*-linux-gnu
	sparc64*-*-linux-gnu
	tilegx-*-linux-gnu
	tilepro-*-linux-gnu

The code for other CPU configurations supported by volunteers outside of
the core glibc maintenance effort is contained in the `ports' add-on,
located in the `ports' subdirectory of the source tree.

	hppa-*-linux-gnu	Not currently functional without patches.

If you are interested in doing a port, please contact the glibc
maintainers; see http://www.gnu.org/software/libc/ for more
information.

See the file INSTALL to find out how to configure, build, and install
the GNU C Library.  You might also consider reading the WWW pages for
the C library at http://www.gnu.org/software/libc/.

The GNU C Library is (almost) completely documented by the Texinfo manual
found in the `manual/' subdirectory.  The manual is still being updated
and contains some known errors and omissions; we regret that we do not
have the resources to work on the manual as much as we would like.  For
corrections to the manual, please file a bug in the `manual' component,
following the bug-reporting instructions below.  Please be sure to check
the manual in the current development sources to see if your problem has
already been corrected.

Please see http://www.gnu.org/software/libc/bugs.html for bug reporting
information.  We are now using the Bugzilla system to track all bug reports.
This web page gives detailed information on how to report bugs properly.

The GNU C Library is free software.  See the file COPYING.LIB for copying
conditions, and LICENSES for notices about a few contributions that require
these additional notices to be distributed.  License copyright years may be
listed using range notation, e.g., 2000-2013, indicating that every year in
the range, inclusive, is a copyrightable year that would otherwise be listed
individually.