platform/upstream/linaro-glibc.git
10 years agoPowerPC: Align power7 memcpy using VSX to quadword
Adhemerval Zanella [Wed, 25 Jun 2014 16:54:31 +0000 (11:54 -0500)]
PowerPC: Align power7 memcpy using VSX to quadword

This patch changes power7 memcpy to use VSX instructions only when
memory is aligned to quardword.  It is to avoid unaligned kernel traps
on non-cacheable memory (for instance, memory-mapped I/O).

10 years agoPowerPC: optimized memmove for POWER7/PPC32
Adhemerval Zanella [Tue, 24 Jun 2014 13:47:52 +0000 (08:47 -0500)]
PowerPC: optimized memmove for POWER7/PPC32

This patch adds a optimized memmove for power7 by using the optimized
power7 memcpy for forward copying.

10 years agoPowerPC: optimized memmove for POWER7/PPC64
Adhemerval Zanella [Fri, 20 Jun 2014 17:55:16 +0000 (12:55 -0500)]
PowerPC: optimized memmove for POWER7/PPC64

This patch adds an optimized memmove optimization for POWER7/powerpc64.
Basically the idea is to use the memcpy for POWER7 on non-overlapped
memory regions and a optimized backward memcpy for memory regions
that overlap (similar to the idea of string/memmove.c).

The backward memcpy algorithm used is similar the one use for memcpy for
POWER7, with adjustments done for alignment.  The difference is memory
is always aligned to 16 bytes before using VSX/altivec instructions.

10 years agoPowerPC: memmove default implementation cleanup
Adhemerval Zanella [Tue, 24 Jun 2014 11:42:31 +0000 (06:42 -0500)]
PowerPC: memmove default implementation cleanup

This patch removes the powerpc specific logic in memmove and instead
include default implementation with MEMCPY_OK_FOR_FWD_MEMMOVE defined.
This lead in a increase performance, since the constraints to use
memcpy in powerpc code are too restrictive and memcpy can be used for
any forward memmove.

10 years agoPowerPC: Guard CALL_ELF check for ppc64 only in link.h
Adhemerval Zanella [Tue, 24 Jun 2014 11:41:46 +0000 (06:41 -0500)]
PowerPC: Guard CALL_ELF check for ppc64 only in link.h

This patch fixes powerpc32 undef compiler warnings for _CALL_ELF,
since it is defined only for powerpc64.

10 years agoRemove old stub lowlevellock.h file. It is not even useful as documentation.
Roland McGrath [Mon, 7 Jul 2014 16:29:34 +0000 (09:29 -0700)]
Remove old stub lowlevellock.h file.  It is not even useful as documentation.

10 years agoNPTL is no longer an add-on!
Roland McGrath [Mon, 7 Jul 2014 16:29:06 +0000 (09:29 -0700)]
NPTL is no longer an add-on!

10 years agoGet rid of nptl/sysdeps/ entirely!
Roland McGrath [Mon, 7 Jul 2014 16:28:38 +0000 (09:28 -0700)]
Get rid of nptl/sysdeps/ entirely!

10 years agoAdd comment for MEMCPY_OK_FOR_FWD_MEMMOVE
Siddhesh Poyarekar [Fri, 4 Jul 2014 19:39:15 +0000 (01:09 +0530)]
Add comment for MEMCPY_OK_FOR_FWD_MEMMOVE

10 years agostring/memchr.c: Merge from gnulib
Will Newton [Thu, 26 Jun 2014 15:00:44 +0000 (16:00 +0100)]
string/memchr.c: Merge from gnulib

Merge most of the gnulib implementation of memchr. The changes that
remain are:

 - copyright header
 - bp-sym.h removed
 - reg_char removed
 - allow MEMCHR to be redefined
 - non-conforming whitespace changes

The merged code fixes a number of -Wundef warnings and also introduces
an optimized algorithm. I haven't detected any performance difference
in the new code which I believe is down to the quite specific
circumstances required to hit it. However the new code is approximately
half the size of the old code on AArch64 (which uses generic memchr).

ChangeLog:

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

* string/memchr.c: Merge from gnulib.
[_LIBC]: Remove conditionals.
(__ptr_t): Remove define.
(LONG_MAX_32_BITS): Likewise.
(LONG_MAX): Likewise.
(MEMCHR): Use ANSI prototype and optimize algorithm.

10 years agoARM: Define ELF_MACHINE_NO_REL
Will Newton [Thu, 3 Jul 2014 09:50:50 +0000 (10:50 +0100)]
ARM: Define ELF_MACHINE_NO_REL

Fix a -Wundef warning on ARM.

ChangeLog:

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

* sysdeps/arm/dl-machine.h (ELF_MACHINE_NO_REL): Define.

10 years agoFix ia64 build error in lll_futex_timed_wait_bitset
Roland McGrath [Fri, 4 Jul 2014 05:03:14 +0000 (22:03 -0700)]
Fix ia64 build error in lll_futex_timed_wait_bitset

10 years agoFix unwind.h configure check for bare environment.
Roland McGrath [Fri, 4 Jul 2014 04:46:59 +0000 (21:46 -0700)]
Fix unwind.h configure check for bare environment.

10 years agoAdd missing #include in sysdeps/alpha/fpu/s_nearbyint.c
Roland McGrath [Fri, 4 Jul 2014 04:15:56 +0000 (21:15 -0700)]
Add missing #include in sysdeps/alpha/fpu/s_nearbyint.c

10 years agoRobustify Linux kernel headers configure checks
Roland McGrath [Fri, 4 Jul 2014 03:35:42 +0000 (20:35 -0700)]
Robustify Linux kernel headers configure checks

10 years agoS390: Quash unused variable warning due to no-op THREAD_SET_POINTER_GUARD.
Roland McGrath [Fri, 4 Jul 2014 02:17:00 +0000 (19:17 -0700)]
S390: Quash unused variable warning due to no-op THREAD_SET_POINTER_GUARD.

10 years agoRestore subdir conditional for tst-timer dependency.
Siddhesh Poyarekar [Fri, 4 Jul 2014 01:52:51 +0000 (18:52 -0700)]
Restore subdir conditional for tst-timer dependency.

10 years agoalpha: Remove nearbyint and nearbyintf implementations
Richard Henderson [Thu, 3 Jul 2014 17:37:59 +0000 (10:37 -0700)]
alpha: Remove nearbyint and nearbyintf implementations

The original implementation was written for EV5, which does not
record inexact in the status register for /SU (but no /I) insns.
But EV6 does record the inexact status; the lack of /I simply
means that the exception is suppressed.

Adding feholdexcept becomes the bulk of the overhead, so we might
as well use the default implementation.

10 years agoalpha: Implement math_opt_barrier and math_force_eval
Richard Henderson [Thu, 3 Jul 2014 15:56:55 +0000 (08:56 -0700)]
alpha: Implement math_opt_barrier and math_force_eval

10 years agoalpha: Fix lround implementations
Richard Henderson [Thu, 3 Jul 2014 15:52:45 +0000 (08:52 -0700)]
alpha: Fix lround implementations

Use chopped rounding to add 0.5.

10 years agoalpha: Remove round and roundf implementations
Richard Henderson [Thu, 3 Jul 2014 15:45:57 +0000 (08:45 -0700)]
alpha: Remove round and roundf implementations

Two bugs in these implementations: First is that the add of 0.5
was not done in chopped rounding mode (easily fixable).  Second
is that the method generates incorrect inexact exceptions for
small integral values (not easily fixable).

10 years agoChangelog for last 8 patches
Richard Henderson [Thu, 3 Jul 2014 15:37:55 +0000 (08:37 -0700)]
Changelog for last 8 patches

10 years agoRely on HP_TIMING_AVAIL implies HP_SMALL_TIMING_AVAIL
Richard Henderson [Tue, 1 Jul 2014 17:30:18 +0000 (10:30 -0700)]
Rely on HP_TIMING_AVAIL implies HP_SMALL_TIMING_AVAIL

10 years agoAlways provide HP_SMALL_TIMING_AVAIL
Richard Henderson [Tue, 1 Jul 2014 17:20:14 +0000 (10:20 -0700)]
Always provide HP_SMALL_TIMING_AVAIL

10 years agoaarch64: Add hp-timing.h
Richard Henderson [Wed, 25 Jun 2014 21:02:39 +0000 (14:02 -0700)]
aarch64: Add hp-timing.h

10 years agoUnify hp-timing implementations
Richard Henderson [Wed, 25 Jun 2014 20:58:59 +0000 (13:58 -0700)]
Unify hp-timing implementations

Provide an hp-timing-common.h for ports to use.

10 years agoRemove HP_TIMING_DIFF_INIT and dl_hp_timing_overhead
Richard Henderson [Wed, 25 Jun 2014 19:27:16 +0000 (12:27 -0700)]
Remove HP_TIMING_DIFF_INIT and dl_hp_timing_overhead

Without HP_TIMING_ACCUM, dl_hp_timing_overhead is write-only.
If we remove it, there's no point in HP_TIMING_DIFF_INIT either.

10 years agoRemoving HP_TIMING_ACCUM as unused
Richard Henderson [Wed, 25 Jun 2014 19:15:19 +0000 (12:15 -0700)]
Removing HP_TIMING_ACCUM as unused

10 years agoRemoving HP_TIMING_ZERO as unused
Richard Henderson [Wed, 25 Jun 2014 18:40:18 +0000 (11:40 -0700)]
Removing HP_TIMING_ZERO as unused

10 years agopowerpc: Remove dummy hp-timing.h
Richard Henderson [Wed, 25 Jun 2014 18:36:52 +0000 (11:36 -0700)]
powerpc: Remove dummy hp-timing.h

It's the same as the generic dummy version.

10 years agostdlib/tst-strtod-overflow: Bump timeout up yet
Maciej W. Rozycki [Thu, 3 Jul 2014 07:07:55 +0000 (08:07 +0100)]
stdlib/tst-strtod-overflow: Bump timeout up yet

This test case is very, especially on targets using soft-float or QEMU
(where soft-float is used internally), and appears to be the only such
outlier.  Therefore rather than requiring to have TIMEOUTFACTOR set
large enough globally, bump up the local scaling factor instead.

* stdlib/tst-strtod-overflow.c (TIMEOUT): Bump up to 30.

10 years agoSync up loadmsgcat.c with gettext
Siddhesh Poyarekar [Wed, 2 Jul 2014 20:06:10 +0000 (01:36 +0530)]
Sync up loadmsgcat.c with gettext

10 years agoFix Wundef warning for __STDC_VERSION__
Siddhesh Poyarekar [Wed, 2 Jul 2014 20:02:17 +0000 (01:32 +0530)]
Fix Wundef warning for __STDC_VERSION__

c4c4124473c187b5c4642611390897666c3d3970 added the _Noreturn macro for
pre-C11 compilers, but it now throws a new Wundef warning during `make
check` for __STDC_VERSION__ which gcc does not define by default.  The
following patch fixes this in line with other uses of __STDC_VERSION__
in the file.

10 years agoDon't use __glibc_unlikely in shared code
Siddhesh Poyarekar [Wed, 2 Jul 2014 20:00:02 +0000 (01:30 +0530)]
Don't use __glibc_unlikely in shared code

10 years agoFix -Wundef warning on PAGE_COPY_THRESHOLD
Siddhesh Poyarekar [Wed, 2 Jul 2014 19:58:45 +0000 (01:28 +0530)]
Fix -Wundef warning on PAGE_COPY_THRESHOLD

The PAGE_COPY_THRESHOLD macro is meant to be overridden by
architecture-specific pagecopy.h, but it is currently done only by
mach; all other architectures use the default.  Check to see if the
macro is defined in addition to whether it is set to a non-zero value.

10 years agoPowerPC: strcat optimization for PPC64/POWER7
Vidya Ranganathan [Thu, 12 Jun 2014 03:21:20 +0000 (22:21 -0500)]
PowerPC: strcat optimization for PPC64/POWER7

This patch adds an ifunc power7 strcat symbol that uses the logic on
sysdeps/powerpc/strcat.c but call power7 strlen/strcpy symbols instead
of default ones.

10 years agoAdd missing #include for MIN use in dl-sysdep.c.
Roland McGrath [Wed, 2 Jul 2014 18:10:08 +0000 (11:10 -0700)]
Add missing #include for MIN use in dl-sysdep.c.

10 years agoFix typo and formatting in loadmsgcat.c
Siddhesh Poyarekar [Wed, 2 Jul 2014 11:27:48 +0000 (16:57 +0530)]
Fix typo and formatting in loadmsgcat.c

This reduces the differences with gettext version of loadmsgcat.c

10 years agoFix typo in macro name
Siddhesh Poyarekar [Wed, 2 Jul 2014 09:39:39 +0000 (15:09 +0530)]
Fix typo in macro name

It is _POSIX_SIGNALS and not _POSUX_SIGNALS

10 years agomalloc/obstack: Merge from gnulib
Will Newton [Mon, 23 Jun 2014 15:53:30 +0000 (16:53 +0100)]
malloc/obstack: Merge from gnulib

Merge the latest version of the obstack.c and obstack.h files
from gnulib. The majority of this change is coding style and
cosmetic comment changes but it also fixes a -Wundef warning
in the build as a side effect.

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

* malloc/obstack.c: Merge from gnulib master.
[HAVE_CONFIG_H]: Remove conditional code.
[!_LIBC]: Include config.h.
[!ELIDE_CODE]: Don't include inttypes.h, include
stdint.h unconditionally.
(print_and_abort): Mark as _Noreturn.
(_obstack_allocated_p): Mark as __attribute_pure__.
(obstack_free): Rename to __obstack_free.
[!__attribute__]: Remove conditional code.
* malloc/obstack.h: Merge from gnulib master.
[__cplusplus]: Move conditional down.
[!__attribute_pure__]: Define __attribute_pure__ here
if it is not already defined.
(_obstack_memory_used): Mark as __attribute_pure__.
[!__obstack_free]: Define as obstack_free.
[__GNUC__]: Remove check for ancient NeXT gcc.

10 years agomisc/sys/cdefs.h: Add _Noreturn macro for pre-C11 compilers
Paul Eggert [Fri, 28 Mar 2014 18:59:41 +0000 (11:59 -0700)]
misc/sys/cdefs.h: Add _Noreturn macro for pre-C11 compilers

2014-07-02  Will Newton  <will.newton@linaro.org>
    Paul Eggert  <eggert@cs.ucla.edu>

* misc/sys/cdefs.h (_Noreturn): New macro, for pre-C11 compilers.

10 years agoAdd comment to gethnamaddr.c to warn that the file is unmaintained
Siddhesh Poyarekar [Wed, 2 Jul 2014 07:55:55 +0000 (13:25 +0530)]
Add comment to gethnamaddr.c to warn that the file is unmaintained

10 years agohppa: Remove GLIBC_2.3 from librt.abilist.
Carlos O'Donell [Wed, 2 Jul 2014 07:11:53 +0000 (03:11 -0400)]
hppa: Remove GLIBC_2.3 from librt.abilist.

This commit removes the aio_cancel and aio_cancel64 symbols at
GLIBC_2.3 from the ABI baseline. The ABI baseline is now complete
for hppa and considered stable.

10 years agohppa: Add ABI baselines.
Carlos O'Donell [Wed, 2 Jul 2014 03:52:09 +0000 (23:52 -0400)]
hppa: Add ABI baselines.

The following ABI baselines were tested against several old releases
of debian and gentoo. Several problems were discovered and fixed as
part of developing the ABI baselines.

Firstly, libBrokenLocale on gentoo exports __ctype_get_mb_cur_max
as @@GLIBC_2.0, but it should be @@GLIBC_2.2 since that's the minimum
version defined in shlib-versions for hppa. I don't know when this
broke, but master properly parses hppa's shlib-versions which clearly
lists libBrokenLocale as defaulting to GLIBC_2.2. Therefore I'm
accepting GLBIC_2.2 as the correct version for this symbol and setting
the baseline to that, despite the fact that the present distribution
is wrong. I don't expect that any new applications should be using
libBrokenLocale, so it should match the oldest behaviour which is to
export a GLIBC_2.2 symbol. For example in debian's 2.7 has it at
version GLIBC_2.2.

Secondly, aio_cancel and aio_cancel64 previously had a compat symbol
at version @GLIBC_2.1 with a new symbol at @@GLIBC_2.3[1]. During the
Linuxthreads to NPTL transition the file aio_cancel.c was lost for hppa
and that resulted in just @@GLIBC_2.1 versions of these symbols being
exported. The @@GLIBC_2.1 version works correctly and uses the right
value of ECANCELLED. Therefore if I were to fix this today it might
break correctly working applications using aio_cancel*@GLIBC_2.1 by
causing those to use the old aio_cancel that used the older value
of ECANCELLED. Thus the best option is to accept that the ABI changed
and ignore older applications in favour of newer applications. The
best thing to do is cleanup the version files (included in the patch).

The rest of the ABI was as expected (ignoring __p_type_syms size
change in 2008).

10 years agoAdd missing #include for MIN/MAX users.
Roland McGrath [Tue, 1 Jul 2014 22:01:24 +0000 (15:01 -0700)]
Add missing #include for MIN/MAX users.

10 years agoalpha: Fix isnan
Richard Henderson [Tue, 1 Jul 2014 15:27:49 +0000 (08:27 -0700)]
alpha: Fix isnan

The isunordered formulation raises SIGFPE for SNaN.

10 years agoalpha: Update libm-test-ulps
Richard Henderson [Tue, 1 Jul 2014 15:15:32 +0000 (08:15 -0700)]
alpha: Update libm-test-ulps

10 years agoS/390: Regenerate ULPs
Stefan Liebler [Tue, 1 Jul 2014 14:04:58 +0000 (11:04 -0300)]
S/390: Regenerate ULPs

10 years agoRemove MULTI_PTRS_ARE_ALIASES in dns-hosts.c
Siddhesh Poyarekar [Tue, 1 Jul 2014 08:44:09 +0000 (14:14 +0530)]
Remove MULTI_PTRS_ARE_ALIASES in dns-hosts.c

The code in gethnamaddr.c for gethostbyaddr used and set this macro to
allow multiple PTR records to be added as aliases.  This was useful
for gethostbyaddr since it returns a hostent structure, which can
return aliases.

The gethnamaddr.c source however is unused in glibc since pretty much
forever.  Instead, the DNS lookup bits for gethostbyaddr (as well as
getnameinfo) are implemented in dns-hosts.c and in that implementation
all but one (the first one) of the multiple PTR records are ignored.
Since gethnamaddr.c is essentially dead code, ignore that
implementation and replace the MULTI_PTRS_ARE_ALIASES bit with a
comment mentioning that bind adds PTR records as aliases while we
don't.

10 years agoMicroBlaze: Update kernel-features.h for syscalls added in 3.15
Joseph Myers [Tue, 1 Jul 2014 01:57:46 +0000 (11:57 +1000)]
MicroBlaze: Update kernel-features.h for syscalls added in 3.15

Now that the MicroBlaze 3.15 kernel has the pselect6, preadv and
pwritev syscalls, this patch updates kernel-features.h so they are
assumed to be present for 3.15 and later kernels.

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

* sysdeps/unix/sysv/linux/microblaze/kernel-features.h
[__LINUX_KERNEL_VERSION >= 0x030f00] (__ASSUME_PSELECT): Do not
undefine.
[__LINUX_KERNEL_VERSION >= 0x030f00] (__ASSUME_PREADV): Likewise.
[__LINUX_KERNEL_VERSION >= 0x030f00] (__ASSUME_PWRITEV): Likewise.

Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
10 years agoMicroBlaze: Consolidate nptl/ subdirectories under linux/...
Roland McGrath [Wed, 25 Jun 2014 21:40:40 +0000 (14:40 -0700)]
MicroBlaze: Consolidate nptl/ subdirectories under linux/...

Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
10 years agoMicroBlaze: Consolidate NPTL/non versions of vfork
Roland McGrath [Wed, 25 Jun 2014 21:33:52 +0000 (14:33 -0700)]
MicroBlaze: Consolidate NPTL/non versions of vfork

10 years agoMicroBlaze: Move NPTL public headers to sysdeps/microblaze/nptl/.
Roland McGrath [Wed, 25 Jun 2014 18:18:27 +0000 (11:18 -0700)]
MicroBlaze: Move NPTL public headers to sysdeps/microblaze/nptl/.

10 years agoMicroBlaze: Define TLS_DEFINE_INIT_TP
Roland McGrath [Sat, 21 Jun 2014 00:34:56 +0000 (17:34 -0700)]
MicroBlaze: Define TLS_DEFINE_INIT_TP

10 years agoMicroBlaze: Convert fork.c to arch-fork.h
Roland McGrath [Wed, 25 Jun 2014 18:17:28 +0000 (11:17 -0700)]
MicroBlaze: Convert fork.c to arch-fork.h

10 years agoMicroBlaze: Add missing sysdep-cancel.h implementation
David Holsgrove [Mon, 30 Jun 2014 04:01:22 +0000 (14:01 +1000)]
MicroBlaze: Add missing sysdep-cancel.h implementation

And update socket.S, Makefile to use *_nocancel definitions.

Absence of sysdep-cancel.h was not apparent until Roland's
not-cancel.h unification.

2014-06-30  David Holsgrove  <david.holsgrove@xilinx.com>

  * sysdeps/unix/sysv/linux/microblaze/sysdep-cancel.h: New file
  * sysdeps/unix/sysv/linux/microblaze/socket.S: Update SINGLE_THREAD_P
  * sysdeps/unix/sysv/linux/microblaze/Makefile: Add to libpthread-routines

Signed-off-by: David Holsgrove <david.holsgrove@xilinx.com>
10 years agoUpdate powerpc-fpu ULPs.
Adhemerval Zanella [Mon, 30 Jun 2014 21:38:43 +0000 (17:38 -0400)]
Update powerpc-fpu ULPs.

10 years agoRegenerate MIPS libm-test-ulps.
Joseph Myers [Mon, 30 Jun 2014 21:34:20 +0000 (21:34 +0000)]
Regenerate MIPS libm-test-ulps.

This patch regenerates libm-test-ulps for MIPS.

* sysdeps/mips/mips32/libm-test-ulps: Regenerated.
* sysdeps/mips/mips64/libm-test-ulps: Likewise.

10 years agoRegenerate powerpc-nofpu libm-test-ulps.
Joseph Myers [Mon, 30 Jun 2014 21:26:49 +0000 (21:26 +0000)]
Regenerate powerpc-nofpu libm-test-ulps.

This patch regenerates libm-test-ulps for powerpc-nofpu.

* sysdeps/powerpc/nofpu/libm-test-ulps: Regenerated.

10 years agoRegenerate ARM libm-test-ulps.
Joseph Myers [Mon, 30 Jun 2014 21:20:35 +0000 (21:20 +0000)]
Regenerate ARM libm-test-ulps.

This patch regenerates libm-test-ulps for ARM.  As before it may be
useful for someone building for a configuration with VFMA enabled to
do a followup regeneration for any additional ulps in that
configuration.

Committed.

* sysdeps/arm/libm-test-ulps: Regenerated.

10 years agotest-skeleton: Kill any child process's offspring
Maciej W. Rozycki [Mon, 30 Jun 2014 19:05:34 +0000 (20:05 +0100)]
test-skeleton: Kill any child process's offspring

This makes sure any subprocesses created by the program being tested get
killed as well if their parent times out.  Otherwise if they are really
stuck, they may remain there running forever after the test case and
then the whole test suite has completed, until killed by hand.

* test-skeleton.c (signal_handler): Kill the whole process group
before killing the child individually.
(main): Report any failure on `setpgid'.

10 years agoARM: Split Linuxism out of sysdeps/arm/nptl/tls.h
Roland McGrath [Mon, 30 Jun 2014 18:19:22 +0000 (11:19 -0700)]
ARM: Split Linuxism out of sysdeps/arm/nptl/tls.h

10 years agoFix ldbl-128 expm1l spurious underflow (bug 16539).
Joseph Myers [Mon, 30 Jun 2014 17:38:16 +0000 (17:38 +0000)]
Fix ldbl-128 expm1l spurious underflow (bug 16539).

This patch fixes spurious underflows from ldbl-128 expm1l, as reported
in <https://sourceware.org/ml/libc-alpha/2014-06/msg00835.html> and
exposed by the tests added for such a bug in the x86 / x86-64
version.  The bug and fix are essentially the same, so no separate bug
is filed in Bugzilla.

Tested for mips64.

[BZ #16539]
* sysdeps/ieee754/ldbl-128/s_expm1l.c: Include <float.h>.
(__expm1l): Return argument unchanged when small but not
subnormal.

10 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.

10 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.

10 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.

10 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.

10 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

10 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.

10 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.

10 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/...

10 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

10 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.

10 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.

10 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.

10 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.

10 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

10 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.

10 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.

10 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

10 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.

10 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.

10 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.

10 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.

10 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.

10 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.

10 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.

10 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.

10 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.

10 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/...

10 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/.

10 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

10 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

10 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/...

10 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

10 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.

10 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.

10 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.

10 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.

10 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.