]> git.ipfire.org Git - thirdparty/glibc.git/blobdiff - ChangeLog
malloc/tst-mallocfork2: Use process-shared barriers
[thirdparty/glibc.git] / ChangeLog
index 41c1a7ec030d1716ee64782667cfd1605036d5d9..a9c85c9b35e19bc9c63a574c63f52762603f4748 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,381 @@
+2019-05-03  Florian Weimer  <fweimer@redhat.com>
+
+       malloc/tst-mallocfork2: Use process-shared barriers.
+       * malloc/tst-mallocfork2.c: Switch to <support/test-driver.c>.
+       (signal_count, sigusr1_sender_pid): Remove.
+       (iterations): Define constant.
+       (shared): New variable.
+       (sigusr1_received): Update comment.
+       (sigusr1_handler): Do not send SIGSTOP to the sender process.
+       (signal_sender): Optional use barriers to avoid sending signals
+       during irrelevant times.
+       (do_it): Initialize variable shared.  Use xfork for error
+       checking.  Launch multiple SIGUSR1-sending subprocesses.  Limit
+       the iteration count, independent of signal delivery.  Check for
+       deadlocks in fork.  Introduce barriers for reducing signal
+       traffic.  Do not send SIGCONT to the SIGUSR1-sending processes;
+       replaced by the barriers.  Count signals during fork/free/malloc
+       and report them.
+       * malloc/Makefile (tst-mallocfork): Link with libpthread.
+
+2019-05-03  Florian Weimer  <fweimer@redhat.com>
+
+       * misc/tst-tsearch.c (walk_tree): Add more error checking.
+
+2019-05-02  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
+
+       [BZ #24506]
+       * elf/tst-pldd.c (in_str_list): New function.
+       (do_test): Add default names for ld and libc as one option.
+
+2019-05-02  Florian Weimer  <fweimer@redhat.com>
+
+       misc: Add twalk_r function.
+       * include/search.h (__twalk_r): Declare.
+       * manual/examples/twalk.c: New file.
+       * manual/search.texi (Tree Search Function): Document twalk_r.
+       * misc/Versions (2.30): Export twalk_r.
+       (GLIBC_PRIVATE): Export __twalk_r.
+       * misc/search.h [__USE_GNU] (twalk_r): Declare.
+       * misc/tsearch.c (trecurse_r, __twalk_r): New functions.
+       (twalk_r): Add weak alias.
+       * misc/tst-tsearch.c (struct walk_trace_element): Define.
+       (walk_trace): New variable.
+       (struct twalk_with_twalk_r_closure): Define.
+       (twalk_with_twalk_r_action): New function.
+       (twalk_with_twalk_r): Likewise.
+       (walk_action): Call walk_trace_add.
+       (walk_tree_with): Rename from walk_tree.  Add walk argument.
+       (walk_tree): New function.
+       * sysdeps/mach/hurd/i386/libc.abilist (GLIBC_2.30): Add twalk_r.
+       * sysdeps/unix/sysv/linux/aarch64/libc.abilist (GLIBC_2.30):
+       Likewise.
+       * sysdeps/unix/sysv/linux/alpha/libc.abilist (GLIBC_2.30):
+       Likewise.
+       * sysdeps/unix/sysv/linux/arm/libc.abilist (GLIBC_2.30): Likewise.
+       * sysdeps/unix/sysv/linux/csky/libc.abilist (GLIBC_2.30): Likewise.
+       * sysdeps/unix/sysv/linux/hppa/libc.abilist (GLIBC_2.30): Likewise.
+       * sysdeps/unix/sysv/linux/i386/libc.abilist (GLIBC_2.30): Likewise.
+       * sysdeps/unix/sysv/linux/ia64/libc.abilist (GLIBC_2.30): Likewise.
+       * sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist (GLIBC_2.30):
+       Likewise.
+       * sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist (GLIBC_2.30):
+       Likewise.
+       * sysdeps/unix/sysv/linux/microblaze/libc.abilist (GLIBC_2.30):
+       Likewise.
+       * sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist
+       (GLIBC_2.30): Likewise.
+       * sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist
+       (GLIBC_2.30): Likewise.
+       * sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist
+       (GLIBC_2.30): Likewise.
+       * sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist
+       (GLIBC_2.30): Likewise.
+       * sysdeps/unix/sysv/linux/nios2/libc.abilist (GLIBC_2.30):
+       Likewise.
+       * sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist
+       (GLIBC_2.30): Likewise.
+       * sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist
+       (GLIBC_2.30): Likewise.
+       * sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist
+       (GLIBC_2.30): Likewise.
+       * sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist
+       (GLIBC_2.30): Likewise.
+       * sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist (GLIBC_2.30):
+       Likewise.
+       * sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist (GLIBC_2.30):
+       Likewise.
+       * sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist (GLIBC_2.30):
+       Likewise.
+       * sysdeps/unix/sysv/linux/sh/libc.abilist (GLIBC_2.30): Likewise.
+       * sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist (GLIBC_2.30):
+       Likewise.
+       * sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist (GLIBC_2.30):
+       Likewise.
+       * sysdeps/unix/sysv/linux/x86_64/64/libc.abilist (GLIBC_2.30):
+       Likewise.
+       * sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist (GLIBC_2.30):
+       Likewise.
+
+2019-04-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Make mktime etc. compatible with __time64_t
+       Keep these functions compatible with Gnulib while adding
+       __time64_t support.  The basic idea is to move private API
+       declarations from include/time.h to time/mktime-internal.h, since
+       the former file cannot easily be shared with Gnulib whereas the
+       latter can.
+       Also, do some other minor cleanup while in the neighborhood.
+       * include/time.h: Include stdbool.h, time/mktime-internal.h.
+       (__mktime_internal): Move this prototype to time/mktime-internal.h,
+       since Gnulib needs it.
+       (__localtime64_r, __gmtime64_r) [__TIMESIZE == 64]:
+       Move these macros to time/mktime-internal.h, since Gnulib needs them.
+       (__mktime64, __timegm64) [__TIMESIZE != 64]: New prototypes.
+       (in_time_t_range): New static function.
+       * posix/bits/types.h (__time64_t): Move to time/mktime-internal.h,
+       so that glibc users are not tempted to use __time64_t.
+       * time/mktime-internal.h: Rewrite so that it does both glibc
+       and Gnulib work.  Include time.h if not _LIBC.
+       (mktime_offset_t) [!_LIBC]: Define for gnulib.
+       (__time64_t): New type or macro, moved here from
+       posix/bits/types.h.
+       (__gmtime64_r, __localtime64_r, __mktime64, __timegm64)
+       [!_LIBC || __TIMESIZE == 64): New macros, mostly moved here
+       from include/time.h.
+       (__gmtime_r, __localtime_r, __mktime_internal) [!_LIBC]:
+       New macros, taken from GNulib.
+       (__mktime_internal): New prototype, moved here from include/time.h.
+       * time/mktime.c (mktime_min, mktime_max, convert_time)
+       (ranged_convert, __mktime_internal, __mktime64):
+       * time/timegm.c (__timegm64):
+       Use __time64_t, not time_t.
+       * time/mktime.c: Stop worrying about whether time_t is floating-point.
+       (__mktime64) [! (_LIBC && __TIMESIZE != 64)]:
+       Rename from mktime.
+       (mktime) [_LIBC && __TIMESIZE != 64]: New function.
+       * time/timegm.c [!_LIBC]: Include libc-config.h, not config.h,
+       for libc_hidden_def.
+       Include errno.h.
+       (__timegm64) [! (_LIBC && __TIMESIZE != 64)]:
+       Rename from timegm.
+       (timegm) [_LIBC && __TIMESIZE != 64]: New function.
+
+2019-04-30  Maciej W. Rozycki  <macro@wdc.com>
+
+       [BZ #19444]
+       * sysdeps/ieee754/soft-fp/s_ddivl.c (__ddivl): Ignore errors
+       from `-Wmaybe-uninitialized'.
+       * sysdeps/ieee754/soft-fp/s_fdivl.c (__fdivl): Likewise.
+
+2019-04-29  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
+
+       * sysdeps/powerpc/fpu/fenv_libc.h (__fesetround_inline_nocheck): New
+       function.
+       * sysdeps/powerpc/fpu/round_to_integer.h: New file.
+       * sysdeps/powerpc/fpu/s_ceil.c: Likewise.
+       * sysdeps/powerpc/fpu/s_ceilf.c: Likewise.
+       * sysdeps/powerpc/powerpc32/fpu/s_ceil.S: Remove file.
+       * sysdeps/powerpc/powerpc32/fpu/s_ceilf.S: Likewise.
+       * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/Makefile
+       (CFLAGS-s_ceil-power5+.c, CFLAGS-s_ceilf-power5+.c): New rule.
+       * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil-power5+.S:
+       Remove file.
+       * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil-ppc32.S:
+       Likewise.
+       * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf-power5+.S:
+       Likewise.
+       * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf-ppc32.S:
+       Likewise.
+       * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil-power5+.c:
+       New file.
+       * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceil-ppc32.c:
+       Likewise.
+       * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf-power5+.c:
+       Likewise.
+       * sysdeps/powerpc/powerpc32/power4/fpu/multiarch/s_ceilf-ppc32.c:
+       Likewise.
+       * sysdeps/powerpc/powerpc32/power5+/fpu/s_ceil.S: Remove file.
+       * sysdeps/powerpc/powerpc32/power5+/fpu/s_ceilf.S: Likewise.
+       * sysdeps/powerpc/powerpc64/be/fpu/multiarch/Makefile: New file.
+       * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceil-power5+.c:
+       Likewise.
+       * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceil-ppc64.c:
+       Likewise.
+       * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil.c: Move to ...
+       * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceil.c: ... here.
+       * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceilf-power5+.c: New
+       file.
+       * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceilf-ppc64.c:
+       Likewise.
+       * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf.c: Move to ...
+       * sysdeps/powerpc/powerpc64/be/fpu/multiarch/s_ceilf.c: ...
+       * here.
+       * sysdeps/powerpc/powerpc64/fpu/multiarch/Makefile
+       (libm-sysdep_routines): Remove s_ceil-power5+, s_ceil-ppc64,
+       s_ceilf-power5+, and s_ceilf-ppc64.
+       * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-power5+.S: Remove
+       file.
+       * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceil-ppc64.S: Likewise.
+       * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-power5+.S: Likewise.
+       * sysdeps/powerpc/powerpc64/fpu/multiarch/s_ceilf-ppc64.S: Likewise.
+       * sysdeps/powerpc/powerpc64/fpu/s_ceil.S: Likewise.
+       * sysdeps/powerpc/powerpc64/fpu/s_ceilf.S: Likewise.
+       * sysdeps/powerpc/powerpc64/power5+/fpu/s_ceil.S: Likewise.
+       * sysdeps/powerpc/powerpc64/power5+/fpu/s_ceilf.S: Likewise.
+
+       * sysdeps/powerpc/power4/fpu/Makefile: Remove file.
+       * sysdeps/powerpc/power4/fpu/mpa-arch.h: Likewise.
+       * sysdeps/powerpc/power4/fpu/mpa.c: Likewise.
+
+2019-04-29  Yann Droneaud  <ydroneaud@opteya.com>
+
+       * sysdeps/pthread/semaphore.h (sem_init): Add __nonnull attribute.
+       (sem_destroy, sem_open, sem_close, sem_unlink): Likewise.
+       (sem_wait, sem_timedwait, sem_trywait, sem_post): Likewise.
+       (sem_getvalue): Likewise.
+
+2019-04-26  Florian Weimer  <fweimer@redhat.com>
+
+       elf: Link sotruss-lib.so with BIND_NOW for --enable-bind-now.
+       * elf/Makefile (LDFLAGS-sotruss-lib.so): Set.
+
+2019-04-26  Florian Weimer  <fweimer@redhat.com>
+
+       Makeconfig: Move -Wl,-rpath-link options before library references.
+       * Makeconfig (+link-pie, +link): Add $(link-libc-rpath-link).
+       (link-libc): Remove $(link-libc-rpath-link).
+
+2019-04-25  Florian Weimer  <fweimer@redhat.com>
+
+       * Makeconfig (+link-pie-before-libc): Remove $(CC).
+       (+link-pie, +link-pie-tests, +link-pie-printers-tests): Add $(CC).
+       (+link-static-before-libc): Remove $(CC).
+       (+link-static, +link-static-tests): Add $(CC).
+       (+link-before-libc): Remove $(CC).
+       (+link, +link-pie, +link-pie-printers): Add $(CC).
+
+2019-04-26  Florian Weimer  <fweimer@redhat.com>
+
+       * Makeconfig (+link-pie-before-libc): Remove $(CC).
+       (+link-pie, +link-pie-tests, +link-pie-printers-tests): Add $(CC).
+       (+link-static-before-libc): Remove $(CC).
+       (+link-static, +link-static-tests): Add $(CC).
+       (+link-before-libc): Remove $(CC).
+       (+link, +link-pie, +link-pie-printers): Add $(CC).
+
+2019-04-25  David Abdurachmanov  <david.abdurachmanov@gmail.com>
+
+       [BZ#24484]
+       * sysdeps/riscv/ldsodefs.h (DL_RO_DYN_SECTION): Remove.
+
+2019-04-25  Florian Weimer  <fweimer@redhat.com>
+
+       benchtests: Enable BIND_NOW if configured with --enable-bind-now.
+       * benchtests/Makefile [$(bind-now)] (link-bench-bind-now): Set.
+       (bench-link-targets): New variable.
+       ($(binaries-bench) …): Use it.  Set LDFLAGS accordingly.
+
+2019-04-25  Florian Weimer  <fweimer@redhat.com>
+
+       Also enable BIND_NOW for programs if --enable-bind-now.
+       * Makeconfig [$(bind-now)] (link-extra-flags): Add -Wl,-z,now.
+       (+link-pie): Use $(link-extra-flags).
+       (+link-static): Likewise.
+       [! $(build-pie-default)] (+link): Likewise.
+       * manual/install.texi (Configuring and compiling): Update
+       --enable-bind-now description.
+       * INSTALL: Regenerated.
+
+2019-04-24  Wilco Dijkstra  <wdijkstr@arm.com>
+
+       * benchtests/Makefile (BENCH_DURATION): Set to 1 second.
+       * benchtests/bench-malloc-thread.c (BENCH_DURATION): Set to 10 seconds.
+
+2019-04-24  Mike Frysinger  <vapier@gentoo.org>
+
+       [BZ #18465]
+       * malloc/Makefile (others): Add memusagestat.
+       ($(objpfx)memusagestat): Delete rule.
+       (LDLIBS-memusagestat): New variable.
+
+2019-04-24  Florian Weimer  <fweimer@redhat.com>
+
+       * locale/Makefile (tests-special): Guard setting by
+       $(run-built-tests) == yes, otherwise tst-locale-locpath attempts
+       to run while cross-compiling.
+
+2019-04-23  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
+
+       [BZ #18035]
+       * elf/Makefile (tests-container): Add tst-pldd.
+       * elf/pldd-xx.c: Use _Static_assert in of pldd_assert.
+       (E(find_maps)): Avoid use alloca, use default read file operations
+       instead of explicit LFS names, and fix infinite loop.
+       * elf/pldd.c: Explicit set _FILE_OFFSET_BITS, cleanup headers.
+       (get_process_info): Use _Static_assert instead of assert, use default
+       directory operations instead of explicit LFS names, and free some
+       leadek pointers.
+       * elf/tst-pldd.c: New file.
+
+2019-04-23  H.J. Lu  <hongjiu.lu@intel.com>
+
+       * malloc/arena.c (do_set_mallopt_check): Removed.
+
+2019-04-23  Florian Weimer  <fweimer@redhat.com>
+
+       locale: Add LOCPATH diagnostics to the locale program.
+       * locale/programs/locale.c (setlocale_failed): New variable.
+       (try_setlocale): New function.
+       (quote_string): Likewise.
+       (setlocale_diagnostics): Likewise.
+       (main): Call try_setlocale instead of setlocale.  Call
+       setlocale_diagnostics.
+       * locale/Makefile (tests-special): Add tst-locale-locpath.out.
+       (tst-locale-locpath.out): New target.
+       * locale/tst-locale-locpath.sh: New file.
+
+2019-04-21  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
+
+       * NEWS: Move memory allocation changes of BZ#23741 from 2.29
+       to 2.30 notes.
+
+2019-04-18  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
+
+       [BZ #23741]
+       * malloc/hooks.c (malloc_check, realloc_check): Use
+       __builtin_add_overflow on overflow check and adapt to
+       checked_request2size change.
+       * malloc/malloc.c (__libc_malloc, __libc_realloc, _mid_memalign,
+       __libc_pvalloc, __libc_calloc, _int_memalign): Limit maximum
+       allocation size to PTRDIFF_MAX.
+       (REQUEST_OUT_OF_RANGE): Remove macro.
+       (checked_request2size): Change to inline function and limit maximum
+       requested size to PTRDIFF_MAX.
+       (__libc_malloc, __libc_realloc, _int_malloc, _int_memalign): Limit
+       maximum allocation size to PTRDIFF_MAX.
+       (_mid_memalign): Use _int_memalign call for overflow check.
+       (__libc_pvalloc): Use __builtin_add_overflow on overflow check.
+       (__libc_calloc): Use __builtin_mul_overflow for overflow check and
+       limit maximum requested size to PTRDIFF_MAX.
+       * malloc/malloc.h (malloc, calloc, realloc, reallocarray, memalign,
+       valloc, pvalloc): Add __attribute_alloc_size__.
+       * stdlib/stdlib.h (malloc, realloc, reallocarray, valloc): Likewise.
+       * malloc/tst-malloc-too-large.c (do_test): Add check for allocation
+       larger than PTRDIFF_MAX.
+       * malloc/tst-memalign.c (do_test): Disable -Walloc-size-larger-than=
+       around tests of malloc with negative sizes.
+       * malloc/tst-posix_memalign.c (do_test): Likewise.
+       * malloc/tst-pvalloc.c (do_test): Likewise.
+       * malloc/tst-valloc.c (do_test): Likewise.
+       * malloc/tst-reallocarray.c (do_test): Replace call to reallocarray
+       with resulting size allocation larger than PTRDIFF_MAX with
+       reallocarray_nowarn.
+       (reallocarray_nowarn): New function.
+       * NEWS: Mention the malloc function semantic change.
+
 2019-04-17  Adhemerval Zanella  <adhemerval.zanella@linaro.org>
 
+       * sysdeps/powerpc/fpu/s_fma.c: Fix format.
+       * sysdeps/powerpc/fpu/s_fmaf.c: Likewise.
+
+       * sysdeps/powerpc/fpu/s_fma.S: Remove file.
+       * sysdeps/powerpc/fpu/s_fmaf.S: Likewise.
+       * sysdeps/powerpc/fpu/s_fma.c: New file.
+       * sysdeps/powerpc/fpu/s_fmaf.c: Likewise.
+
+       * sysdeps/powerpc/fpu/s_fabs.S: Remove file.
+       * sysdeps/powerpc/fpu/s_fabsf.S: Likewise.
+
+       * sysdeps/unix/sysv/linux/mips/getcontext.S (__getcontext): Remove
+       the magic flag store.
+       * sysdeps/unix/sysv/linux/mips/makecontext.S (__makecontext):
+       Likewise.
+       * sysdeps/unix/sysv/linux/mips/swapcontext.S (__swapcontext):
+       Likewise.
+       * sysdeps/unix/sysv/linux/mips/setcontext.S (__setcontext):
+       Remove rt_sigreturn call.
+
        * sysdeps/unix/sysv/linux/powerpc/powerpc32/setcontext-common.S:
        Remove rt_sigreturn call.
        * sysdeps/unix/sysv/linux/powerpc/powerpc32/swapcontext-common.S: