+2019-06-17 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/powerpc/fpu/s_lrintf.S: Remove file.
+ * sysdeps/powerpc/powerpc64/fpu/s_lrintf.c: Move to ...
+ * sysdeps/powerpc/fpu/s_lrintf.c: ... here.
+ * sysdeps/powerpc/powerpc32/fpu/Makefile
+ [$(subdir) == math] (CFLAGS-s_lrint.c): New rule.
+ * sysdeps/powerpc/powerpc32/fpu/s_llrint.c (__llrint): Add power4
+ optimization.
+ * sysdeps/powerpc/powerpc32/fpu/s_llrintf.c (__llrintf): Likewise.
+ * sysdeps/powerpc/powerpc32/fpu/s_lrint.S: Remove file.
+ * sysdeps/powerpc/powerpc32/fpu/s_lrint.c: New file.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile
+ (CFLAGS-s_llrintf-power6.c, CFLAGS-s_llrintf-ppc32.c,
+ CFLAGS-s_llrint-power6.c, CFLAGS-s_llrint-ppc32.c,
+ CFLAGS-s_lrint-ppc32.c): New rule.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint-power6.S:
+ Remove file.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint-ppc32.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf-power6.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf-ppc32.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint-ppc32.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/s_llrint.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/s_llrintf.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power6/fpu/s_llrint.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power6/fpu/s_llrintf.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint-power6.c:
+ New file.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrint-ppc32.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf-power6.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_llrintf-ppc32.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_lrint-ppc32.c:
+ Likewise.
+
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/Makefile
+ (libm-sysdep_routines): Add s_llrint-power8, s_llrint-power6x, and
+ s_llrint-ppc64.
+ (CFLAGS-s_llrint-power8.c, CFLAGS-s_llrint-power6x.c): New rule.
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrint-power6x.c: New
+ file.
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrint-power8.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrint-ppc64.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_lrint.c: Move to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_lrint.c: ... here.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint.c: Move to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrint.c: ... here.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrintf.c: Move to ...
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_llrintf.c: ... here.
+ * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_lrint.c: New file.
+ * sysdeps/powerpc/powerpc64/fpu/Makefile: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile
+ (libm-sysdep_routines): Remove s_llrint-* objects.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power6x.S: Remove
+ file.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-power8.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_llrint-ppc64.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_llrint.c: New file.
+ * sysdeps/powerpc/powerpc64/fpu/s_llrintf.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_lrint.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_lrintf.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_llrint.S: Remove file.
+ * sysdeps/powerpc/powerpc64/fpu/s_llrintf.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_lrint.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power6x/fpu/s_llrint.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power8/fpu/s_llrint.S: Likewise.
+
+2019-06-14 Florian Weimer <fweimer@redhat.com>
+
+ * sysdeps/unix/sysv/linux/bits/statx.h: Use string literal in
+ argument to __glibc_has_include to inhibit macro expansion.
+
+2019-06-14 Florian Weimer <fweimer@redhat.com>
+
+ * misc/sys/cdefs.h (__glibc_has_include): Do not use a
+ function-like macro, so that __has_include can inhibit expansion
+ of its argument.
+
+2019-06-13 Joseph Myers <joseph@codesourcery.com>
+
+ * sysdeps/unix/sysv/linux/bits/in.h (IPV6_ROUTER_ALERT_ISOLATE):
+ New macro.
+
+ * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/localplt.data:
+ Allow memset in libc.so.
+
+2019-06-13 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * sysdeps/aarch64/dl-dtprocnum.h: New file.
+ * sysdeps/aarch64/dl-machine.h (DT_AARCH64): Define.
+ (elf_machine_runtime_setup): Handle DT_AARCH64_VARIANT_PCS.
+ (elf_machine_lazy_rel): Check STO_AARCH64_VARIANT_PCS and bind such
+ symbols at load time.
+ * sysdeps/aarch64/linkmap.h (struct link_map_machine): Add variant_pcs.
+
+2019-06-13 Szabolcs Nagy <szabolcs.nagy@arm.com>
+
+ * elf/elf.h (STO_AARCH64_VARIANT_PCS): Define.
+ (DT_AARCH64_VARIANT_PCS): Define.
+
+2019-06-12 Adhemerval Zanella <adhemerval.zanella@linaro.org>
+
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile
+ (sysdeps_routines, libm-sysdep_routines): Remove s_finite*
+ objects.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finite-power7.S:
+ Remove file.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finite-ppc32.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finite.c: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finitef-ppc32.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_finitef.c: Likewise.
+ * sysdeps/powerpc/powerpc32/power7/fpu/s_finite.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power7/fpu/s_finitef.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile (sysdep_call):
+ Remove s_finite* objects.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power7.S: Remove file.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite-ppc64.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finite.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finitef-ppc64.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_finitef.c: Likewise.
+ * sysdeps/powerpc/powerpc64/power7/fpu/s_finite.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power7/fpu/s_finitef.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power8/fpu/s_finite.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power8/fpu/s_finitef.S: Likewise.
+
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_finite.c: Move to ...
+ * sysdeps/ieee754/dbl-64/s_finite.c: ... here and format code.
+
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile
+ (sysdeps_routines, libm-sysdep_routines): Remove s_isinf* and s_isinf*
+ objects.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinf-power7.S:
+ Remove file.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinf-ppc32.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinf.c: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinff-ppc32.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isinff.c: Likewise.
+ * sysdeps/powerpc/powerpc32/power7/fpu/s_isinf.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power7/fpu/s_isinff.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile (sysdep_call):
+ Remove s_isinf* and s_isinf* objects.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power7.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf-ppc64.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinf.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff-ppc64.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isinff.c: Likewise.
+ * sysdeps/powerpc/powerpc64/power7/fpu/s_isinf.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power7/fpu/s_isinff.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power8/fpu/s_isinf.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power8/fpu/s_isinff.S: Likewise.
+
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_isinf.c: Move to ...
+ * sysdeps/ieee754/dbl-64/s_isinf.c: ... here and format code.
+
+ * sysdeps/powerpc/fpu/s_isnan.c: Remove file.
+ * sysdeps/powerpc/fpu/s_isnanf.S: Likewise.
+ * sysdeps/powerpc/powerpc32/fpu/s_isnan.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile
+ (sysdeps_routines, libm-sysdep_routines): Remove s_isnan-* and
+ s_isnanf-* objects.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-power5.S:
+ Remove file
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-power6.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-power7.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan-ppc32.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnan.c: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnanf-power5.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnanf-power6.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_isnanf.c: Likewise.
+ * sysdeps/powerpc/powerpc32/power5/fpu/s_isnan.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power5/fpu/s_isnanf.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power6/fpu/s_isnan.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power6/fpu/s_isnanf.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power7/fpu/s_isnan.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power7/fpu/s_isnanf.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile (sysdep_calls):
+ Remove s_isnan-* and s_isnanf-* objects.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power5.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power6.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power6x.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power7.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-power8.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan-ppc64.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnan.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_isnanf.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_isnan.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power5/fpu/s_isnan.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power6/fpu/s_isnan.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power6x/fpu/s_isnan.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power7/fpu/s_isnan.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power7/fpu/s_isnanf.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power8/fpu/s_isnan.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power8/fpu/s_isnanf.S: Likewise.
+
+ * sysdeps/ieee754/dbl-64/wordsize-64/s_isnan.c: Move to ...
+ * sysdeps/ieee754/dbl-64/s_isnan.c: ... here and format code.
+
+ * benchtests/Makefile (bench-math): Add isnan, isinf, and isfinite.
+ (CFLAGS-bench-isnan.c, CFLAGS-bench-isinf.c,
+ CFLAGS-bench-isfinite.c): New rule.
+ * benchtests/isnan-input: New file.
+ * benchtests/isinf-input: New file.
+ * benchtests/isfinite-input: New file.
+
+ * sysdeps/powerpc/fpu/s_copysign.c: New file.
+ * sysdeps/powerpc/fpu/s_copysignf.c: Likewise.
+ * sysdeps/powerpc/powerpc32/fpu/s_copysign.S: Remove file.
+ * sysdeps/powerpc/powerpc32/fpu/s_copysignf.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile
+ (sysdep_routines, libm-sysdep_routines): Remove s_copysign-power6 and
+ s_copysign-ppc32.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign-power6.S:
+ Remove file.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign-ppc32.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysign.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_copysignf.c:
+ Likewise.
+ * sysdeps/powerpc/powerpc32/power6/fpu/s_copysign.S: Likewise.
+ * sysdeps/powerpc/powerpc32/power6/fpu/s_copysignf.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile (sysdeps_calls):
+ Remove s_copysign-power6 s_copysign-ppc64.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-power6.S:
+ Remove file.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign-ppc64.S:
+ Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysign.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/multiarch/s_copysignf.c: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_copysign.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_copysignf.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power6/fpu/s_copysign.S: Likewise.
+ * sysdeps/powerpc/powerpc64/power6/fpu/s_copysignf.S: Likewise.
+
+ * sysdeps/powerpc/fpu/round_to_integer.h (set_fenv_mode,
+ round_to_integer_float, round_mode): Add RINT handling.
+ (reset_fenv_mode): New symbol.
+ * sysdeps/powerpc/fpu/s_rint.c (__rint): Use generic implementation.
+ * sysdeps/powerpc/fpu/s_rintf.c (__rintf): Likewise.
+ * sysdeps/powerpc/powerpc32/fpu/s_rint.S: Remove file.
+ * sysdeps/powerpc/powerpc32/fpu/s_rintf.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_rint.S: Likewise.
+ * sysdeps/powerpc/powerpc64/fpu/s_rintf.S: Likewise.
+
+2019-06-12 Florian Weimer <fweimer@redhat.com>
+
+ [BZ #24632]
+ * libio/libioP.h (_IO_JUMPS_FUNC_UPDATE): New macro.
+ * libio/freopen.c (freopen): Use it.
+
+2019-06-12 Florian Weimer <fweimer@redhat.com>
+
+ Linux: Deprecate sysctl.
+ * include/sysctl.h (__sysctl): Remove declaration.
+ * scripts/check-installed-headers.sh (sys/sysctl.h): Disable
+ check.
+ * sysdeps/unix/sysv/linux/sys/sysctl.h: Add deprecation warning.
+ (sysctl): Add deprecation attribute.
+ * sysdeps/unix/sysv/linux/sysctl.c: Include <linux/sysctl.h>
+ directly, to avoid the deprecation warning. Do not include
+ <string.h>.
+ (__sysctl): Remove hidden alias.
+
+2019-06-12 Florian Weimer <fweimer@redhat.com>
+
+ Linux: Use kernel headers for statx definitions if available.
+ * include/bits/statx-generic.h: New file.
+ * include/bits/types/struct_statx.h: Likewise.
+ * include/bits/types/struct_statx_timestamp.h: Likewise.
+ * io/Makefile (headers): Add bits/statx-generic.h.
+ * io/bits/statx-generic.h: New file. Partly copied from
+ io/bits/statx.h.
+ * io/statx_generic.c: Include <bits/types/struct_statx.h> to
+ define original_statx.
+ * io/bits/types/struct_statx.h: Likewise.
+ * io/bits/types/struct_statx_timestamp.h: Likewise.
+ (statx_generic): Use original_statx.
+ * io/bits/statx.h: Rewrite to include <bits/statx-generic.h>.
+ * sysdeps/unix/sysv/linux/bits/statx.h: New file.
+
+2019-06-12 Florian Weimer <fweimer@redhat.com>
+
+ * misc/sys/cdefs.h (__glibc_has_include): Define.
+
+2019-06-12 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * string/memmem.c (__memmem): Rewrite to improve performance.
+
+2019-06-12 Wilco Dijkstra <wdijkstr@arm.com>
+
+ * string/str-two-way.h (two_way_short_needle): Add inline to avoid
+ warning.
+ (two_way_long_needle): Block inlining.
+ * string/strstr.c (strstr2): Add new function.
+ (strstr3): Likewise.
+ (STRSTR): Completely rewrite strstr to improve performance.
+
2019-06-11 Wilco Dijkstra <wdijkstr@arm.com>
* benchtests/bench-strstr.c (test_hard_needle): New function.