platform/upstream/glibc.git
9 years agoRename soft-fp op-[1248].h variables to avoid risk of shadowing.
Joseph Myers [Mon, 30 Jun 2014 17:37:10 +0000 (17:37 +0000)]
Rename soft-fp op-[1248].h variables to avoid risk of shadowing.

Continuing the soft-fp variable renaming from
<https://sourceware.org/ml/libc-alpha/2014-06/msg00434.html> to avoid
shadowing if two macros happen to use the same variable name and that
variable is involved in an argument one of those macros passes to
another, this patch renames variables in op-[1248].h.  (The two
patches are to different files and are independent of each other.)

Tested for powerpc32 (soft-float) and mips64 that this makes no change
to the disassembly of installed shared libraries.

* soft-fp/op-1.h (_FP_UNPACK_RAW_1): Rename local variables to
include macro name.
(_FP_UNPACK_RAW_1_P): Likewise.
(_FP_PACK_RAW_1): Likewise.
(_FP_PACK_RAW_1_P): Likewise.
(_FP_MUL_MEAT_1_wide): Likewise.
(_FP_MUL_MEAT_DW_1_hard): Likewise.
(_FP_MUL_MEAT_1_hard): Likewise.
(_FP_DIV_MEAT_1_imm): Likewise.
(_FP_DIV_MEAT_1_udiv_norm): Likewise.
(_FP_DIV_MEAT_1_udiv): Likewise.
* soft-fp/op-2.h (__FP_FRAC_DEC_2): Likewise.
(_FP_UNPACK_RAW_2): Likewise.
(_FP_UNPACK_RAW_2_P): Likewise.
(_FP_PACK_RAW_2): Likewise.
(_FP_PACK_RAW_2_P): Likewise.
(_FP_MUL_MEAT_DW_2_wide): Likewise.
(_FP_MUL_MEAT_2_wide): Likewise.
(_FP_MUL_MEAT_DW_2_wide_3mul): Likewise.
(_FP_MUL_MEAT_2_wide_3mul): Likewise.
(_FP_MUL_MEAT_DW_2_gmp): Likewise.
(_FP_MUL_MEAT_2_gmp): Likewise.
(_FP_DIV_MEAT_2_udiv): Likewise.
* soft-fp/op-4.h (_FP_FRAC_SLL_4): Likewise.
(_FP_FRAC_SRL_4): Likewise.
(_FP_FRAC_SRST_4): Likewise.
(_FP_FRAC_SRS_4): Likewise.
(_FP_UNPACK_RAW_4): Likewise.
(_FP_UNPACK_RAW_4_P): Likewise.
(_FP_PACK_RAW_4): Likewise.
(_FP_PACK_RAW_4_P): Likewise.
(_FP_MUL_MEAT_DW_4_wide): Likewise.
(_FP_MUL_MEAT_4_wide): Likewise.
(_FP_MUL_MEAT_4_gmp): Likewise.
(umul_ppppmnnn): Likewise.
(_FP_DIV_MEAT_4_udiv): Likewise.
(__FP_FRAC_ADD_4): Likewise.
(__FP_FRAC_SUB_3): Likewise.
(__FP_FRAC_SUB_4): Likewise.
(__FP_FRAC_DEC_3): Likewise.
(__FP_FRAC_DEC_4): Likewise.
(__FP_FRAC_ADDI_4): Likewise.
* soft-fp/op-8.h (_FP_FRAC_SLL_8): Likewise.
(_FP_FRAC_SRL_8): Likewise.
(_FP_FRAC_SRS_8): Likewise.

9 years agoRename soft-fp extended.h, op-common.h variables to avoid risk of shadowing.
Joseph Myers [Mon, 30 Jun 2014 17:36:18 +0000 (17:36 +0000)]
Rename soft-fp extended.h, op-common.h variables to avoid risk of shadowing.

In <https://sourceware.org/ml/libc-alpha/2013-06/msg00851.html>, I
fixed a bug caused by multiple soft-fp macros using the same variable
names, resulting in shadowing when one macro called another that used
the same variable name, with an argument involving the variable in the
outer macro.  The fix was to rename the local variables so their names
included the containing macro name, to ensure uniqueness.

I noted then that this would make sense more systematically for all
variables in any soft-fp macro.  Since then, I've used such variable
names in new soft-fp macros.  This patch now converts existing macros
in extended.h and op-common.h to use this convention.  (op-[1248].h
are intended to be converted separately.)

(Name conflicts could arise for label names as well, but because those
are function-scope in C any such conflict will give an immediate
compile error rather than a subtle bug, so there's no need for
preemptive renaming in that case.)

Tested for powerpc32 (soft-float) and mips64 that this makes no change
to the disassembly of installed shared libraries.

* soft-fp/extended.h (FP_UNPACK_RAW_E): Rename local variables to
include macro name.
(FP_UNPACK_RAW_EP): Likewise.
(FP_PACK_RAW_E): Likewise.
(FP_PACK_RAW_EP): Likewise.
* soft-fp/op-common.h (_FP_UNPACK_CANONICAL): Likewise.
(_FP_ISSIGNAN): Likewise.
(_FP_ADD_INTERNAL): Likewise.
(_FP_FMA): Likewise.
(_FP_CMP): Likewise.
(_FP_SQRT): Likewise.
(_FP_TO_INT): Likewise.
(_FP_FROM_INT): Likewise.
(FP_EXTEND): Likewise.
(_FP_DIV_MEAT_N_loop): Likewise.

9 years agosysdeps/unix/sysv/linux/bits/socket.h: Correct formatting
Maciej W. Rozycki [Mon, 30 Jun 2014 09:38:49 +0000 (10:38 +0100)]
sysdeps/unix/sysv/linux/bits/socket.h: Correct formatting

* sysdeps/unix/sysv/linux/bits/socket.h: Adjust macro formatting
throughout.

9 years agoFix ldbl-128 powl sign of result in overflow / underflow cases (bug 17097).
Joseph Myers [Sun, 29 Jun 2014 11:49:08 +0000 (11:49 +0000)]
Fix ldbl-128 powl sign of result in overflow / underflow cases (bug 17097).

This patch fixes bug 17097, ldbl-128 powl producing overflowing /
underflowing results with positive sign when the result should have
been negative.  This was shown up by the tests in non-default rounding
modes added by my patch for bug 16315, but isn't actually limited to
non-default rounding modes: rather, when rounding to nearest the
wrappers produced a result with the correct sign and so always hid the
bug unless -lieee was used to disable the wrappers.  The problem is
that in the cases where Y is large enough that the result overflows or
underflows for X not very close to 1, but not large enough to overflow
or underflow for all X != +/- 1 (in the latter case Y is always an
even integer), a positive overflowing / underflowing result is always
returned, rather than one with the correct sign.  This patch moves the
relevant part of computation of the sign earlier and returns a result
of the correct sign.

Tested for mips64.

[BZ #17097]
* sysdeps/ieee754/ldbl-128/e_powl.c (__ieee754_powl): Return
result with correct sign in case of exponents that produce
overflow except for X very close to 1.

9 years agoSync up mktime with gnulib
Paul Eggert [Sat, 28 Jun 2014 00:45:54 +0000 (06:15 +0530)]
Sync up mktime with gnulib

From the gnulib commit log:

commit e2646b0c6b5acda25e9ffeb4c12a5513a1e3b5ac
Author: Paul Eggert <eggert@cs.ucla.edu>
Date:   Fri Jun 27 11:35:44 2014 -0700

    mktime: merge #if/#ifdef usage from glibc

    * lib/mktime.c: Use "#if defined DEBUG && DEBUG", not "#if DEBUG",
    as that works with both Glibc's and Gnulib's style.
    See thread starting at Siddhesh Poyarekar's bug report at:
    http://lists.gnu.org/archive/html/bug-gnulib/2014-06/msg00102.html

9 years agoFix Wundef warning for MEMCPY_OK_FOR_FWD_MEMMOVE
Siddhesh Poyarekar [Sat, 28 Jun 2014 00:35:24 +0000 (06:05 +0530)]
Fix Wundef warning for MEMCPY_OK_FOR_FWD_MEMMOVE

Define MEMCPY_OK_FOR_FWD_MEMMOVE in memcopy.h and let arch-specific
implementations of that file override the value if necessary.  This
override is only useful for tile and moving this macro to memcopy.h
allows us to remove the tile-specific memmove.c.

9 years agoRemove shlib-versions ABI names support.
Joseph Myers [Fri, 27 Jun 2014 20:24:23 +0000 (20:24 +0000)]
Remove shlib-versions ABI names support.

shlib-versions files can contain ABI lines that map triplets to a
canonical ABI name.  This name was once used for various purposes
where test baseline files for different ABIs went in a single
directory; now these purposes use sysdeps files, generation of headers
which have per-ABI variants uses abi-variants and related Makefile
variables and the shlib-versions ABI names are unused.  This patch
duly removes those lines and associated build system support for them.

Tested for x86_64 (both a full testsuite run and confirming the
installed shared libraries are unchanged by the patch).

* Makeconfig ($(common-objpfx)soversions.mk): Do not generate
abi-name definition.
* scripts/soversions.awk: Do not handle or generate ABI lines.
* shlib-versions: Remove ABI entries.
* sysdeps/powerpc/nofpu/shlib-versions: Remove file.
* sysdeps/x86_64/x32/shlib-versions: Remove ABI entry.

9 years agoMIPS: Consolidate nptl/ subdirectories under linux/...
Roland McGrath [Fri, 27 Jun 2014 18:41:04 +0000 (11:41 -0700)]
MIPS: Consolidate nptl/ subdirectories under linux/...

9 years agoMIPS: Consolidate NPTL/non versions of vfork
Roland McGrath [Fri, 27 Jun 2014 16:58:51 +0000 (09:58 -0700)]
MIPS: Consolidate NPTL/non versions of vfork

9 years agoCorrectly report nscd child process status (BZ #17092)
Arjun Shankar [Fri, 27 Jun 2014 18:01:47 +0000 (23:31 +0530)]
Correctly report nscd child process status (BZ #17092)

The nscd parent process returns the result of a `wait' call rather
than the exit status of the child it waits for. These two aren't
exactly the same. In my case (and probably on most machines), the exit
status is in the 2nd LSB of the result of `wait', and so:

e.g. if the nscd child process returns 1, the parent returns 1 << 8,
which Bash happily reports as 0.

9 years agoRemove relro configure test.
Joseph Myers [Fri, 27 Jun 2014 16:51:22 +0000 (16:51 +0000)]
Remove relro configure test.

This patch removes the configure test for working -z relro.

The use of -z relro in Makeconfig became unconditional with

commit 2e6ab1df44c412bb9d30b26a4d8a679150a7e375
Author: Ulrich Drepper <drepper@redhat.com>
Date:   Sat Oct 28 06:44:04 2006 +0000

    Remove conditional code which now is unnecessary.

(commit reference from git://repo.or.cz/glibc/history), so since then
the configure test has not controlled anything about how glibc is
built - simply about whether configure succeeds and allows a build to
be attempted.  The test for whether the option did something useful
(as opposed to whether it exists - which we can certainly just assume
by now) was originally added in
<https://sourceware.org/ml/libc-hacker/2004-09/msg00069.html> to
disable the option in a case when it did nothing useful on ia64 (as a
result of something deliberate in the linker on ia64).  Since 2006
that disabling has been of no effect, and given that the current test
does not set libc_relro_required for ia64, it does nothing whatever
useful for the original motivating case.  Also at around the same time
in 2006 the test was made to give an error for missing or broken -z
relro support on various architectures.

So effectively all the test does now is verify that, on certain
architectures, the linker has not been changed deliberately to make
the option ineffective.  I see no apparent reason why such a change
should be expected, or why the build should be stopped if it were to
be made (any more than we disallow build on ia64); I think we can
trust binutils patch review to point out the consequences of any
change to COMMONPAGESIZE setting.  The only thing that might now make
sense would be disabling the -z relro use on an architecture-specific
basis if there were an architecture-specific reason to consider that
to make sense; it would be for the ia64 maintainer to decide if that
makes sense for ia64 at present, but I think that could be done
through sysdeps Makefiles - no special configure tests needed.

Tested for x86_64 that this patch makes no change to the installed
shared libraries.

Together with
<https://sourceware.org/ml/libc-alpha/2014-06/msg00788.html> (pending
review) this substantially eliminates architecture-specific cases from
architecture-independent configure.ac files.  There remains an i386
case in sysdeps/mach/hurd/configure.ac that should properly move to
the i386 subdirectory.  (There are also OS-specific cases outside
OS-specific directories; in principle I think should should also
move.)

* configure.ac (libc_commonpagesize): Remove variable.
(libc_relro_required): Likewise.
(libc_cv_z_relro): Remove configure test.
* configure: Regenerated.
* sysdeps/aarch64/preconfigure (libc_commonpagesize): Do not set
variable.
(libc_relro_required): Likewise.
* sysdeps/alpha/preconfigure (libc_commonpagesize): Likewise.
(libc_relro_required): Likewise.
* sysdeps/arm/preconfigure.ac (libc_commonpagesize): Likewise.
(libc_relro_required): Likewise.
* sysdeps/arm/preconfigure: Regenerated.
* sysdeps/ia64/preconfigure: Remove file.
* sysdeps/tile/preconfigure (libc_commonpagesize): Do not set
variable.
(libc_relro_required): Likewise.

9 years agoFix yn overflow handling in non-default rounding modes (bug 16561, bug 16562).
Joseph Myers [Fri, 27 Jun 2014 14:52:13 +0000 (14:52 +0000)]
Fix yn overflow handling in non-default rounding modes (bug 16561, bug 16562).

This patch fixes bugs 16561 and 16562, bad results of yn in overflow
cases in non-default rounding modes, both because an intermediate
overflow in the recurrence does not get detected if the result is not
an infinity and because an overflowing result may occur in the wrong
sign.  The fix is to set FE_TONEAREST mode internally for the parts of
the function where such overflows can occur (which includes the call
to y1 - where yn is used to compute a Bessel function of order -1,
negating the result of y1 isn't correct for overflowing results in
directed rounding modes) and then compute an overflowing value in the
original rounding mode if the to-nearest result was an infinity.

Tested x86_64 and x86 and ulps updated accordingly.  Also tested for
mips64 and powerpc32 to test the ldbl-128 and ldbl-128ibm changes.

(The tests for these bugs were added in my previous y1 patch, so the
only thing this patch has to do with the testsuite is enable yn
testing in all rounding modes.)

[BZ #16561]
[BZ #16562]
* sysdeps/ieee754/dbl-64/e_jn.c: Include <float.h>.
(__ieee754_yn): Set FE_TONEAREST mode internally and then
recompute overflowing results in original rounding mode.
* sysdeps/ieee754/flt-32/e_jnf.c: Include <float.h>.
(__ieee754_ynf): Set FE_TONEAREST mode internally and then
recompute overflowing results in original rounding mode.
* sysdeps/ieee754/ldbl-128/e_jnl.c: Include <float.h>.
(__ieee754_ynl): Set FE_TONEAREST mode internally and then
recompute overflowing results in original rounding mode.
* sysdeps/ieee754/ldbl-128ibm/e_jnl.c: Include <float.h>.
(__ieee754_ynl): Set FE_TONEAREST mode internally and then
recompute overflowing results in original rounding mode.
* sysdeps/ieee754/ldbl-96/e_jnl.c: Include <float.h>.
(__ieee754_ynl): Set FE_TONEAREST mode internally and then
recompute overflowing results in original rounding mode.
* sysdeps/i386/fpu/fenv_private.h [!__SSE2_MATH__]
(libc_feholdsetround_ctx): New macro.
* math/libm-test.inc (yn_test): Use ALL_RM_TEST.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps : Likewise.

9 years agoFix MIPS64 *_nocancel gp setup.
Joseph Myers [Thu, 26 Jun 2014 23:55:46 +0000 (23:55 +0000)]
Fix MIPS64 *_nocancel gp setup.

The 64-bit MIPS ABIs involve the caller setting up t9 ($25) to the
address of the called function, and the called function then using
this in a .cpsetup directive to compute gp.  The .cpsetup directive
needs to name the function to which t9 points for this purpose.  In
the definition of *_nocancel functions, the directive pointed to the
normal entry point rather than the _nocancel one, resulting in
segfaults when the _nocancel functions were used.  This patch corrects
the function name used in the directive.  (It seems the bug was latent
until Roland's not-cancel.h unification, with the _nocancel entry
points not previously being used - so not user-visible in a release,
so no Bugzilla entry required.)

Tested mips64 sufficiently to confirm the previously seen segfaults
are fixed.

* sysdeps/unix/sysv/linux/mips/mips64/nptl/sysdep-cancel.h
[__PIC__] (PSEUDO): Use name of _nocancel entry point in
corresponding .cpsetup call.

9 years agoARM: Move more aeabi routine magic out of Linux-specific directories
Roland McGrath [Thu, 26 Jun 2014 22:08:29 +0000 (15:08 -0700)]
ARM: Move more aeabi routine magic out of Linux-specific directories

9 years agoUpdate scripts/list-sources.sh for ports repository merge.
Joseph Myers [Thu, 26 Jun 2014 21:30:07 +0000 (21:30 +0000)]
Update scripts/list-sources.sh for ports repository merge.

scripts/list-sources.sh includes handling of ports that has been
obsolete ever since the ports repository was merged into the libc
repository.  This patch removes that handling.

Tested by regenerating libc.pot and examining the resulting changes.

* scripts/list-sources.sh: Do not handle ports specially.

9 years agoAdd missing #include <fpu_control.h> to ARM fesetenv/feupdateenv.
Roland McGrath [Thu, 26 Jun 2014 20:35:31 +0000 (13:35 -0700)]
Add missing #include <fpu_control.h> to ARM fesetenv/feupdateenv.

9 years agoAdd missing #include in spawn_faction_addopen.c
Roland McGrath [Thu, 26 Jun 2014 20:21:58 +0000 (13:21 -0700)]
Add missing #include in spawn_faction_addopen.c

9 years agoUpdate miscellaneous files from upstream sources.
Joseph Myers [Thu, 26 Jun 2014 20:13:44 +0000 (20:13 +0000)]
Update miscellaneous files from upstream sources.

This patch updates miscellaneous files from their upstream sources:
texinfo.tex from Texinfo, config.guess and config.sub from config.git,
install-sh from automake and move-if-change from gnulib.

Tested x86_64 that installed shared libraries are unchanged by the
patch; also looked at the generated libc.pdf manual.

* manual/texinfo.tex: Update to version 2014-05-05.10 with
trailing whitespace removed.
* scripts/config.guess: Update to version 2014-03-23.
* scripts/config.sub: Update to version 2014-05-01
* scripts/install-sh: Update to version 2013-12-25.23.
* scripts/move-if-change: Update from gnulib.

9 years agoCorrectly attribute the mktime.c change to Paul Eggert
Siddhesh Poyarekar [Thu, 26 Jun 2014 18:37:20 +0000 (00:07 +0530)]
Correctly attribute the mktime.c change to Paul Eggert

I mentioned it on the list, but forgot to put that in the changelog.

9 years agoRemove unnecessary include in memmove_chk
Siddhesh Poyarekar [Thu, 26 Jun 2014 18:31:37 +0000 (00:01 +0530)]
Remove unnecessary include in memmove_chk

This also has the side-effect of fixing a couple of Wundef warnings
raised from pagecopy.h.  The generated code is identical before and
after this patch.

9 years agoRemove inline keyword from leapyear function
Siddhesh Poyarekar [Thu, 26 Jun 2014 18:30:06 +0000 (00:00 +0530)]
Remove inline keyword from leapyear function

This syncs up the code with gnulib.

9 years agoRemove powerpc special cases in configure.ac.
Joseph Myers [Thu, 26 Jun 2014 17:34:27 +0000 (17:34 +0000)]
Remove powerpc special cases in configure.ac.

This patch removes two powerpc special cases in the main configure.ac.
The test for rs6000 is irrelevant to currently supported
configurations (config.guess reports rs6000 for some OSes, of which
the only one currently supported by GCC is AIX, but not for Linux).
There's no need either for a special case for powerpc*-*soft;
--without-fp suffices, and GCC doesn't have any special handling of
such a triplet.

Not tested.

* configure.ac: Do not test for machine being rs6000.  Do not test
for powerpc*-*soft.
* configure: Regenerated.

9 years agoRemove configure tests for assembler CFI support.
Joseph Myers [Thu, 26 Jun 2014 17:33:32 +0000 (17:33 +0000)]
Remove configure tests for assembler CFI support.

This patch removes configure tests for assembler CFI support (and
thereby eliminates an architecture-specific case in the main
configure.ac), instead assuming that support is present
unconditionally.

The main test was added in 2003 around the time CFI support was added
to the assembler.  cfi_personality and cfi_lsda support were added to
the assembler in 2006.  cfi_sections support was added in 2009, a few
weeks before binutils 2.20 was released; it's in 2.20, the minimum
supported version, so even that configure test is obsolete.

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

* configure.ac (libc_cv_asm_cfi_directives): Remove configure
test.
* configure: Regenerated.
* config.h.in (HAVE_ASM_CFI_DIRECTIVES): Remove macro undefine.
* sysdeps/arm/configure.ac (libc_cv_asm_cfi_directive_sections):
Remove configure test.
* sysdeps/arm/configure: Regenerated.
* sysdeps/nptl/configure.ac: Do not check
libc_cv_asm_cfi_directives.
* sysdeps/nptl/configure: Regenerated.
* sysdeps/x86_64/nptl/configure.ac: Remove file.
* sysdeps/x86_64/nptl/configure: Remove generated file.
* b/sysdeps/generic/sysdep.h [HAVE_ASM_CFI_DIRECTIVES]: Make code
unconditional.
[!HAVE_ASM_CFI_DIRECTIVES]: Remove conditional code.

9 years agoFix Wundef warning for WIDE_CHAR_VERSION
Siddhesh Poyarekar [Thu, 26 Jun 2014 15:10:46 +0000 (20:40 +0530)]
Fix Wundef warning for WIDE_CHAR_VERSION

fnmatch.c defines WIDE_CHAR_VERSION as 1 for wide chars, but does not
define it for the non-wide char bits.  Define it and also undef it in
fnmatch_loop.c like all other macros.

9 years agoFix Wundef warning for ELF_MACHINE_NO_RELA
Siddhesh Poyarekar [Thu, 26 Jun 2014 09:47:40 +0000 (15:17 +0530)]
Fix Wundef warning for ELF_MACHINE_NO_RELA

This patch defines ELF_MACHINE_NO_RELA on all architectures.  Tested
only on x86_64 to verify that the sources before and after are
identical except for two instructions that pass the current line
number in dl-machine.h to assert_fail.

9 years agoFix Wundef warning for SEPARATE_KEY
Siddhesh Poyarekar [Thu, 26 Jun 2014 08:40:07 +0000 (14:10 +0530)]
Fix Wundef warning for SEPARATE_KEY

The SEPARATE_KEY macro is never defined in any condition or
architecture.  It is effectively dead code, so remove it.

9 years agoS390: Consolidate nptl/ subdirectories under linux/...
Roland McGrath [Thu, 26 Jun 2014 16:34:34 +0000 (09:34 -0700)]
S390: Consolidate nptl/ subdirectories under linux/...

9 years agoMove remaining S390 code out of nptl/.
Roland McGrath [Thu, 26 Jun 2014 16:31:11 +0000 (09:31 -0700)]
Move remaining S390 code out of nptl/.

9 years agoS390: Consolidate NPTL/non versions of vfork
Roland McGrath [Thu, 26 Jun 2014 16:30:52 +0000 (09:30 -0700)]
S390: Consolidate NPTL/non versions of vfork

9 years agoS390: Consolidate NPTL/non versions of clone
Roland McGrath [Thu, 26 Jun 2014 16:30:33 +0000 (09:30 -0700)]
S390: Consolidate NPTL/non versions of clone

9 years agoAArch64: Consolidate nptl/ subdirectories under linux/...
Roland McGrath [Thu, 26 Jun 2014 16:29:24 +0000 (09:29 -0700)]
AArch64: Consolidate nptl/ subdirectories under linux/...

9 years agoMIPS: Consolidate NPTL/non versions of clone
Roland McGrath [Wed, 25 Jun 2014 21:50:58 +0000 (14:50 -0700)]
MIPS: Consolidate NPTL/non versions of clone

9 years agoRemove __ASSUME_O_CLOEXEC / O_CLOEXEC conditionals in sysdeps/unix/sysv/linux/.
Joseph Myers [Wed, 25 Jun 2014 20:29:45 +0000 (20:29 +0000)]
Remove __ASSUME_O_CLOEXEC / O_CLOEXEC conditionals in sysdeps/unix/sysv/linux/.

This patch removes conditionals on __ASSUME_O_CLOEXEC, and on
O_CLOEXEC being defined, in sysdeps/unix/sysv/linux/, now that
O_CLOEXEC support can be unconditionally assumed.

The patch is conservative in what it changes and further followup
cleanups may be possible.  It may be possible to remove dl-opendir.c,
but the patch does not do so, just removing a redundant undefine and
redefine of __ASSUME_O_CLOEXEC.  Also, __ASSUME_O_CLOEXEC is defined
unconditionally for Hurd as well as Linux.  Thus, if we decide that
O_CLOEXEC support is a required feature of any glibc port, we could
remove __ASSUME_O_CLOEXEC and all conditionals on it throughout glibc,
rather than just cleaning up sysdeps/unix/sysv/linux/.

Tested x86_64 that the disassembly of installed shared libraries is
unchanged by this patch.

* sysdeps/unix/sysv/linux/dl-opendir.c (__ASSUME_O_CLOEXEC): Do
not undefine and redefine.
* sysdeps/unix/sysv/linux/getsysstats.c (__get_nprocs)
[O_CLOEXEC]: Make code unconditional.
(__get_nprocs) [!O_CLOEXEC]: Remove conditional code.
* sysdeps/unix/sysv/linux/shm_open.c: Do not include
<kernel-features.h>.
[O_CLOEXEC && !__ASSUME_O_CLOEXEC] (have_o_cloexec): Remove
conditional variable definition.
(shm_open) [O_CLOEXEC]: Make code unconditional.
(shm_open) [!O_CLOEXEC || !__ASSUME_O_CLOEXEC]: Remove conditional
code.

9 years agoMove USE_REGPARMS define to sysdeps/i386/configure.ac.
Joseph Myers [Wed, 25 Jun 2014 20:26:14 +0000 (20:26 +0000)]
Move USE_REGPARMS define to sysdeps/i386/configure.ac.

This patch moves the USE_REGPARMS define from the toplevel
configure.ac to sysdeps/i386/configure.ac.

Tested x86 that the disassembly of installed shared libraries is
unchanged by this patch.

* configure.ac (USE_REGPARMS): Don't define here.
* configure: Regenerated.
* sysdeps/i386/configure.ac (USE_REGPARMS): Define here.
* sysdeps/i386/configure: Regenerated.

9 years agoRemove stray includes of kernel-features.h.
Joseph Myers [Wed, 25 Jun 2014 18:09:01 +0000 (18:09 +0000)]
Remove stray includes of kernel-features.h.

Now that files using __ASSUME_* macros have been made by
<https://sourceware.org/ml/libc-alpha/2014-06/msg00543.html> to
include <kernel-features.h> directly, any include from a file not
using __ASSUME_* macros can safely be removed (as there will no longer
be some other file relying on indirect inclusion via a header from
which the include is being removed).

This patch removes such unnecessary kernel-features.h includes.

Tested x86_64 that disassembly of installed shared libraries is
unchanged by this patch, except for line numbers in calls to
__assert_fail from libc.so and ld.so.

2014-06-23  Joseph Myers  <joseph@codesourcery.com>

* nptl/createthread.c: Don't include kernel-features.h.
* nptl/pthread_cancel.c: Likewise.
* nptl/pthread_condattr_setclock.c: Likewise.
* nptl/sysdeps/unix/sysv/linux/pt-raise.c: Likewise.
* nptl/sysdeps/unix/sysv/linux/pthread_getcpuclockid.c: Likewise.
* nptl/sysdeps/unix/sysv/linux/pthread_kill.c: Likewise.
* nptl/sysdeps/unix/sysv/linux/pthread_sigqueue.c: Likewise.
* nptl/sysdeps/unix/sysv/linux/raise.c: Likewise.
* nptl/sysdeps/unix/sysv/linux/s390/s390-32/pt-vfork.S: Likewise.
* nptl/sysdeps/unix/sysv/linux/s390/s390-32/vfork.S: Likewise.
* nptl/sysdeps/unix/sysv/linux/s390/s390-64/pt-vfork.S: Likewise.
* nptl/sysdeps/unix/sysv/linux/s390/s390-64/vfork.S: Likewise.
* nptl/sysdeps/unix/sysv/linux/timer_create.c: Likewise.
* nptl/sysdeps/unix/sysv/linux/timer_delete.c: Likewise.
* nptl/sysdeps/unix/sysv/linux/timer_getoverr.c: Likewise.
* nptl/sysdeps/unix/sysv/linux/timer_gettime.c: Likewise.
* nptl/sysdeps/unix/sysv/linux/timer_routines.c: Likewise.
* nptl/sysdeps/unix/sysv/linux/timer_settime.c: Likewise.
* nscd/gai.c: Likewise.
* nss/nss_db/db-open.c: Likewise.
* sysdeps/generic/ldsodefs.h: Likewise.
* sysdeps/sh/nptl/tls.h: Likewise.
* sysdeps/unix/sysv/linux/aarch64/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/aarch64/sigcontextinfo.h: Likewise.
* sysdeps/unix/sysv/linux/aarch64/vfork.S: Likewise.
* sysdeps/unix/sysv/linux/adjtime.c: Likewise.
* sysdeps/unix/sysv/linux/alpha/xstatconv.h: Likewise.
* sysdeps/unix/sysv/linux/arm/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/arm/sigcontextinfo.h: Likewise.
* sysdeps/unix/sysv/linux/check_pf.c: Likewise.
* sysdeps/unix/sysv/linux/clock_getcpuclockid.c: Likewise.
* sysdeps/unix/sysv/linux/clock_getres.c: Likewise.
* sysdeps/unix/sysv/linux/clock_gettime.c: Likewise.
* sysdeps/unix/sysv/linux/clock_nanosleep.c: Likewise.
* sysdeps/unix/sysv/linux/clock_settime.c: Likewise.
* sysdeps/unix/sysv/linux/dl-execstack.c: Likewise.
* sysdeps/unix/sysv/linux/dl-osinfo.h: Likewise.
* sysdeps/unix/sysv/linux/dl-sysdep.c: Likewise.
* sysdeps/unix/sysv/linux/generic/futimesat.c: Likewise.
* sysdeps/unix/sysv/linux/generic/poll.c: Likewise.
* sysdeps/unix/sysv/linux/generic/wordsize-32/fcntl.c: Likewise.
* sysdeps/unix/sysv/linux/generic/wordsize-32/fxstatat.c: Likewise.
* sysdeps/unix/sysv/linux/generic/wordsize-32/pread.c: Likewise.
* sysdeps/unix/sysv/linux/generic/wordsize-32/pread64.c: Likewise.
* sysdeps/unix/sysv/linux/generic/wordsize-32/preadv.c: Likewise.
* sysdeps/unix/sysv/linux/generic/wordsize-32/preadv64.c: Likewise.
* sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite.c: Likewise.
* sysdeps/unix/sysv/linux/generic/wordsize-32/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/generic/wordsize-32/pwritev.c: Likewise.
* sysdeps/unix/sysv/linux/generic/wordsize-32/pwritev64.c: Likewise.
* sysdeps/unix/sysv/linux/getcwd.c: Likewise.
* sysdeps/unix/sysv/linux/getpagesize.c: Likewise.
* sysdeps/unix/sysv/linux/getsysstats.c: Likewise.
* sysdeps/unix/sysv/linux/i386/fxstat.c: Likewise.
* sysdeps/unix/sysv/linux/i386/lxstat.c: Likewise.
* sysdeps/unix/sysv/linux/i386/mmap.S: Likewise.
* sysdeps/unix/sysv/linux/i386/mmap64.S: Likewise.
* sysdeps/unix/sysv/linux/i386/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/i386/vfork.S: Likewise.
* sysdeps/unix/sysv/linux/i386/xstat.c: Likewise.
* sysdeps/unix/sysv/linux/ia64/system.c: Likewise.
* sysdeps/unix/sysv/linux/if_index.c: Likewise.
* sysdeps/unix/sysv/linux/ifaddrs.c: Likewise.
* sysdeps/unix/sysv/linux/ifreq.c: Likewise.
* sysdeps/unix/sysv/linux/ldsodefs.h: Likewise.
* sysdeps/unix/sysv/linux/lutimes.c: Likewise.
* sysdeps/unix/sysv/linux/m68k/vfork.S: Likewise.
* sysdeps/unix/sysv/linux/microblaze/nptl/vfork.S: Likewise.
* sysdeps/unix/sysv/linux/mips/mips32/accept4.c: Likewise.
* sysdeps/unix/sysv/linux/mips/mips32/recvmmsg.c: Likewise.
* sysdeps/unix/sysv/linux/mips/mips32/sendmmsg.c: Likewise.
* sysdeps/unix/sysv/linux/mips/pread.c: Likewise.
* sysdeps/unix/sysv/linux/mips/pread64.c: Likewise.
* sysdeps/unix/sysv/linux/mips/pwrite.c: Likewise.
* sysdeps/unix/sysv/linux/mips/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/mips/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/mmap64.c: Likewise.
* sysdeps/unix/sysv/linux/netlinkaccess.h: Likewise.
* sysdeps/unix/sysv/linux/powerpc/chown.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/dl-sysdep.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/clone.S: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_mask.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/fe_nomask.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/getcontext.S: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/pread.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/pread64.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext.S: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext.S: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/vfork.S: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_mask.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/fpu/fe_nomask.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/getcontext.S: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/makecontext.S: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/pread.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/pread64.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/setcontext.S: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/swapcontext.S: Likewise.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/vfork.S: Likewise.
* sysdeps/unix/sysv/linux/pread.c: Likewise.
* sysdeps/unix/sysv/linux/pread64.c: Likewise.
* sysdeps/unix/sysv/linux/prof-freq.c: Likewise.
* sysdeps/unix/sysv/linux/pwrite.c: Likewise.
* sysdeps/unix/sysv/linux/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/mmap.S: Likewise.
* sysdeps/unix/sysv/linux/s390/s390-32/mmap64.S: Likewise.
* sysdeps/unix/sysv/linux/s390/system.c: Likewise.
* sysdeps/unix/sysv/linux/sh/pread.c: Likewise.
* sysdeps/unix/sysv/linux/sh/pread64.c: Likewise.
* sysdeps/unix/sysv/linux/sh/pwrite.c: Likewise.
* sysdeps/unix/sysv/linux/sh/pwrite64.c: Likewise.
* sysdeps/unix/sysv/linux/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/sigpending.c: Likewise.
* sysdeps/unix/sysv/linux/sigprocmask.c: Likewise.
* sysdeps/unix/sysv/linux/sigsuspend.c: Likewise.
* sysdeps/unix/sysv/linux/sparc/sparc64/xstatconv.c: Likewise.
* sysdeps/unix/sysv/linux/sparc/system.c: Likewise.
* sysdeps/unix/sysv/linux/syslog.c: Likewise.
* sysdeps/unix/sysv/linux/system.c: Likewise.
* sysdeps/unix/sysv/linux/testrtsig.h: Likewise.
* sysdeps/unix/sysv/linux/timespec_get.c: Likewise.
* sysdeps/unix/sysv/linux/ttyname.c: Likewise.
* sysdeps/unix/sysv/linux/ttyname_r.c: Likewise.
* sysdeps/unix/sysv/linux/utimensat.c: Likewise.
* sysdeps/unix/sysv/linux/x86_64/sigaction.c: Likewise.
* sysdeps/unix/sysv/linux/xstatconv.h: Likewise.

9 years agoRemove BROKEN_PPC_ASM_CR0 configure test.
Joseph Myers [Wed, 25 Jun 2014 17:54:44 +0000 (17:54 +0000)]
Remove BROKEN_PPC_ASM_CR0 configure test.

One piece of architecture-specific code in the main configure.ac is
the powerpc test that can define BROKEN_PPC_ASM_CR0.  There's no need
to move this to a sysdeps configure script, or to work out what bug it
was testing in May 1998 to see if it's still relevant, since nothing
in the source tree now uses the results of this test.  Thus, this
patch just removes the test in question.

Not tested.

* configure.ac (libc_cv_c_asmcr0_bug): Remove configure test.
* configure: Regenerated.
* config.h.in (BROKEN_PPC_ASM_CR0): Remove macro.

9 years agoMove base_machine and machine settings from configure.ac to sysdeps preconfigure...
Joseph Myers [Wed, 25 Jun 2014 17:52:56 +0000 (17:52 +0000)]
Move base_machine and machine settings from configure.ac to sysdeps preconfigure fragments.

This patch makes non-ex-ports architectures set base_machine and
machine based on the original configured machine value in preconfigure
fragments, like ex-ports architectures, rather than in the toplevel
configure.ac.

Tested x86 that the disassembly of installed shared libraries is
unchanged by the patch.

* configure.ac (base_machine): Do not set specially for particular
machines here.
* configure: Regenerated.
* sysdeps/powerpc/preconfigure: Move machine and base_machine
settings from configure.ac.
* sysdeps/i386/preconfigure: New file.
* sysdeps/s390/preconfigure: Likewise.
* sysdeps/sh/preconfigure: Likewise.
* sysdeps/sparc/preconfigure: Likewise.

9 years agoSPARC: Consolidate unnecessary nptl/ subdirectories.
Roland McGrath [Wed, 25 Jun 2014 17:04:14 +0000 (10:04 -0700)]
SPARC: Consolidate unnecessary nptl/ subdirectories.

9 years agoSPARC: Consolidate nptl/ subdirectories under linux/...
Roland McGrath [Wed, 25 Jun 2014 17:03:52 +0000 (10:03 -0700)]
SPARC: Consolidate nptl/ subdirectories under linux/...

9 years agoUpdate timezone code from tzcode 2014e.
Joseph Myers [Wed, 25 Jun 2014 16:51:17 +0000 (16:51 +0000)]
Update timezone code from tzcode 2014e.

This patch updates the timezone code from tzcode 2014e (the previous
version used was 2013i).

Tested x86_64.

* timezone/checktab.awk: Update from tzcode 2014e.
* timezone/private.h: Likewise.
* timezone/tzfile.h: Likewise.
* timezone/zdump.c: Likewise.
* timezone/zic.c: Likewise.

9 years agoRemove __ASSUME_XFS_RESTRICTED_CHOWN.
Joseph Myers [Wed, 25 Jun 2014 16:39:33 +0000 (16:39 +0000)]
Remove __ASSUME_XFS_RESTRICTED_CHOWN.

This patch removes the __ASSUME_XFS_RESTRICTED_CHOWN macro, now it can
be presumed to be defined unconditionally.  I'm not sure if what's
left of __statfs_chown_restricted is actually useful (if not, a
followup could remove it), but I left it there to keep the patch
conservative and avoid changing the code generated for glibc.

Tested x86_64 that the disassembly of installed shared libraries is
unchanged by the patch.

* sysdeps/unix/sysv/linux/kernel-features.h
(__ASSUME_XFS_RESTRICTED_CHOWN): Remove macro.
* sysdeps/unix/sysv/linux/pathconf.c (__statfs_chown_restricted)
[__ASSUME_XFS_RESTRICTED_CHOWN]: Make code unconditional.
(__statfs_chown_restricted) [!__ASSUME_XFS_RESTRICTED_CHOWN]:
Remove conditional code.

9 years agoARM: Add support for AT_HWCAP2 in _dl_procinfo
Will Newton [Wed, 25 Jun 2014 11:21:17 +0000 (12:21 +0100)]
ARM: Add support for AT_HWCAP2 in _dl_procinfo

Add support for the new HWCAP2 values for ARMv8 added in the
3.15 kernel. Tested using QEMU which supports these extensions.

ChangeLog:

2014-06-25  Will Newton  <will.newton@linaro.org>

* sysdeps/unix/sysv/linux/arm/dl-procinfo.c
(_dl_arm_cap_flags): Add HWCAP2 values.
* sysdeps/unix/sysv/linux/arm/dl-procinfo.h
(_DL_HWCAP_COUNT): Increase to 37.
(_DL_HWCAP_LAST): New define.
(_DL_HWCAP2_LAST): New define.
(_dl_procinfo): Add support for printing
AT_HWCAP2 entries.
(_dl_string_hwcap): Use _dl_hwcap_string.

9 years agoUpdate powerpc-fpu ULPs.
Adhemerval Zanella [Wed, 25 Jun 2014 14:57:39 +0000 (09:57 -0500)]
Update powerpc-fpu ULPs.

9 years agoUpdate README and NEWS for ports directory removal.
Joseph Myers [Wed, 25 Jun 2014 12:55:21 +0000 (12:55 +0000)]
Update README and NEWS for ports directory removal.

This patch updates README to remove a mention of the ports directory.
It also adds a NEWS item for the merge of ports into the main sysdeps
tree (I think it's NEWS-worthy, although not strictly a user-visible
feature).

Other remaining ports references to resolve: a comment in
manual/signal.texi (not giving a literal path, but maybe should change
anyway); a comment in config.h.in (path should be updated);
scripts/list-sources.sh (appears to date back to ports being a
separate repository).

* README: Do not mention ports directory.

9 years agoRemove __ASSUME_UTIMENSAT.
Joseph Myers [Wed, 25 Jun 2014 11:36:10 +0000 (11:36 +0000)]
Remove __ASSUME_UTIMENSAT.

This patch removes the __ASSUME_UTIMENSAT macro, now it can be
unconditionally assumed to be true.

This shows that the only live uses of __ASSUME_UTIMES are in utimes.c
and they are only live for hppa.  I intend a followup patch to make
__ASSUME_UTIMES into an hppa-specific macro (not used or defined
outside sysdeps/unix/sysv/linux/hppa/).

Tested x86_64 that the disassembly of installed shared libraries is
unchanged by this patch.

* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_UTIMENSAT):
Remove macro.
* sysdeps/unix/sysv/linux/futimes.c: Do not include
<kernel-features.h>.
[__NR_utimensat && !__ASSUME_UTIMENSAT] (miss_utimensat): Remove
conditional variable definition.
(__futimes): Update comment.
(__futimes) [__ASSUME_UTIMENSAT]: Make code unconditional.
(__futimes) [!__ASSUME_UTIMENSAT]: Remove conditional code.

9 years agoFix exp10 spurious underflows (bug 16560).
Joseph Myers [Wed, 25 Jun 2014 11:33:22 +0000 (11:33 +0000)]
Fix exp10 spurious underflows (bug 16560).

This patch fixes spurious underflows from exp10 for arguments near 0
(part of bug 16560; that bug also includes spurious underflows from
exp2, which are not fixed by this patch).  The problem is underflows
in the internal computation converting the exp10 argument to arguments
for exp (with extra precision), and the fix is simply to return 1
early for arguments near enough to 0 (just as arguments with large
enough magnitude have their own overflow / underflow logic at the
start of the function).

Tested x86_64 and x86 and ulps updated accordingly; also tested for
powerpc32 and mips64 to validate the ldbl-128ibm and ldbl-128 changes.

[BZ #16560]
* sysdeps/ieee754/dbl-64/e_exp10.c (__ieee754_exp10): Return 1 for
arguments close to 0.
* sysdeps/ieee754/ldbl-128/e_exp10l.c (__ieee754_exp10l):
Likewise.
* sysdeps/ieee754/ldbl-128ibm/e_exp10l.c (__ieee754_exp10l):
Likewise.
* math/auto-libm-test-in: Add more tests of exp10.
* math/auto-libm-test-out: Regenerated.
* sysdeps/x86_64/fpu/libm-test-ulps: Update.

9 years agoRemove __ASSUME_COMPLETE_READV_WRITEV.
Joseph Myers [Wed, 25 Jun 2014 11:31:51 +0000 (11:31 +0000)]
Remove __ASSUME_COMPLETE_READV_WRITEV.

This patch removes the __ASSUME_COMPLETE_READV_WRITEV
kernel-features.h macro, now that it can be unconditionally assumed to
be true.  (The relevant kernel feature was added some time between 2.0
and 2.2, and this macro is only used in sysdeps/unix/sysv/linux/.)

Tested x86_64 that the disassembly of installed shared libraries is
unchanged by this patch.

* sysdeps/unix/sysv/linux/kernel-features.h
(__ASSUME_COMPLETE_READV_WRITEV): Remove macro.
* sysdeps/unix/sysv/linux/readv.c: Do not include
<kernel-features.h>.
[!__ASSUME_COMPLETE_READV_WRITEV]: Remove conditional code.
[!UIO_FASTIOV] (UIO_FASTIOV): Remove macro.
(__libc_readv) [__ASSUME_COMPLETE_READV_WRITEV]: Make code
unconditional.
(__libc_readv) [!__ASSUME_COMPLETE_READV_WRITEV]: Remove
conditional code.
* sysdeps/unix/sysv/linux/writev.c: Do not include
<kernel-features.h>.
[!__ASSUME_COMPLETE_READV_WRITEV]: Remove conditional code.
[!UIO_FASTIOV] (UIO_FASTIOV): Remove macro.
(__libc_writev) [__ASSUME_COMPLETE_READV_WRITEV]: Make code
unconditional.
(__libc_writev) [!__ASSUME_COMPLETE_READV_WRITEV]: Remove
conditional code.

9 years agosysdeps/posix/tempname.c: Merge from gnulib
Will Newton [Tue, 24 Jun 2014 13:19:36 +0000 (14:19 +0100)]
sysdeps/posix/tempname.c: Merge from gnulib

Partial merge from gnulib which fixes a number of -Wundef warnings.
The parts that differ from gnulib are the header comment, use of
__glibc_unlikely, a #define of __secure_getenv and the use of tabs.
The majority of the patch is cosmetic comment changes, the only runtime
change is an abort if an unknown kind is passed to __gen_tempname.

ChangeLog:

2014-06-25  Will Newton  <will.newton@linaro.org>

* sysdeps/posix/tempname.c: Merge from gnulib, cosmetic
comment changes throughout the file.  Remove checks
for HAVE_*_H definitions that are not required.
(__gen_tempname): Call abort if an unknown kind value is
passed.

9 years agom68k: Add compat symbols for scalbln*
Andreas Schwab [Tue, 24 Jun 2014 07:41:02 +0000 (09:41 +0200)]
m68k: Add compat symbols for scalbln*

9 years agoAdd compat symbols for scalb* in i386
Siddhesh Poyarekar [Wed, 25 Jun 2014 03:17:13 +0000 (08:47 +0530)]
Add compat symbols for scalb* in i386

Bring back symbols into libc.so for scalb* functions.  They are no
longer used but unfortunately they're now part of the ABI.

9 years agox86: Consolidate unnecessary nptl/ subdirectories.
Roland McGrath [Wed, 25 Jun 2014 02:17:43 +0000 (19:17 -0700)]
x86: Consolidate unnecessary nptl/ subdirectories.

9 years agoFix x86/x86_64 expm1l spurious underflow exceptions (bug 16539).
Joseph Myers [Tue, 24 Jun 2014 21:00:08 +0000 (21:00 +0000)]
Fix x86/x86_64 expm1l spurious underflow exceptions (bug 16539).

This patch fixes bug 16539, spurious underflow exceptions from x86 /
x86-64 expm1l.  The problem is that the computation of a base-2
exponent with extra precision involves spurious underflows for
arguments that are small but not subnormal, so a check is added to
just return the argument in those cases.  (If the argument *is*
subnormal, underflowing is correct and the existing code will always
underflow, so it suffices to keep using the existing code in that
case; some expm1 implementations have a bug (bug 16353) with missing
underflow exceptions, but I don't think there's such a bug in this
particular version.)

Tested x86_64 and x86; no ulps updates needed.

(auto-libm-test-out diffs omitted below.)

[BZ #16539]
* sysdeps/i386/fpu/e_expl.S (IEEE754_EXPL) [USE_AS_EXPM1L]: Just
return the argument for normal arguments with exponent below -64.
* sysdeps/x86_64/fpu/e_expl.S (IEEE754_EXPL) [USE_AS_EXPM1L]:
Likewise.
* math/auto-libm-test-in: Add another test of expm1.
* math/auto-libm-test-out: Regenerated.

9 years agoFix ldbl-128 erfl spurious underflows (bug 16287).
Joseph Myers [Tue, 24 Jun 2014 20:56:56 +0000 (20:56 +0000)]
Fix ldbl-128 erfl spurious underflows (bug 16287).

This patch fixes bug 16287, spurious underflows from ldbl-128 erfl
arising from it calling erfcl for arguments with absolute value at
least 1.0, although for large positive arguments erfcl correctly
underflows but erfl shouldn't.  The fix is simply to avoid calling
erfcl, and just return 1, for arguments above a cut-off large enough
that erfl correctly rounds to-nearest as 1 but not so large that erfcl
underflows.

Tested mips64.  Also tested x86_64 and x86 to confirm the new tests
(taken from the tests of erfc) don't cause any problems there; no ulps
updates needed.

[BZ #16287]
* sysdeps/ieee754/ldbl-128/s_erfl.c (__erfl): Return 1 without
calling __erfcl for arguments at least 16.
* math/auto-libm-test-in: Add more tests of erf.
* math/auto-libm-test-out: Regenerated.

9 years agoMove architecture cases out of sysdeps/unix/sysv/linux/configure.ac.
Joseph Myers [Tue, 24 Jun 2014 20:53:03 +0000 (20:53 +0000)]
Move architecture cases out of sysdeps/unix/sysv/linux/configure.ac.

Continuing the process of making non-ex-ports architectures follow the
preferred sysdeps practices followed by ex-ports architectures - that
is, putting things in architecture-specific sysdeps files rather than
having architecture-specific cases in architecture-independent files -
this patch moves architecture cases out of
sysdeps/unix/sysv/linux/configure.ac into (new or existing) configure
fragments for each architecture.  (In the case of the
arch_minimum_kernel setting for x32,
sysdeps/unix/sysv/linux/x86_64/x32/configure already has such a
setting so the setting in sysdeps/unix/sysv/linux/configure.ac was a
duplicate that could just be removed - though I haven't tested for
x32.)

Tested for x86_64 and x86 that the patch causes no changes to the
installed shared libraries or ldd (or any part of the installation
except for the parts that always change because the files contain
timestamps - nscd and static libraries).

* sysdeps/unix/sysv/linux/configure.ac: Remove cases for
individual architectures.
* sysdeps/unix/sysv/linux/configure: Regenerated.
* sysdeps/unix/sysv/linux/i386/configure.ac: New file.
* sysdeps/unix/sysv/linux/i386/configure: New generated file.
* sysdeps/unix/sysv/linux/powerpc/configure.ac
(ldd_rewrite_script): Define variable.
* sysdeps/unix/sysv/linux/powerpc/configure: Regenerated.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/configure.ac: New
file.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/configure: New
generated file.
* sysdeps/unix/sysv/linux/s390/configure.ac: New file.
* sysdeps/unix/sysv/linux/s390/configure: New generated file.
* sysdeps/unix/sysv/linux/sh/configure.ac: New file.
* sysdeps/unix/sysv/linux/sh/configure: New generated file.
* sysdeps/unix/sysv/linux/sparc/configure.ac: New file.
* sysdeps/unix/sysv/linux/sparc/configure: New generated file.
* sysdeps/unix/sysv/linux/x86_64/configure.ac: New file.
* sysdeps/unix/sysv/linux/x86_64/configure: New generated file.

9 years agoFix namespace violation in pthreadtypes.h (BZ #17084)
Siddhesh Poyarekar [Tue, 24 Jun 2014 17:10:07 +0000 (22:40 +0530)]
Fix namespace violation in pthreadtypes.h (BZ #17084)

This was causing conformtest failures on i386.

9 years agoAdd bug 16918 to NEWS.
Wilco [Tue, 24 Jun 2014 15:40:29 +0000 (15:40 +0000)]
Add bug 16918 to NEWS.

9 years agoRevert "Add bug 16918 to NEWS."
Marcus Shawcroft [Tue, 24 Jun 2014 15:28:06 +0000 (16:28 +0100)]
Revert "Add bug 16918 to NEWS."

This reverts commit 222b787a6fd36601f5c5d22378176798327fcf31.

9 years agoOptimize fesetenv
Wilco [Tue, 24 Jun 2014 15:05:23 +0000 (15:05 +0000)]
Optimize fesetenv

Improve fesetenv to use an optimized implementation similar to
feupdateenv.

2014-06-24  Wilco  <wdijkstr@arm.com>

* sysdeps/arm/fesetenv.c (fesetenv): Optimize implementation.

9 years agoAdd _FPU_MASK_RM and use it instead of FE_TOWARDZERO.
Wilco [Tue, 24 Jun 2014 15:02:51 +0000 (15:02 +0000)]
Add _FPU_MASK_RM and use it instead of FE_TOWARDZERO.

2014-06-24  Wilco  <wdijkstr@arm.com>

* sysdeps/arm/fpu_control.h (_FPU_MASK_RM): Define.
* sysdeps/arm/fenv_private.h (libc_fesetround_vfp)
(libc_feholdexcept_setround_vfp) (libc_feholdsetround_vfp)
(libc_feresetround_vfp) (libc_feholdsetround_vfp_ctx)
(libc_feresetround_vfp_ctx): Use _FPU_MASK_RM.
* sysdeps/arm/fesetround.c (fesetround): Use _FPU_MASK_RM.
* sysdeps/arm/get-rounding-mode.h (get_rounding_mode):
Use _FPU_MASK_RM.

9 years agoRemove an unused include.
Wilco [Tue, 24 Jun 2014 15:00:01 +0000 (15:00 +0000)]
Remove an unused include.

2014-06-24  Wilco  <wdijkstr@arm.com>

* sysdeps/arm/fsetexcptflg.c (fesetexceptflag): Remove unused include.

9 years agoCleanup fenv implementation
Wilco [Tue, 24 Jun 2014 14:57:32 +0000 (14:57 +0000)]
Cleanup fenv implementation

Remove some spaces before libm_hidden_def.

2014-06-24  Wilco  <wdijkstr@arm.com>

* sysdeps/arm/feholdexcpt.c (feholdexcept): Remove space.
* sysdeps/arm/fesetenv.c (fesetenv): Remove space.
* sysdeps/arm/fesetround.c (fesetround): Remove space.
* sysdeps/arm/fraiseexcpt.c (feraiseexcept): Remove space.

9 years agoAdd bug 16918 to NEWS.
Wilco [Tue, 24 Jun 2014 14:48:05 +0000 (14:48 +0000)]
Add bug 16918 to NEWS.

9 years agoRewrite feupdateenv
Wilco [Tue, 24 Jun 2014 13:53:04 +0000 (13:53 +0000)]
Rewrite feupdateenv

This patch rewrites feupdateenv to improve performance by avoiding
unnecessary FPSCR reads/writes. It fixes bug 16918 by passing the
correct return value.

2014-06-24  Wilco  <wdijkstr@arm.com>

[BZ #16918]
* sysdeps/arm/feupdateenv.c (feupdateenv):
Rewrite to reduce FPSCR accesses and fix return value.

9 years agoSpeed up the ARM fenv implementation by avoiding unnecessary FPSCR
Wilco [Tue, 24 Jun 2014 12:04:27 +0000 (12:04 +0000)]
Speed up the ARM fenv implementation by avoiding unnecessary FPSCR
writes if the FPSCR remains unchanged.

2014-06-24  Wilco  <wdijkstr@arm.com>

* sysdeps/arm/fclrexcpt.c (feclearexcept):
Optimize to avoid unnecessary FPSCR writes.
* sysdeps/arm/fedisblxcpt.c (fedisableexcept): Likewise.
* sysdeps/arm/feenablxcpt.c (feenableexcept): Likewise.
* sysdeps/arm/fsetexcptflg.c (fesetexceptflag): Likewise.
* sysdeps/arm/setfpucw.c (__setfpucw): Likewise.

9 years agoUse libc calls defined by fenv_private.h to implement several fenv functions
Wilco [Tue, 24 Jun 2014 11:04:31 +0000 (11:04 +0000)]
Use libc calls defined by fenv_private.h to implement several fenv functions
rather than duplicating functionality. To make this work for softfp builds,
ensure functions in fenv_private are not conditionally compiled.

2014-06-24  Wilco  <wdijkstr@arm.com>

* sysdeps/arm/fegetround.c (fegetround): Call get_rounding_mode.
* sysdeps/arm/feholdexcpt.c (feholdexcept): Call libc_feholdexcept_vfp.
* sysdeps/arm/fesetround.c (fesetround): Call libc_fesetround_vfp.
* sysdeps/arm/fgetexcptflg.c (fegetexceptflag):
Call libc_fetestexcept_vfp.
* sysdeps/arm/ftestexcept.c (fetestexcept): Call libc_fetestexcept_vfp.
* sysdeps/arm/fenv_private.h: Move libc_*_vfp functions outside of
__SOFTFP__ ifdef so that they can be built for softfp.

9 years agoFix build warning in pthread_rwlock_*
Siddhesh Poyarekar [Tue, 24 Jun 2014 10:42:43 +0000 (16:12 +0530)]
Fix build warning in pthread_rwlock_*

The first argument of elision_adapt and that of ELISION_*LOCK have
different signs since __elision_rwcount is signed char * and the
argument of elision_adapt is uint8_t *.  Modified elision_adapt to
accept signed char * instead of uint8_t *.

9 years agoPrint offending diff when check-abi fails
Siddhesh Poyarekar [Tue, 24 Jun 2014 07:51:20 +0000 (13:21 +0530)]
Print offending diff when check-abi fails

The earlier version of check-abi would print a diff of the expected
ABI vs the built ABI when there was a difference.  Bring back this
behaviour.

9 years agoAdd missing #include in get-rounding-mode.h
Roland McGrath [Mon, 23 Jun 2014 21:07:59 +0000 (14:07 -0700)]
Add missing #include in get-rounding-mode.h

9 years agoRemove an unused variable in fstatvfs.
Roland McGrath [Mon, 23 Jun 2014 21:05:14 +0000 (14:05 -0700)]
Remove an unused variable in fstatvfs.

9 years agoFix cosh spurious underflows from expm1 (bug 16354), inaccurate results near 0 (bug...
Joseph Myers [Mon, 23 Jun 2014 20:20:10 +0000 (20:20 +0000)]
Fix cosh spurious underflows from expm1 (bug 16354), inaccurate results near 0 (bug 17061).

This patch fixes bug 16354, spurious underflows from cosh when a tiny
argument is passed to expm1 and expm1 correctly underflows although
the final result of cosh should be 1.  As noted in that bug, some
cases are latent because of expm1 implementations not raising
underflow (bug 16353), but all the implementations are fixed
similarly.  They already contained checks for tiny arguments, but the
checks were too late to avoid underflow from expm1 (although they
would avoid underflow from subsequent squaring of the result of
expm1); they are moved before the expm1 calls.

The thresholds used for considering arguments tiny are not
particularly consistent in how they relate to the precision of the
floating-point format in question.  They are, however, all sufficient
to ensure that the round-to-nearest result of cosh is indeed 1 below
the threshold (although sometimes they are smaller than necessary).
But the previous logic did not return 1, but the previously computed 1
+ expm1(abs(x)) value.  And the thresholds in the ldbl-128 and
ldbl-128ibm code (0x1p-71L - I suspect 0x3f8b was intended in the code
instead of 0x3fb8 - and (roughly) 0x1p-55L) are not sufficient for
that value to be 1.  So by moving the test for tiny arguments, and
consequently returning 1 directly now the expm1 value hasn't been
computed by that point, this patch also fixes bug 17061, the (large
number of ulps) inaccuracy for small arguments in those
implementations.  Tests for that bug are duly added.

Tested x86_64 and x86 and ulps updated accordingly.  Also tested for
mips64 and powerpc32 to validate the ldbl-128 and ldbl-128ibm changes.

[BZ #16354]
[BZ #17061]
* sysdeps/ieee754/dbl-64/e_cosh.c (__ieee754_cosh): Check for
small arguments before calling __expm1.
* sysdeps/ieee754/flt-32/e_coshf.c (__ieee754_coshf): Check for
small arguments before calling __expm1f.
* sysdeps/ieee754/ldbl-128/e_coshl.c (__ieee754_coshl): Check for
small arguments before calling __expm1l.
* sysdeps/ieee754/ldbl-128ibm/e_coshl.c (__ieee754_coshl):
Likewise.
* sysdeps/ieee754/ldbl-96/e_coshl.c (__ieee754_coshl): Likewise.
* math/auto-libm-test-in: Add more cosh tests.  Do not allow
spurious underflow for some cosh tests.
* math/auto-libm-test-out: Regenerated.
* sysdeps/i386/fpu/libm-test-ulps: Update.

9 years agoSet errno for y1 overflow (bug 17050).
Joseph Myers [Mon, 23 Jun 2014 20:17:13 +0000 (20:17 +0000)]
Set errno for y1 overflow (bug 17050).

This patch fixes bug 17050, missing errno setting for y1 overflow (for
small positive arguments).  An appropriate check is added for overflow
directly in the __ieee754_y1 implementation, similar to the check
present for yn (doing it there rather than in the wrapper also avoids
yn needing to repeat the check when called for order 1 or -1 and it
uses __ieee754_y1).

Tested x86_64 and x86; no ulps update needed.  Also tested for mips64
to verify the ldbl-128 fix (the ldbl-128ibm code just #includes the
ldbl-128 file).

[BZ #17050]
* sysdeps/ieee754/dbl-64/e_j1.c: Include <errno.h>.
(__ieee754_y1): Set errno if return value overflows.
* sysdeps/ieee754/flt-32/e_j1f.c: Include <errno.h>.
(__ieee754_y1f): Set errno if return value overflows.
* sysdeps/ieee754/ldbl-128/e_j1l.c: Include <errno.h>.
(__ieee754_y1l): Set errno if return value overflows.
* sysdeps/ieee754/ldbl-96/e_j1l.c: Include <errno.h>.
(__ieee754_y1l): Set errno if return value overflows.
* math/auto-libm-test-in: Add more tests of y0, y1 and yn.
* math/auto-libm-test-out: Regenerated.

9 years agoTest cpow in all rounding modes.
Joseph Myers [Mon, 23 Jun 2014 20:15:14 +0000 (20:15 +0000)]
Test cpow in all rounding modes.

This patch enables testing of cpow in all rounding modes using
ALL_RM_TEST.  There were two reasons this was previously deferred:

* MPC has complicated rounding-mode-dependent rules for the signs of
  exact zero real or imaginary parts in the result of mpc_pow.  Annex
  G does not impose any such requirements and I don't think glibc
  should try to implement any particular logic here.  This patch adds
  support for gen-auto-libm-tests passing the IGNORE_ZERO_INF_SIGN
  flag to libm-test.inc.

* Error accumulations in some tests in non-default rounding modes
  exceed the maximum error permitted in libm-test.inc.  This patch
  marks the problem tests with xfail-rounding.  (It might be possible
  to reduce the accumulations a bit by using round-to-nearest when
  cpow calls clog, but I don't think there's much point; the
  implementation approach for cpow is fundamentally deficient, as
  discussed in the existing bug for cpow inaccuracy which can
  reasonably be considered to cover these less-inaccurate cases as
  well.  It's possible that the test "cpow 2 0 10 0" will also need
  xfail-rounding on some platforms.)

Tested x86_64 and x86 and ulps updated accordingly.

* math/gen-auto-libm-tests.c: Document use of
ignore-zero-inf-sign.
(input_flag_type): Add value flag_ignore_zero_inf_sign.
(input_flags): Add ignore-zero-inf-sign.
(output_for_one_input_case): Handle flag_ignore_zero_inf_sign.
* math/gen-libm-test.pl (generate_testfile): Handle
ignore-zero-inf-sign.
* math/auto-libm-test-in: Mark some cpow tests with
ignore-zero-inf-sign and some with xfail-rounding.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (cpow_test): Use ALL_RM_TEST.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.

9 years agoFix pow overflow in non-default rounding modes (bug 16315).
Joseph Myers [Mon, 23 Jun 2014 20:12:33 +0000 (20:12 +0000)]
Fix pow overflow in non-default rounding modes (bug 16315).

This patch fixes bug 16315, bad pow handling of overflow/underflow in
non-default rounding modes.  Tests of pow are duly converted to
ALL_RM_TEST to run all tests in all rounding modes.

There are two main issues here.  First, various implementations
compute a negative result by negating a positive result, but this
yields inappropriate overflow / underflow values for directed
rounding, so either overflow / underflow results need recomputing in
the correct sign, or the relevant overflowing / underflowing operation
needs to be made to have a result of the correct sign.  Second, the
dbl-64 implementation sets FE_TONEAREST internally; in the overflow /
underflow case, the result needs recomputing in the original rounding
mode.

Tested x86_64 and x86 and ulps updated accordingly.

[BZ #16315]
* sysdeps/i386/fpu/e_pow.S (__ieee754_pow): Ensure possibly
overflowing or underflowing operations take place with sign of
result.
* sysdeps/i386/fpu/e_powf.S (__ieee754_powf): Likewise.
* sysdeps/i386/fpu/e_powl.S (__ieee754_powl): Likewise.
* sysdeps/ieee754/dbl-64/e_pow.c: Include <math.h>.
(__ieee754_pow): Recompute overflowing and underflowing results in
original rounding mode.
* sysdeps/x86/fpu/powl_helper.c: Include <stdbool.h>.
(__powl_helper): Allow negative argument X and scale negated value
as needed.  Avoid passing value outside [-1, 1] to f2xm1.
* sysdeps/x86_64/fpu/e_powl.S (__ieee754_powl): Ensure possibly
overflowing or underflowing operations take place with sign of
result.
* sysdeps/x86_64/fpu/multiarch/e_pow.c [HAVE_FMA4_SUPPORT]:
Include <math.h>.
* math/auto-libm-test-in: Add more tests of pow.
* math/auto-libm-test-out: Regenerated.
* math/libm-test.inc (pow_test): Use ALL_RM_TEST.
(pow_tonearest_test_data): Remove.
(pow_test_tonearest): Likewise.
(pow_towardzero_test_data): Likewise.
(pow_test_towardzero): Likewise.
(pow_downward_test_data): Likewise.
(pow_test_downward): Likewise.
(pow_upward_test_data): Likewise.
(pow_test_upward): Likewise.
(main): Don't call removed functions.
* sysdeps/i386/fpu/libm-test-ulps: Update.
* sysdeps/x86_64/fpu/libm-test-ulps: Likewise.

9 years agopowerpc: Consolidate nptl/ subdirectories under linux/....
Roland McGrath [Mon, 23 Jun 2014 16:38:36 +0000 (09:38 -0700)]
powerpc: Consolidate nptl/ subdirectories under linux/....

9 years agoAdd generic HAVE_RM_CTX implementation
Wilco Dijkstra [Mon, 23 Jun 2014 16:15:41 +0000 (17:15 +0100)]
Add generic HAVE_RM_CTX implementation

This patch adds a generic implementation of HAVE_RM_CTX using standard
fenv calls. As a result math functions using SET_RESTORE_ROUND* macros
do not suffer from a large slowdown on targets which do not implement
optimized libc_fe*_ctx inline functions. Most of the libc_fe* inline
functions are now unused and could be removed in the future (there are
a few math functions left which use a mixture of standard fenv calls
and libc_fe* inline functions - they could be updated to use
SET_RESTORE_ROUND or improved to avoid expensive fenv manipulations
across just a few FP instructions).

libc_feholdsetround*_noex_ctx is added to enable better optimization of
SET_RESTORE_ROUND_NOEX* implementations.

Performance measurements on ARM and x86 of sin() show significant gains
over the current default, fairly close to a highly optimized fenv_private:

                        ARM   x86
no fenv_private      : 100%  100%
generic HAVE_RM_CTX  : 250%  350%
fenv_private (CTX)   : 250%  450%

2014-06-23  Will Newton  <will.newton@linaro.org>
    Wilco  <wdijkstr@arm.com>

* sysdeps/generic/math_private.h: Add generic HAVE_RM_CTX
implementation.  Include get-rounding-mode.h.
[!HAVE_RM_CTX]: Define HAVE_RM_CTX to zero.
[!libc_feholdsetround_noex_ctx]: Define
libc_feholdsetround_noex_ctx.
[!libc_feholdsetround_noexf_ctx]: Define
libc_feholdsetround_noexf_ctx.
[!libc_feholdsetround_noexl_ctx]: Define
libc_feholdsetround_noexl_ctx.
(libc_feholdsetround_ctx): New function.
(libc_feresetround_ctx): New function.
(libc_feholdsetround_noex_ctx): New function.
(libc_feresetround_noex_ctx): New function.

9 years agoMIPS: Move NPTL public headers to sysdeps/mips/nptl/.
Roland McGrath [Mon, 23 Jun 2014 16:25:41 +0000 (09:25 -0700)]
MIPS: Move NPTL public headers to sysdeps/mips/nptl/.

9 years agom68k: Consolidate nptl/ subdirectories under linux/...
Roland McGrath [Mon, 23 Jun 2014 16:24:18 +0000 (09:24 -0700)]
m68k: Consolidate nptl/ subdirectories under linux/...

9 years agoSH: Consolidate nptl/ subdirectories under linux/.....
Roland McGrath [Mon, 23 Jun 2014 16:23:12 +0000 (09:23 -0700)]
SH: Consolidate nptl/ subdirectories under linux/.....

9 years agoUpdate headers for Linux 3.15.
Joseph Myers [Mon, 23 Jun 2014 15:48:42 +0000 (15:48 +0000)]
Update headers for Linux 3.15.

This patch updates glibc headers for changes / new definitions in
Linux 3.15.  In the course of my review I noticed that
IPV6_PMTUDISC_INTERFACE was absent from glibc despite the inclusion of
IP_PMTUDISC_INTERFACE; I added it along with IP_PMTUDISC_OMIT and
IPV6_PMTUDISC_OMIT.  I did not add FALLOC_FL_NO_HIDE_STALE given the
kernel header comment that it is reserved.

Tested x86_64.

* sysdeps/unix/sysv/linux/bits/fcntl-linux.h [__USE_GNU]
(FALLOC_FL_COLLAPSE_RANGE): New macro.
[__USE_GNU] (FALLOC_FL_ZERO_RANGE): Likewise.
* sysdeps/unix/sysv/linux/bits/in.h (IP_PMTUDISC_OMIT): Likewise.
(IPV6_PMTUDISC_INTERFACE): Likewise.
(IPV6_PMTUDISC_OMIT): Likewise.

9 years agoRemove unused label
Andreas Schwab [Mon, 23 Jun 2014 15:11:24 +0000 (17:11 +0200)]
Remove unused label

9 years agoPowerPC: sync hwcap.h capabilities
Adhemerval Zanella [Mon, 23 Jun 2014 14:38:47 +0000 (09:38 -0500)]
PowerPC: sync hwcap.h capabilities

Linux commit dd58a092c4202f2bd490adab7285b3ff77f8e467 added the
PPC_FEATURE2_VEC_CRYPTO auvx capability to indicate whether to
hardware supports vector crypto hardware instructions.  This patch
adds its definition to powerpc hwcap bits.

9 years agoelf/dl-lookup.c: Use __glibc_likely and __glibc_unlikely
Will Newton [Fri, 11 Apr 2014 13:39:56 +0000 (14:39 +0100)]
elf/dl-lookup.c: Use __glibc_likely and __glibc_unlikely

Convert all uses of __builtin_expect to __glibc_likely and
__glibc_unlikely. Most of these are trivial boolean expressions
but a few were not. In particular the use of __builtin_expect in
the switch expression in do_lookup_x has been removed. Verified
that there are no code changes on x86_64 and ARM aside from line
numbers.

ChangeLog:

2014-06-23  Will Newton  <will.newton@linaro.org>

* elf/dl-lookup.c: Use __glibc_unlikely and __glibc_likely
rather than __builtin_expect.

9 years agoelf/dl-lookup.c: Remove unnecessary static variable
Will Newton [Fri, 4 Apr 2014 08:56:42 +0000 (09:56 +0100)]
elf/dl-lookup.c: Remove unnecessary static variable

undefined_msg is only used once contrary to the comment.

ChangeLog:

2014-06-23  Will Newton  <will.newton@linaro.org>

* elf/dl-lookup.c (undefined_msg): Remove variable.
(_dl_lookup_symbol_x): Replace undefined_msg with string
literal.

9 years agoelf/dl-lookup.c: Move STB_GNU_UNIQUE handling to a function
Will Newton [Wed, 2 Apr 2014 15:04:12 +0000 (16:04 +0100)]
elf/dl-lookup.c: Move STB_GNU_UNIQUE handling to a function

Move handling of STB_GNU_UNIQUE symbols to a separate function
from do_lookup_x in order to make the code more readable.

The new function gets inlined with gcc 4.8 on ARM and the
do_lookup_x code becomes a few bytes smaller.

ChangeLog:

2014-06-23  Will Newton  <will.newton@linaro.org>

* elf/dl-lookup.c (do_lookup_unique): New function.
(do_lookup_x): Move STB_GNU_UNIQUE handling code
to a separate function.

9 years agoDon't ignore too long lines in nss_files (BZ #17079)
Andreas Schwab [Mon, 23 Jun 2014 08:24:45 +0000 (10:24 +0200)]
Don't ignore too long lines in nss_files (BZ #17079)

9 years agotest-skeleton.c: Use stdout for error messages
Will Newton [Fri, 11 Apr 2014 14:21:23 +0000 (15:21 +0100)]
test-skeleton.c: Use stdout for error messages

At the moment the test skeleton uses a mixture of stdout and
stderr for error message output. Using stdout for all test output
keeps all output correctly ordered and properly redirected to the
output file. The suggestion to use stdout is also made on the wiki:

https://sourceware.org/glibc/wiki/Testing/Testsuite#Writing_a_test_case

ChangeLog:

2014-06-23  Will Newton  <will.newton@linaro.org>

* test-skeleton.c (signal_handler): Use printf and %m
rather than perror.  Use printf rather than fprintf to
stderr.  Use puts rather than fputs to stderr.
(main): Likewise.

9 years agonscd: Remove unused typedef and variable.
Ludovic Courtès [Sun, 22 Jun 2014 09:55:43 +0000 (11:55 +0200)]
nscd: Remove unused typedef and variable.

The attached patch removed the unused ‘thread_info_t’ typedef and the
‘thread_info’ variable from nscd.c.  The former conflicts with a GNU Mach
typedef, and the latter conflicts with a GNU Mach function declaration:
<https://lists.gnu.org/archive/html/bug-hurd/2014-06/msg00101.html>.

Tested on x86_64-linux-gnu.

9 years agoMention CVE-2014-4043 in NEWS
Allan McRae [Sat, 21 Jun 2014 07:23:55 +0000 (17:23 +1000)]
Mention CVE-2014-4043 in NEWS

9 years agoMove generic smp.h to nptl/
Roland McGrath [Sat, 21 Jun 2014 03:22:44 +0000 (20:22 -0700)]
Move generic smp.h to nptl/

9 years agoRemove unused file rtld-lowlevel.h.
Roland McGrath [Sat, 21 Jun 2014 03:17:28 +0000 (20:17 -0700)]
Remove unused file rtld-lowlevel.h.

9 years agoClean up HAVE_CONFIG_H and STDC_HEADERS.
Roland McGrath [Sat, 21 Jun 2014 03:04:47 +0000 (20:04 -0700)]
Clean up HAVE_CONFIG_H and STDC_HEADERS.

9 years agoClean up stack-coloring macros.
Roland McGrath [Sat, 21 Jun 2014 02:50:16 +0000 (19:50 -0700)]
Clean up stack-coloring macros.

9 years agoMove linux bits/ files out of nptl/.
Roland McGrath [Sat, 21 Jun 2014 01:36:49 +0000 (18:36 -0700)]
Move linux bits/ files out of nptl/.

9 years agoRemove ARM __ASSUME_SIGFRAME_V2.
Joseph Myers [Sat, 21 Jun 2014 00:58:56 +0000 (00:58 +0000)]
Remove ARM __ASSUME_SIGFRAME_V2.

This patch removes ARM __ASSUME_SIGFRAME_V2 now that the
2.6.18-and-later signal frame layout can be assumed, renaming the
affected functions accordingly now only one version of them is needed
in glibc.  (sigrestorer.S did not in fact include <kernel-features.h>
and it appears that, unlike other such cases, it didn't get the header
indirectly, so the v1 functions would have been compiled in even when
sigaction.c didn't reference them.)

(alpha and hppa also have architecture-specific __ASSUME_* macros that
should now be removed: __ASSUME_FDATASYNC and __ASSUME_LWS_CAS
respectively.  I don't have any plans to do anything on that myself.)

Tested on ARM.

* sysdeps/unix/sysv/linux/arm/kernel-features.h
(__ASSUME_SIGFRAME_V2): Remove macro.
* sysdeps/unix/sysv/linux/arm/sigrestorer.S: Update comment.
[!__ASSUME_SIGFRAME_V2]: Remove conditional code.
(__default_sa_restorer_v2): Rename to __default_sa_restorer.
(__default_rt_sa_restorer_v2): Rename to __default_rt_sa_restorer.
* sysdeps/unix/sysv/linux/arm/sigaction.c (__default_sa_restorer):
Declare as function.  Remove conditional macro definitions.
(__default_rt_sa_restorer): Likewise.
(__default_sa_restorer_v1): Remove declaration.
(__default_sa_restorer_v2): Likewise.
(__default_rt_sa_restorer_v1): Likewise.
(__default_rt_sa_restorer_v2): Likewise.
* sysdeps/unix/sysv/linux/arm/Versions (GLIBC_PRIVATE): Remove
__default_sa_restorer_v1, __default_rt_sa_restorer_v1,
__default_sa_restorer_v2 and __default_rt_sa_restorer_v2.

9 years agoMissing new file from last commit.
Roland McGrath [Sat, 21 Jun 2014 00:27:16 +0000 (17:27 -0700)]
Missing new file from last commit.

9 years agoMove remaining SPARC code out of nptl/.
Roland McGrath [Sat, 21 Jun 2014 00:13:47 +0000 (17:13 -0700)]
Move remaining SPARC code out of nptl/.

9 years agoInclude <kernel-features.h> explicitly where required.
Joseph Myers [Fri, 20 Jun 2014 23:24:00 +0000 (23:24 +0000)]
Include <kernel-features.h> explicitly where required.

This patch makes files using __ASSUME_* macros include
<kernel-features.h> explicitly, rather than relying on some other
header (such as tls.h, lowlevellock.h or pthreadP.h) to include it
implicitly.  (I omitted cases where I've already posted or am testing
the patch that stops the file from needing __ASSUME_* at all.)  This
accords with the general principle of making source files include the
headers for anything they use, and also helps make it safe to remove
<kernel-features.h> includes from any file that doesn't use
__ASSUME_* (some of those may be stray includes left behind after
increasing the minimum kernel version, others may never have been
needed or may have become obsolete after some other change).

Tested x86_64 that the disassembly of installed shared libraries is
unchanged by this patch.

* nptl/pthread_cond_wait.c: Include <kernel-features.h>.
* nptl/pthread_rwlock_timedrdlock.c: Likewise.
* nptl/pthread_rwlock_timedwrlock.c: Likewise.
* nptl/sysdeps/unix/sysv/linux/lowlevelrobustlock.c: Likewise.
* nscd/nscd.c: Likewise.
* sysdeps/i386/nptl/tcb-offsets.sym: Likewise.
* sysdeps/powerpc/nptl/tcb-offsets.sym: Likewise.
* sysdeps/sh/nptl/tcb-offsets.sym: Likewise.
* sysdeps/x86_64/nptl/tcb-offsets.sym: Likewise.

9 years agoRemove __ASSUME_SOCK_CLOEXEC / SOCK_CLOEXEC conditionals in Linux-specific code.
Joseph Myers [Fri, 20 Jun 2014 23:22:08 +0000 (23:22 +0000)]
Remove __ASSUME_SOCK_CLOEXEC / SOCK_CLOEXEC conditionals in Linux-specific code.

This patch removes conditionals on __ASSUME_SOCK_CLOEXEC, and on
SOCK_CLOEXEC being defined, in Linux-specific code, now that all
supported Linux kernel versions can be assumed to have this
functionality.  (The macro is also used in OS-independent code and is
not defined for Hurd.)

Tested x86_64 that the disassembly of installed shared libraries is
unchanged by this patch.

* nptl/sysdeps/unix/sysv/linux/mq_notify.c: Do not include
<kernel-features.h>.
(init_mq_netlink): Remove conditional have_sock_cloexec
definitions.  Remove code conditional on have_sock_cloexec < 0.
(init_mq_netlink) [!SOCK_CLOEXEC]: Remove conditional code.
(init_mq_netlink) [!__ASSUME_SOCK_CLOEXEC]: Likewise.
* sysdeps/unix/sysv/linux/opensock.c: Do not include
<kernel-features.h>.
(__opensock) [SOCK_CLOEXEC]: Make code unconditional.
(__opensock) [!__ASSUME_SOCK_CLOEXEC]: Remove conditional code.

9 years agoAdd ifunc tests for x86_64 memset_chk and memset
H.J. Lu [Fri, 20 Jun 2014 21:52:29 +0000 (14:52 -0700)]
Add ifunc tests for x86_64 memset_chk and memset

This patch adds ifunc tests for x86_64 memset_chk and memset.  It also
defines HAS_AVX2 with AVX2_Usable since AVX2 may not be usable even if
processor has AVX2.

* sysdeps/x86_64/multiarch/ifunc-impl-list.c (__libc_ifunc_impl_list):
Add tests for memset_chk and memset.

* sysdeps/x86_64/multiarch/init-arch.h (HAS_AVX2): Defined
with AVX2_Usable.

9 years ago[BZ #16046] dl_iterate_phdr static executable test
Maciej W. Rozycki [Fri, 20 Jun 2014 20:52:53 +0000 (21:52 +0100)]
[BZ #16046] dl_iterate_phdr static executable test