Package: libeatmydata / 105-9

Metadata

Package Version Patches format
libeatmydata 105-9 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
soversion | (download)

Makefile.am | 2 1 + 1 - 0 !
configure.ac | 28 28 + 0 - 0 !
2 files changed, 29 insertions(+), 1 deletion(-)

 change the soversion, to revert an useless/wrong/unintentional
 bump made by upstream in https://bazaar.launchpad.net/~stewart/libeatmydata/main/revision/86
 Also bumping the revision, due to the code change.
tests | (download)

test_run.sh | 7 7 + 0 - 0 !
1 file changed, 7 insertions(+)

 avoid failing tests when strace is absent. instead, just skip the
 entire test suite.
 Note: this is probably not the best way to handle this case. Maybe a check
 in debian/rules would be better...
drop unneeded include | (download)

libeatmydata/test/fsynctest.c | 2 0 + 2 - 0 !
1 file changed, 2 deletions(-)

 drop unused #include, to allow compiling of this file without the
 entire source tree (needed to cleanly run the dep-8 tests)
avoid pthread link | (download)

Makefile.am | 2 1 + 1 - 0 !
libeatmydata/libeatmydata.c | 13 9 + 4 - 0 !
2 files changed, 10 insertions(+), 5 deletions(-)

 use a weak reference to pthread_testcancel, so that it's called only if the program itself pulls libpthread
 libeatmydata is linked against libpthread. This thus pulls libpthread
 in all processes run under eatmydata. It happens that having
 libpthread in a process makes pthread_mutex_lock() and all such basic
 performance-sensitive operations much heavier (since they then have to
 deal with potential multithreading). This avoids that by using a weak reference
 to pthread_testcancel, so that pthread_testcancel is called only if the program
 itself pulls libpthread.
fix EBADF.patch | (download)

libeatmydata/libeatmydata.c | 9 9 + 0 - 0 !
libeatmydata/test/eatmydatatest.c | 6 3 + 3 - 0 !
2 files changed, 12 insertions(+), 3 deletions(-)

 [patch] correctly return ebadf in the case of ebadf

This was causing an issue with the MySQL 5.7.17 unit tests.

Namely, the overridden libc functions weren't checking file descriptor
validity, and if a caller *expected* to fail with EBADF rather than return
success, the caller would be rather disappointed.

Reported-by: Yura Sorokin
Fixes: https://github.com/stewartsmith/libeatmydata/issues/1
Signed-off-by: Stewart Smith <stewart@flamingspork.com>

Bug-Debian: https://bugs.debian.org/667965


thread safety.patch | (download)

configure.ac | 2 2 + 0 - 0 !
libeatmydata/libeatmydata.c | 38 21 + 17 - 0 !
m4/ax_tls.m4 | 74 74 + 0 - 0 !
3 files changed, 97 insertions(+), 17 deletions(-)

 [patch] make initialization thread-safe, and support early callers

The current initialization code is not thread-safe, and assumes that the
only possible caller of open() before initialization completes is
dlsym(), which is not the case if there are other preloaded libraries.

This patch makes the initialization thread-safe by using thread-local
variables, and adjusts the recursive checking logic to support early
callers.

Bug-Debian: https://bugs.debian.org/918520
replace FUNCTION.patch | (download)

libeatmydata/test/tst-cancel4.c | 32 16 + 16 - 0 !
1 file changed, 16 insertions(+), 16 deletions(-)

 __function__ is deprecated and throw a pedantic warning when built with c11