Commit Graph

991 Commits

Author SHA1 Message Date
Joseph Myers
d0f5b3f851 Increase minimum Linux kernel version to 2.6.32.
This patch increases the minimum Linux kernel version for glibc to
2.6.32, as discussed in the thread starting at
<https://sourceware.org/ml/libc-alpha/2014-01/msg00511.html>.

This patch just does the minimal change to arch_minimum_kernel
settings (and LIBC_LINUX_VERSION, which determines the minimum kernel
headers version, as it doesn't make sense for that to be older than
the minimum kernel that can be used at runtime).  Followups would be
expected to do, roughly and not necessarily precisely in this order:

* Remove __LINUX_KERNEL_VERSION checks in kernel-features.h files
  where those checks are always true / always false for kernels 2.6.32
  and above.

* Otherwise simplify/improve conditionals in those files (for example,
  where defining once in the main file then undefining in
  architecture-specific files makes things clearer than having lots of
  separate definitions of the same macro), possibly fixing in the
  process cases where a macro should optimally have been defined for a
  given architecture but wasn't.  (In the review in preparation for
  this version increase I checked what the right conditions should be
  for all macros in the main kernel-features.h whose definitions there
  would have been affected by the increase - but I only fixed that
  subset of the issues found where --enable-kernel=2.6.32 would have
  caused a kernel feature to be wrongly assumed to be present, not any
  cases where a feature is not assumed but could be assumed.)

* Remove conditionals on __ASSUME_* where they can now be taken to be
  always-true, and the definitions when the macros are only used in
  Linux-specific files.

* Split more architectures out of the main kernel-features.h (like
  ex-ports architectures), once various of the architecture
  conditionals there have been eliminated so the new
  architecture-specific files are no larger than actually necessary.

Tested x86_64.

2014-03-27  Joseph Myers  <joseph@codesourcery.com>

	[BZ #9894]
	* sysdeps/unix/sysv/linux/configure.ac (LIBC_LINUX_VERSION):
	Change to 2.6.32.
	(arch_minimum_kernel): Change all 2.6.16 settings to 2.6.32.
	* sysdeps/unix/sysv/linux/configure: Regenerated.
	* sysdeps/unix/sysv/linux/microblaze/configure.ac: Remove file.
	* sysdeps/unix/sysv/linux/microblaze/configure: Likewise.
	* sysdeps/unix/sysv/linux/tile/configure.ac: Likewise.
	* sysdeps/unix/sysv/linux/tile/configure: Likewise.
	* README: Update reference to required Linux kernel version.
	* manual/install.texi (Linux): Update reference to required Linux
	kernel headers version.
	* INSTALL: Regenerated.
2014-04-30 15:41:03 +00:00
Ondřej Bílka
fff763a512 Fix types of stream hook functions in manual. 2014-04-28 18:54:24 +02:00
Carlos O'Donell
c54e5cf7db manual: Sort overview listing by manual order.
In the glibc manual we have a "Roadmap to the manual" section at
the end of the "Introduction" chapter.

The introductory text says "Here is an overview of the contents
of the remaining chapters of this manual.", but then proceeds to
list chapters out of order and some chapter are never referenced.

This commit reorders the overview to correctly match the manual
order.

See:
https://sourceware.org/ml/libc-alpha/2014-02/msg00823.html
2014-04-17 19:41:09 -04:00
Will Newton
7c6776620d manual/setjmp.texi: Clarify setcontext and signal handlers text
Calling setcontext from a signal handler can be done safely so
it is sufficient to note that it is not recommended.

Also mention in setcontext documentation that the behaviour of
setcontext when restoring a context created by a call to a signal
handler is unspecified.

2014-04-17  Will Newton  <will.newton@linaro.org>

	* manual/setjmp.texi (System V contexts): Add note that
	calling setcontext on a context created by a call to a
	signal handler is undefined.  Update text to note that
	setcontext from a signal handler is possible but not
	recommended.
2014-04-17 11:40:36 +01:00
Allan McRae
89e691f2ae Fix qsort argument order in collation example 2014-04-12 14:26:29 +10:00
Carlos O'Donell
862c472efa manual/ipc.texi: Fix AC-safety notes.
The function sem_close is AC-unsafe because lll_lock*
leaks a lock (aculock) and not because of twalk.
2014-04-08 17:12:15 -04:00
David Svoboda
1c21d115e3 manual: clarify buffer behavior in getline [BZ #5666]
If the user has requested automatic buffer creation, getline may create
it and not free things when an error occurs.  That means the user is
always responsible for calling free() regardless of the return value.

The current documentation does not explicitly cover this which leaves it
slightly ambiguous to the reader.  So clarify things.

URL: https://sourceware.org/bugzilla/show_bug.cgi?id=5666
2014-04-03 18:23:57 -04: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
Mike Frysinger
f3a4632a3f manual: time: fix typo in IST example
The current description says Tuesday when it meant to say Thursday
(since that comes before Friday).
2014-03-13 18:31:09 -04:00
Will Newton
6f918f367a manual/setjmp.texi: Improve clarity of Sys V context doc
ChangeLog:

2014-03-13  Will Newton  <will.newton@linaro.org>

	* manual/setjmp.texi (System V contexts): Improve
	clarity and grammar of documentation.
2014-03-13 10:39:47 +00:00
Joseph Myers
355bc9868b Remove INSTALL_INFO setting in manual/Makefile.
* manual/Makefile (INSTALL_INFO): Remove variable setting.
2014-03-06 15:57:24 +00:00
Joseph Myers
e6b6a85705 Don't include individual test ulps in libm-test-ulps.
As recently discussed
<https://sourceware.org/ml/libc-alpha/2014-02/msg00670.html>, it
doesn't seem particularly useful for libm-test-ulps files to contain
huge amounts of data on ulps for individual tests; just the global
maximum observed ulps for each function, together with the
verification of exceptions, errno and special results such as
infinities and NaNs for each test, suffices to verify that a
function's behavior on the given test inputs is within the expected
accuracy.  Removing this data reduces source tree churn caused by
updates to these files when libm tests are added, and reduces the
frequency with which testsuite additions actually need libm-test-ulps
changes at all.

Accordingly, this patch removes that data, so that individual tests
get checked against the global bounds for the given function and only
generate an error if those are exceeded.  Tested x86_64 (including
verifying that if an ulps value is artificially reduced, the tests do
indeed fail as they should and "make regen-ulps" generates the
expected changes).

	* math/libm-test.inc (struct ulp_data): Don't refer to ulps for
	individual tests in comment.
	(libm-test-ulps.h): Don't refer to test_ulps in #include comment.
	(prev_max_error): New variable.
	(prev_real_max_error): Likewise.
	(prev_imag_max_error): Likewise.
	(compare_ulp_data): Don't refer to test names in comment.
	(find_test_ulps): Remove function.
	(find_function_ulps): Likewise.
	(find_complex_function_ulps): Likewise.
	(init_max_error): Take function name as argument.  Look up ulps
	for that function.
	(print_ulps): Remove function.
	(print_max_error): Use prev_max_error instead of calling
	find_function_ulps.
	(print_complex_max_error): Use prev_real_max_error and
	prev_imag_max_error instead of calling find_complex_function_ulps.
	(check_float_internal): Take max_ulp parameter instead of calling
	find_test_ulps.  Don't call print_ulps.
	(check_float): Update call to check_float_internal.
	(check_complex): Update calls to check_float_internal.
	(START): Pass argument to init_max_error.
	* math/gen-libm-test.pl (%results): Don't include "kind"
	information.
	(parse_ulps): Don't handle ulps of individual tests.
	(print_ulps_file): Likewise.
	(output_ulps): Likewise.
	* math/README.libm-test: Update.
	* manual/libm-err-tab.pl (parse_ulps): Don't handle ulps of
	individual tests.
	* sysdeps/aarch64/libm-test-ulps: Remove individual test ulps.
	* sysdeps/alpha/fpu/libm-test-ulps: Likewise.
	* sysdeps/arm/libm-test-ulps: Likewise.
	* sysdeps/i386/fpu/libm-test-ulps: Likewise.
	* sysdeps/ia64/fpu/libm-test-ulps: Likewise.
	* sysdeps/m68k/coldfire/fpu/libm-test-ulps: Likewise.
	* sysdeps/m68k/m680x0/fpu/libm-test-ulps: Likewise.
	* sysdeps/microblaze/libm-test-ulps: Likewise.
	* sysdeps/mips/mips32/libm-test-ulps: Likewise.
	* sysdeps/mips/mips64/libm-test-ulps: Likewise.
	* sysdeps/powerpc/fpu/libm-test-ulps: Likewise.
	* sysdeps/powerpc/nofpu/libm-test-ulps: Likewise.
	* sysdeps/s390/fpu/libm-test-ulps: Likewise.
	* sysdeps/sh/libm-test-ulps: Likewise.
	* sysdeps/sparc/fpu/libm-test-ulps: Likewise.
	* sysdeps/tile/libm-test-ulps: Likewise.
	* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.

	* sysdeps/hppa/fpu/libm-test-ulps: Remove individual test ulps.
2014-03-05 15:02:38 +00:00
Carlos O'Donell
ef563f925a Add header and standard information to threads.texi.
The glibc manual uses special annotations to include functions
in the summary chapter. These annotations were missing from the
functions in the threads chapter. This patch adds those special
markers and in turn adds these functions to the summary chapter.
2014-02-28 18:30:22 -05:00
Roland McGrath
f08e9a2629 Fix fallout from Joseph's untested Makeconfig change. 2014-02-28 13:00:27 -08:00
Joseph Myers
a5f891ac8d Consistently include Makeconfig after defining subdir.
In <https://sourceware.org/ml/libc-alpha/2014-01/msg00196.html> I
noted it was necessary to add includes of Makeconfig early in various
subdirectory makefiles for the tests-special variable settings added
by that patch to be conditional on configuration information.  No-one
commented on the general question there of whether Makeconfig should
always be included immediately after the definition of subdir.

This patch implements that early inclusion of Makeconfig in each
directory (which is a lot easier than consistent placement of includes
of Rules).  Includes are added if needed, or moved up if already
present.  Subdirectory "all:" targets are removed, since Makeconfig
provides one.

There is potential for further cleanups I haven't done.  Rules and
Makerules have code such as

ifneq   "$(findstring env,$(origin headers))" ""
headers :=
endif

to override to empty any value of various variables that came from the
environment.  I think there is a case for Makeconfig setting all the
subdirectory variables (other than subdir) to empty to ensure no
outside value is going to take effect if a subdirectory fails to
define a variable.  (A list of such variables, possibly out of date
and incomplete, is in manual/maint.texi.)  Rules and Makerules would
give errors if Makeconfig hadn't already been included, instead of
including it themselves.  The special code to override values coming
from the environment would then be obsolete and could be removed.

Tested x86_64, including that installed binaries are identical before
and after the patch.

	* argp/Makefile: Include Makeconfig immediately after defining
	subdir.
	* assert/Makefile: Likewise.
	* benchtests/Makefile: Likewise.
	* catgets/Makefile: Likewise.
	* conform/Makefile: Likewise.
	* crypt/Makefile: Likewise.
	* csu/Makefile: Likewise.
	(all): Remove target.
	* ctype/Makefile: Include Makeconfig immediately after defining
	subdir.
	* debug/Makefile: Likewise.
	* dirent/Makefile: Likewise.
	* dlfcn/Makefile: Likewise.
	* gmon/Makefile: Likewise.
	* gnulib/Makefile: Likewise.
	* grp/Makefile: Likewise.
	* gshadow/Makefile: Likewise.
	* hesiod/Makefile: Likewise.
	* hurd/Makefile: Likewise.
	(all): Remove target.
	* iconvdata/Makefile: Include Makeconfig immediately after
	defining subdir.
	* inet/Makefile: Likewise.
	* intl/Makefile: Likewise.
	* io/Makefile: Likewise.
	* libio/Makefile: Likewise.
	(all): Remove target.
	* locale/Makefile: Include Makeconfig immediately after defining
	subdir.
	* login/Makefile: Likewise.
	* mach/Makefile: Likewise.
	(all): Remove target.
	* malloc/Makefile: Include Makeconfig immediately after defining
	subdir.
	(all): Remove target.
	* manual/Makefile: Include Makeconfig immediately after defining
	subdir.
	* math/Makefile: Likewise.
	* misc/Makefile: Likewise.
	* nis/Makefile: Likewise.
	* nss/Makefile: Likewise.
	* po/Makefile: Likewise.
	(all): Remove target.
	* posix/Makefile: Include Makeconfig immediately after defining
	subdir.
	* pwd/Makefile: Likewise.
	* resolv/Makefile: Likewise.
	* resource/Makefile: Likewise.
	* rt/Makefile: Likewise.
	* setjmp/Makefile: Likewise.
	* shadow/Makefile: Likewise.
	* signal/Makefile: Likewise.
	* socket/Makefile: Likewise.
	* soft-fp/Makefile: Likewise.
	* stdio-common/Makefile: Likewise.
	* stdlib/Makefile: Likewise.
	* streams/Makefile: Likewise.
	* string/Makefile: Likewise.
	* sunrpc/Makefile: Likewise.
	(all): Remove target.
	* sysvipc/Makefile: Include Makeconfig immediately after defining
	subdir.
	* termios/Makefile: Likewise.
	* time/Makefile: Likewise.
	* timezone/Makefile: Likewise.
	(all): Remove target.
	* wcsmbs/Makefile: Include Makeconfig immediately after defining
	subdir.
	* wctype/Makefile: Likewise.

libidn/ChangeLog:
	* Makefile: Include Makeconfig immediately after defining subdir.

localedata/ChangeLog:
	* Makefile: Include Makeconfig immediately after defining subdir.
	(all): Remove target.

nptl/ChangeLog:
	* Makefile: Include Makeconfig immediately after defining subdir.

nptl_db/ChangeLog:
	* Makefile: Include Makeconfig immediately after defining subdir.
2014-02-26 23:12:03 +00:00
Ondřej Bílka
cf822e3c94 Fix two spaces after sentence.
Minor formatting fix that was carried by issuing
sed -e"s/\. \([A-Z]\)/.  \1/" followed by editing result.
2014-02-26 23:27:38 +01:00
Carlos O'Donell
f067bf1f33 Use @Theglibc{} in manual/ipc.texi. 2014-02-26 13:39:02 -05:00
Carlos O'Donell
085d0e354a Add a new "Inter-Process Communication" chapter.
This patch adds a new "Inter-Process Communication"
chapter to cover the sem*, msg*, and shm* functions.
Initially we document only the sem* function signatures
and their safety notes.
2014-02-26 11:05:09 -05:00
Joseph Myers
c941736c92 Remove _BSD_SOURCE and _SVID_SOURCE.
This is a minimal patch to remove _BSD_SOURCE and _SVID_SOURCE from
the documented user API, making them into aliases for _DEFAULT_SOURCE
with a #warning given, but keeping most of the features.h logic using
those macros and all the exising __USE_* conditionals, on the basis
that all the consequent cleanups will go in followup patches.

Tested x86_64.

	* include/features.h: Update comment documenting feature test
	macros.
	[_BSD_SOURCE || _SVID_SOURCE]: Give #warning.  Define
	_DEFAULT_SOURCE.
	* manual/creature.texi (_BSD_SOURCE): Remove documentation.
	(_SVID_SOURCE): Likewise.
	(_DEFAULT_SOURCE): Update description of default features.
	(Feature Test Macros): Don't mention _SVID_SOURCE in conjunction
	with _GNU_SOURCE.
	* manual/filesys.texi (__ftw_func_t): Do not refer to _BSD_SOURCE.
	(S_ISVTX): Likewise.
	* manual/math.texi (Mathematical Constants): Likewise.
	* manual/signal.texi (Interrupted Primitives): Likewise.
	* manual/startup.texi (putenv): Do not refer to _SVID_SOURCE.
	* math/test-matherr.c (_SVID_SOURCE): Do not define.
	* sysvipc/sys/ipc.h [__USE_SVID && !__USE_XOPEN && __GNUC__ >= 2]:
	Don't refer to _SVID_SOURCE in warning text.
2014-02-11 23:40:07 +00:00
Will Newton
d35f1e8073 manual/probes.texi: Use "triggered" instead of "hit"
Use the term "triggered" instead of "hit" when talking about probe
points.

ChangeLog:

2014-02-11  Will Newton  <will.newton@linaro.org>

	* manual/probes.texi (Mathematical Function Probes): Use
	"triggered" instead of "hit".
2014-02-11 10:21:00 +00:00
Will Newton
7b3436d468 manual/probes.texi: Add documentation of setjmp/longjmp probes
Add some documentation of the setjmp, longjmp and longjmp_target
Systemtap probe points.

ChangeLog:

2014-02-11  Will Newton  <will.newton@linaro.org>

	* manual/probes.texi (Internal Probes): Add documentation
	of setjmp, longjmp and longjmp_target probes.
2014-02-11 10:19:24 +00:00
Mike Frysinger
6349768c8b manual: setjmp: fix typos/grammar
Should hopefully be all obvious stuff.

Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2014-02-08 07:59:36 -05:00
Siddhesh Poyarekar
ee7cc38537 Update contrib.texi
Update blurb for Roland, Alex, Ryan, Joseph and Carlos.
2014-02-06 11:01:35 +05:30
Siddhesh Poyarekar
6815994630 Update contrib.texi
This may not be a complete list of new contributors added to the list,
so I'd love it if more people look at contributions and suggest
additions.
2014-02-05 12:22:58 +05:30
Carlos O'Donell
481e3524bb Fix manual build warnings.
The mixed use of automatic and manual node next, previous,
and top specification causes warning when building the manual.
This fix explicitly specifies the node's next, previous and top
values to fix the warning.
2014-02-03 15:27:53 -05:00
Alexandre Oliva
375592d364 * manual/macros.texi: Add comments before MTASC-safety macros. 2014-02-03 17:26:08 -02:00
Alexandre Oliva
f54838baf8 * manual/users.texi: Document MTASC-safety properties. 2014-02-03 17:25:38 -02:00
Alexandre Oliva
909e12ad34 * manual/threads.texi (pthread_key_create, pthread_key_delete,
pthread_getspecific, pthread_setspecific): Format with
@deftypefun, and add @safety note.
* manual/signal.texi: Move comments that analyze the above
functions to their home place.
2014-02-03 17:17:59 -02:00
Alexandre Oliva
597636d736 * manual/time.texi (timegm): Add missing blank after @c.
Reported by Joseph Myers <joseph@codesourcery.com>.
2014-02-02 21:50:54 -02:00
Alexandre Oliva
ee196e3ca4 * manual/check-safety.sh: New.
* manual/Makefile ($(objpfx)stamp-summary): Run it.
2014-02-01 04:31:05 -02:00
Alexandre Oliva
f8d529d519 * manual/terminal.texi: Document MTASC-safety properties. 2014-02-01 03:53:15 -02:00
Alexandre Oliva
de55fdf4b5 * manual/filesys.texi: Document MTASC-safety properties. 2014-02-01 03:50:11 -02:00
Alexandre Oliva
c3299c08d1 * manual/errno.texi: Document MTASC-safety properties. 2014-02-01 03:49:25 -02:00
Alexandre Oliva
06e90b14b4 * manual/intro.texi: Document safety identifiers and
conditionals.
2014-02-01 03:48:32 -02:00
Alexandre Oliva
1acd4371c0 * manual/string.texi (wcstok): Fix prototype.
(wcstok, strtok, strtok_r): Adjust reentrancy remarks.
2014-02-01 03:38:33 -02:00
Alexandre Oliva
23e5b8cb1b * manual/time.texi: Document MTASC-safety properties. 2014-02-01 02:51:51 -02:00
Alexandre Oliva
11087373a6 * manual/string.texi: Document MTASC-safety properties. 2014-02-01 02:46:54 -02:00
Alexandre Oliva
5da2c93d24 * manual/threads.texi: Document MTASC-safety properties. 2014-02-01 01:29:35 -02:00
Alexandre Oliva
171e921053 * manual/stdio.texi: Document MTASC-safety properties. 2014-02-01 01:27:52 -02:00
Alexandre Oliva
d9e025328b * manual/syslog.texi: Document MTASC-safety properties. 2014-02-01 01:22:09 -02:00
Alexandre Oliva
6af8bab7e0 * manual/sysinfo.texi: Document MTASC-safety properties. 2014-02-01 01:16:09 -02:00
Alexandre Oliva
663b02d7bd * manual/startup.texi: Document MTASC-safety properties. 2014-02-01 01:04:59 -02:00
Alexandre Oliva
973f180bd5 * manual/socket.texi: Document MTASC-safety properties. 2014-02-01 01:03:33 -02:00
Alexandre Oliva
8f3c25c8d9 * manual/signal.texi: Document MTASC-safety properties. 2014-02-01 00:58:50 -02:00
Alexandre Oliva
542210fbc5 * manual/setjmp.texi: Document MTASC-safety properties. 2014-01-31 23:49:07 -02:00
Alexandre Oliva
433c45a247 * manual/search.texi: Document MTASC-safety properties. 2014-01-31 23:47:28 -02:00
Alexandre Oliva
c8ce789c81 * manual/resource.texi: Document MTASC-safety properties. 2014-01-31 23:46:01 -02:00
Alexandre Oliva
19f5d29c35 * manual/process.texi: Document MTASC-safety properties. 2014-01-31 23:44:19 -02:00
Alexandre Oliva
e2dfb7f4ca * manual/platform.texi: Document MTASC-safety properties. 2014-01-31 23:40:29 -02:00
Alexandre Oliva
8c1413f5ac * manual/pipe.texi: Document MTASC-safety properties. 2014-01-31 23:37:28 -02:00