Commit Graph

26216 Commits

Author SHA1 Message Date
Alexandre Oliva 35fed6f15d Add probes for malloc retries.
for ChangeLog

	* malloc/malloc.c (__libc_malloc): Add memory_malloc_retry probe.
	(__libc_realloc): Add memory_realloc_retry probe.
	(__libc_memalign): Add memory_memalign_retry probe.
	(__libc_valloc): Add memory_valloc_retry probe.
	(__libc_pvalloc): Add memory_pvalloc_retry probe.
	(__libc_calloc): Add memory_calloc_retry probe.
	* manual/probes.texi: Document them.
2013-09-20 11:50:08 -03:00
Alexandre Oliva 6999d38c95 Add probes for malloc arena changes.
for ChangeLog

	* malloc/arena.c (get_free_list): Add probe
	memory_arena_reuse_free_list.
	(reused_arena) [PER_THREAD]: Add probes memory_arena_reuse_wait
	and memory_arena_reuse.
	(arena_get2) [!PER_THREAD]: Likewise.
	* malloc/malloc.c (__libc_realloc) [!PER_THREAD]: Add probe
	memory_arena_reuse_realloc.
	* manual/probes.texi: Document them.
2013-09-20 11:48:45 -03:00
Alexandre Oliva 0653427fdb Add probes for all changes to malloc options.
for ChangeLog

	* malloc/malloc.c (__libc_free): Add
	memory_mallopt_free_dyn_thresholds probe.
	(__libc_mallopt): Add multiple memory_mallopt probes.
	* manual/probes.texi: Document them.
2013-09-20 11:42:28 -03:00
Alexandre Oliva 3ea5be5436 Add first set of memory probes.
for ChangeLog

	* malloc/malloc.c: Include stap-probe.h.
	(__libc_mallopt): Add memory_mallopt probe.
	* malloc/arena.c (_int_new_arena): Add memory_arena_new probe.
	* manual/probes.texi: New.
	* manual/Makefile (chapters): Add probes.
	* manual/threads.texi: Set next node.
2013-09-20 11:10:54 -03:00
Carlos O'Donell 3e181ddac9 Copy-edit NEWS and fixup ChangeLog entries. 2013-09-20 01:25:09 -04:00
Chris Leonard e35696c370 Update Changelog and NEWS 2013-09-20 00:32:58 -04:00
Chris Leonard 354a7a548f Update iso-639.def 2013-09-19 20:34:03 -04:00
Siddhesh Poyarekar 4aafb73cb2 Consolidate common code into macros
Consolidated common Taylor series polynomials into macros in s_sin.c
to make it a bit cleaner.
2013-09-19 20:34:45 +05:30
Liubov Dmitrieva d84f25c7d8 Fix buffer overrun in strtod_l 2013-09-19 16:52:04 +04:00
Siddhesh Poyarekar 7849ff938c Add benchmark inputs for sincos 2013-09-19 16:55:27 +05:30
Siddhesh Poyarekar cfa3c8865f New test cases for sin and cos for multiple precision fallback 2013-09-19 16:54:24 +05:30
Siddhesh Poyarekar b348e1e3a6 Consolidate sin/cos table lookup code 2013-09-19 16:51:02 +05:30
Siddhesh Poyarekar 6cce25f814 Consolidate sin/cos computation for large inputs 2013-09-19 16:45:27 +05:30
Siddhesh Poyarekar 5eea0404a8 Remove redundant goto lines 2013-09-19 16:43:53 +05:30
Maxim Kuvyrkov 8a85c1b357 Add BZ #15640 to resolved bug list in NEWS. 2013-09-19 19:55:50 +12:00
Maxim Kuvyrkov d70d6205fa Improve atomic locking for ARM.
[BZ #15640]
	* sysdeps/arm/bits/atomic.h (atomic_exchange_acq, atomic_exchange_rel)
	(atomic_compare_and_exchange_bool_acq)
	(atomic_compare_and_exchange_val_acq)
	(atomic_compare_and_exchange_bool_rel)
	(atomic_compare_and_exchange_val_rel): Use __atomic_exchange_n and
	__atomic_compare_exchange_n builtins when GCC supports them.
2013-09-19 18:50:17 +12:00
Maciej W. Rozycki 9c21573c02 MIPS: IEEE 754-2008 NaN encoding support
It has been a long practice for software using IEEE 754 floating-point
arithmetic run on MIPS processors to use an encoding of Not-a-Number
(NaN) data different to one used by software run on other processors.
And as of IEEE 754-2008 revision [1] this encoding does not follow one
recommended in the standard, as specified in section 6.2.1, where it
is stated that quiet NaNs should have the first bit (d1) of their
significand set to 1 while signalling NaNs should have that bit set to
0, but MIPS software interprets the two bits in the opposite manner.

As from revision 3.50 [2][3] the MIPS Architecture provides for
processors that support the IEEE 754-2008 preferred NaN encoding format.
As the two formats (further referred to as "legacy NaN" and "2008 NaN")
are incompatible to each other, tools have to provide support for the
two formats to help people avoid using incompatible binary modules.

The change is comprised of two functional groups of features, both of
which are required for correct support.

1. Dynamic linker support.

   To enforce the NaN encoding requirement in dynamic linking a new ELF
   file header flag has been defined.  This flag is set for 2008-NaN
   shared modules and executables and clear for legacy-NaN ones.  The
   dynamic linker silently ignores any incompatible modules it
   encounters in dependency processing.

   To avoid unnecessary processing of incompatible modules in the
   presence of a shared module cache, a set of new cache flags has been
   defined to mark 2008-NaN modules for the three ABIs supported.
   Changes to sysdeps/unix/sysv/linux/mips/readelflib.c have been made
   following an earlier code quality suggestion made here:

   http://sourceware.org/ml/libc-ports/2009-03/msg00036.html

   and are therefore a little bit more extensive than the minimum
   required.

   Finally a new name has been defined for the dynamic linker so that
   2008-NaN and legacy-NaN binaries can coexist on a single system that
   supports dual-mode operation and that a legacy dynamic linker that
   does not support verifying the 2008-NaN ELF file header flag is not
   chosen to interpret a 2008-NaN binary by accident.

2. Floating environment support.

   IEEE 754-2008 features are controlled in the Floating-Point Control
   and Status (FCSR) register and updates are needed to floating
   environment support so that the 2008-NaN flag is set correctly and
   the kernel default, inferred from the 2008-NaN ELF file header flag
   at the time an executable is loaded, respected.

As the NaN encoding format is a property of GCC code generation that is
both a user-selected GCC configuration default and can be overridden
with GCC options, code that needs to know what NaN encoding standard it
has been configured for checks for the __mips_nan2008 macro that is
defined internally by GCC whenever the 2008-NaN mode has been selected.
This mode is determined at the glibc configuration time and therefore a
few consistency checks have been added to catch cases where compilation
flags have been overridden by the user.

The 2008 NaN set of features relies on kernel support as the in-kernel
floating-point emulator needs to be aware of the NaN encoding used even
on hard-float processors and configure the FPU context according to the
value of the 2008 NaN ELF file header flag of the executable being
started.  As at this time work on kernel support is still in progress
and the relevant changes have not made their way yet to linux.org master
repository.

Therefore the minimum version supported has been artificially set to
10.0.0 so that 2008-NaN code is not accidentally run on a Linux kernel
that does not suppport it.  It is anticipated that the version is
adjusted later on to the actual initial linux.org kernel version to
support this feature.  Legacy NaN encoding support is unaffected, older
kernel versions remain supported.

[1] "IEEE Standard for Floating-Point Arithmetic", IEEE Computer
    Society, IEEE Std 754-2008, 29 August 2008

[2] "MIPS Architecture For Programmers, Volume I-A: Introduction to the
    MIPS32 Architecture", MIPS Technologies, Inc., Document Number:
    MD00082, Revision 3.50, September 20, 2012

[3] "MIPS Architecture For Programmers, Volume I-A: Introduction to the
    MIPS64 Architecture", MIPS Technologies, Inc., Document Number:
    MD00083, Revision 3.50, September 20, 2012
2013-09-18 21:33:50 +01:00
Joseph Myers 24d22e65b3 e500 port: fpu_control.h. 2013-09-18 14:47:49 +00:00
Joseph Myers 2e071de0f7 e500 port: setjmp/longjmp. 2013-09-18 14:46:57 +00:00
Joseph Myers d13ef0662f Don't force -msoft-float for powerpc --without-fp. 2013-09-18 14:44:34 +00:00
Siddhesh Poyarekar 97a0650b8a Format sincos32.c 2013-09-18 13:01:34 +05:30
Joseph Myers 11ca09e932 Fix powerpc fpu_control.h namespace and parenthesis issues (bug 15966). 2013-09-17 21:28:19 +00:00
Will Newton cd90698b54 ARM: Improve armv7 memcpy performance.
Only enter the aligned copy loop with buffers that can be 8-byte
aligned. This improves performance slightly on Cortex-A9 and
Cortex-A15 cores for large copies with buffers that are 4-byte
aligned but not 8-byte aligned.

ports/ChangeLog.arm:

2013-09-16  Will Newton  <will.newton@linaro.org>

	* sysdeps/arm/armv7/multiarch/memcpy_impl.S: Tighten check
	on entry to aligned copy loop to improve performance.
2013-09-16 17:55:28 +01:00
Chris Leonard f06dd27b0c Adjust language-code fields of LC_ADDRESS. 2013-09-15 20:02:32 -04:00
Chris Leonard 0434d238d3 Add country_car field to LC_ADDRESS. 2013-09-15 15:06:27 -04:00
Richard Sandiford 08ffcf34d9 Fix some types in localedef. 2013-09-13 23:31:10 +00:00
Will Newton ba0d798c17 Add CVE-2013-4332 to NEWS. 2013-09-13 09:26:02 +01:00
Jia Liu ae7080d30c sunrpc/rpc/types.h: fix OS X and FreeBSD build problems
When I build arm-linux-gcc on OS X, I find glibc will get a build error
in sunrpc/rpc/types.h, so I add __APPLE_CC__ to make OS X build OK.
For FreeBSD, Add __FreeBSD__ to make it build OK, too.

URL: http://sourceware.org/ml/libc-alpha/2013-09/msg00155.html
URL: http://sourceware.org/ml/libc-alpha/2013-09/msg00217.html
URL: http://sourceware.org/ml/libc-alpha/2013-09/msg00240.html
Signed-off-by: Jia Liu <proljc@gmail.com>
Signed-off-by: Mike Frysinger <vapier@gentoo.org>
2013-09-11 18:37:21 -04:00
Ondřej Bílka 5905e7b3e2 Faster strchr implementation. 2013-09-11 17:07:38 +02:00
Will Newton b987c77672 benchtests: Rename argument to TIMING_INIT macro.
The TIMING_INIT macro currently sets the number of loop iterations
to 1000, which limits usefulness. Make the argument a clock
resolution value and multiply by 1000 in bench-skeleton.c instead
to allow easier reuse.

ChangeLog:

2013-09-11  Will Newton  <will.newton@linaro.org>

	* benchtests/bench-timing.h (TIMING_INIT): Rename ITERS
	parameter to RES. Remove hardcoded 1000 value.
	* benchtests/bench-skeleton.c (main): Pass RES parameter
	to TIMING_INIT and multiply result by 1000.
2013-09-11 15:18:20 +01:00
Will Newton c0e0f3b297 Mention closing 15855, 15856 and 15857 in NEWS. 2013-09-11 15:12:41 +01:00
Adhemerval Zanella ddf985af47 Update powerpc-fpu ULPs. 2013-09-11 07:38:57 -05:00
Andreas Schwab ffdd31816a Add O_TMPFILE to <fcntl.h> 2013-09-11 11:52:46 +02:00
Will Newton b73ed24778 malloc: Check for integer overflow in memalign.
A large bytes parameter to memalign could cause an integer overflow
and corrupt allocator internals. Check the overflow does not occur
before continuing with the allocation.

ChangeLog:

2013-09-11  Will Newton  <will.newton@linaro.org>

	[BZ #15857]
	* malloc/malloc.c (__libc_memalign): Check the value of bytes
	does not overflow.
2013-09-11 09:42:43 +01:00
Will Newton 55e17aadc1 malloc: Check for integer overflow in valloc.
A large bytes parameter to valloc could cause an integer overflow
and corrupt allocator internals. Check the overflow does not occur
before continuing with the allocation.

ChangeLog:

2013-09-11  Will Newton  <will.newton@linaro.org>

	[BZ #15856]
	* malloc/malloc.c (__libc_valloc): Check the value of bytes
	does not overflow.
2013-09-11 09:41:04 +01:00
Will Newton 1159a19369 malloc: Check for integer overflow in pvalloc.
A large bytes parameter to pvalloc could cause an integer overflow
and corrupt allocator internals. Check the overflow does not occur
before continuing with the allocation.

ChangeLog:

2013-09-11  Will Newton  <will.newton@linaro.org>

	[BZ #15855]
	* malloc/malloc.c (__libc_pvalloc): Check the value of bytes
	does not overflow.
2013-09-11 09:39:40 +01:00
Ondřej Bílka c7cabd1355 Remove DO_NOT_USE_THIS conditionals. 2013-09-10 19:15:33 +02:00
Allan McRae aa04af0078 Clarify documentation cross-reference
The end of the "Parsing of Floats" subsection currently reads:

   The GNU C Library also provides '_l' versions of these functions,
which take an additional argument, the locale to use in conversion.
*Note Parsing of Integers::.

Split the final note as it is unrelated to the above comment and
reference it with "See also" instead.
2013-09-10 14:13:40 +10:00
Allan McRae cdfc721b8d Update pt_chown sections of the manual
The pt-chown binary is discussed in the "Running make install" section
without clarification of the needed configure option.  Clarify this
and simplfy the discription which is already covered in the "Configuring
and compiling" section.
2013-09-10 14:11:39 +10:00
Maciej W. Rozycki 95e7cf295e Fix static-binary lazy FPU context allocation
Long ago static startup did not parse the auxiliary vector and therefore
could not get at any `AT_FPUCW' tag to check whether upon FPU context
allocation the kernel would use a FPU control word setting different to
that provided by the `__fpu_control' variable.  Static startup therefore
always initialized the FPU control word, forcing immediate FPU context
allocation even for binaries that otherwise never used the FPU.

As from GIT commit f8f900ecb9 static
startup supports parsing the auxiliary vector, so now it can avoid
explicit initialization of the FPU control word, just as can dynamic
startup, in the usual case where the setting written to the FPU control
word would be the same as the kernel uses.  This defers FPU context
allocation until the binary itself actually pokes at the FPU.

Note that the `AT_FPUCW' tag is usually absent from the auxiliary vector
in which case _FPU_DEFAULT is assumed to be the kernel default.
2013-09-09 22:36:57 +01:00
Allan McRae a9f5ce099c Fix typo in strcoll example 2013-09-09 22:56:38 +10:00
Allan McRae 34829bc28f Fix memory leak in stdlib/isomac.c 2013-09-09 22:53:46 +10:00
Allan McRae 3932737df1 Fix memory leaks in libio on allocation failure 2013-09-09 22:52:25 +10:00
Allan McRae 83e43bf0b7 Fix nesting of ifdefs in netgroupcache.c
Fixes unclosed '{' if HAVE_SENDFILE is defined (BZ #15895).
2013-09-09 20:25:01 +10:00
Will Newton 0c66b8e985 malloc: Add realloc test.
The current tests don't test the functionality of realloc in detail.
Add a new test for realloc that exercises some of the corner cases
that are not otherwise tested.

ChangeLog:

2013-09-09  Will Newton  <will.newton@linaro.org>

	* malloc/Makefile: Add tst-realloc to tests.
	* malloc/tst-realloc.c: New file.
2013-09-09 09:20:09 +01:00
Allan McRae f6b00fd115 Update to latest versions of GPL-2.0 and LGPL-2.1
Pull copies of these files directly from the GNU website:
  http://www.gnu.org/licenses/gpl-2.0.txt
  http://www.gnu.org/licenses/lgpl-2.1.txt

Fixes the address of the Free Software Foundation (BZ #15844). Also
includes some minor formatting changes and corrects references to
the GNU "Library" General Public License.
2013-09-09 12:52:48 +10:00
Joseph Myers d4f66d37c4 Mention --disable-versioning removal in NEWS. 2013-09-07 15:58:42 +00:00
David S. Miller eec55e167f Update Chinese (traditional) translations.
* po/zh_TW.po: Update Chinese (traditional) translation from
	translation project.
2013-09-06 15:26:43 -04:00
Richard Sandiford 1ecbb381ae Make localedef output generation use more logical interfaces. 2013-09-06 17:20:45 +00:00
Chris Leonard 2618d9db2d Fix trailing whitespace 2013-09-06 11:55:30 -04:00