This is an automated email from the git hooks/post-receive script. adconrad pushed a commit to branch sid in repository glibc.
commit 379d0abdd646fce33a04bc04d1f5fa06a8ef1a2b Author: Adam Conrad <adcon...@0c3.net> Date: Fri Oct 14 06:47:05 2016 -0600 Fix up git update target to work more reliably * debian/rules.d/tarball.mk: Apply --no-renames to make the diff readable. * debian/rules.d/tarball.mk: Avoid filterdiff bugs with git patchspec magic. * debian/patches/git-updates.diff: Update to 2.24 master to test the above. --- debian/changelog | 5 + debian/patches/git-updates.diff | 602 +++++++++++++++++++++++++++++++++++++++- debian/rules.d/tarball.mk | 2 +- 3 files changed, 606 insertions(+), 3 deletions(-) diff --git a/debian/changelog b/debian/changelog index db80e12..d87dcd8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -36,6 +36,11 @@ glibc (2.24-4) UNRELEASED; urgency=medium * hurd-i386/tg-glibc-2.24-restore-malloc-hook.diff: Restore malloc_hook for now for mach-defpager. + [ Adam Conrad ] + * debian/rules.d/tarball.mk: Apply --no-renames to make the diff readable. + * debian/rules.d/tarball.mk: Avoid filterdiff bugs with git patchspec magic. + * debian/patches/git-updates.diff: Update to 2.24 master to test the above. + -- Aurelien Jarno <aure...@debian.org> Sat, 17 Sep 2016 20:03:04 +0200 glibc (2.24-3) unstable; urgency=medium diff --git a/debian/patches/git-updates.diff b/debian/patches/git-updates.diff index d2b8fd4..ecb7d41 100644 --- a/debian/patches/git-updates.diff +++ b/debian/patches/git-updates.diff @@ -1,10 +1,33 @@ GIT update of git://sourceware.org/git/glibc.git/release/2.24/master from glibc-2.24 diff --git a/ChangeLog b/ChangeLog -index c44c926..7521d86 100644 +index c44c926..3cad282 100644 --- a/ChangeLog +++ b/ChangeLog -@@ -1,3 +1,129 @@ +@@ -1,3 +1,152 @@ ++2016-10-05 Tulio Magno Quites Machado Filho <tul...@linux.vnet.ibm.com> ++ ++ * sysdeps/powerpc/fpu/libm-test-ulps: Regenerated. ++ ++2016-09-20 Adhemerval Zanella <adhemerval.zane...@linaro.org> ++ ++ * sysdeps/unix/sysv/linux/spawni.c (__spawnix): Correctly block and unblock ++ all signals when executing the clone vfork child. ++ (SIGALL_SET): Remove macro. ++ ++ * nptl/Makefile (tests): Add tst-exec5. ++ * nptl/tst-exec5.c: New file. ++ * sysdeps/unix/sysv/linux/spawni.c (__spawni): Correctly enable and disable ++ asynchronous cancellation. ++ ++2016-09-19 Tulio Magno Quites Machado Filho <tul...@linux.vnet.ibm.com> ++ ++ [BZ #20615] ++ * sysdeps/powerpc/powerpc32/power9/multiarch/Implies: Replace ++ fpu directory by non-fpu. ++ * sysdeps/powerpc/powerpc64/power9/fpu/Implies: Remove dependency ++ on non-fpu directory from a fpu directory. ++ +2016-09-02 Roland McGrath <rol...@hack.frob.com> + + * sysdeps/arm/nacl/libc.abilist: Add GLIBC_2.24 A. @@ -343,6 +366,221 @@ index 229783f..4e16593 100644 (void) mutex_unlock (&free_list_lock); } +diff --git a/nptl/Makefile b/nptl/Makefile +index 0d8aade..fa92581 100644 +--- a/nptl/Makefile ++++ b/nptl/Makefile +@@ -268,7 +268,7 @@ tests = tst-typesizes \ + tst-flock1 tst-flock2 \ + tst-signal1 tst-signal2 tst-signal3 tst-signal4 tst-signal5 \ + tst-signal6 tst-signal7 \ +- tst-exec1 tst-exec2 tst-exec3 tst-exec4 \ ++ tst-exec1 tst-exec2 tst-exec3 tst-exec4 tst-exec5 \ + tst-exit1 tst-exit2 tst-exit3 \ + tst-stdio1 tst-stdio2 \ + tst-stack1 tst-stack2 tst-stack3 tst-stack4 tst-pthread-getattr \ +diff --git a/nptl/tst-exec5.c b/nptl/tst-exec5.c +new file mode 100644 +index 0000000..4327d8d +--- /dev/null ++++ b/nptl/tst-exec5.c +@@ -0,0 +1,196 @@ ++/* Check if posix_spawn does not act as a cancellation entrypoint. ++ Copyright (C) 2016 Free Software Foundation, Inc. ++ This file is part of the GNU C Library. ++ ++ The GNU C Library is free software; you can redistribute it and/or ++ modify it under the terms of the GNU Lesser General Public ++ License as published by the Free Software Foundation; either ++ version 2.1 of the License, or (at your option) any later version. ++ ++ The GNU C Library is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ++ Lesser General Public License for more details. ++ ++ You should have received a copy of the GNU Lesser General Public ++ License along with the GNU C Library; if not, see ++ <http://www.gnu.org/licenses/>. */ ++ ++#include <errno.h> ++#include <paths.h> ++#include <pthread.h> ++#include <signal.h> ++#include <spawn.h> ++#include <stdbool.h> ++#include <stdio.h> ++#include <stdlib.h> ++#include <unistd.h> ++#include <sys/wait.h> ++ ++static int do_test (void); ++#define TEST_FUNCTION do_test () ++#include <test-skeleton.c> ++ ++static pthread_barrier_t b; ++ ++static pid_t pid; ++static int pipefd[2]; ++ ++static void * ++tf (void *arg) ++{ ++ int r = pthread_barrier_wait (&b); ++ if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD) ++ { ++ puts ("error: pthread_barrier_wait failed"); ++ exit (1); ++ } ++ ++ posix_spawn_file_actions_t a; ++ if (posix_spawn_file_actions_init (&a) != 0) ++ { ++ puts ("error: spawn_file_actions_init failed"); ++ exit (1); ++ } ++ ++ if (posix_spawn_file_actions_adddup2 (&a, pipefd[1], STDOUT_FILENO) != 0) ++ { ++ puts ("error: spawn_file_actions_adddup2 failed"); ++ exit (1); ++ } ++ ++ if (posix_spawn_file_actions_addclose (&a, pipefd[0]) != 0) ++ { ++ puts ("error: spawn_file_actions_addclose"); ++ exit (1); ++ } ++ ++ char *argv[] = { (char *) _PATH_BSHELL, (char *) "-c", (char *) "echo $$", ++ NULL }; ++ if (posix_spawn (&pid, _PATH_BSHELL, &a, NULL, argv, NULL) != 0) ++ { ++ puts ("error: spawn failed"); ++ exit (1); ++ } ++ ++ return NULL; ++} ++ ++ ++static int ++do_test (void) ++{ ++ /* The test basically pipe a 'echo $$' created by a thread with a ++ cancellation pending. It then checks if the thread is not cancelled, ++ the process is created and if the output is the expected one. */ ++ ++ if (pipe (pipefd) != 0) ++ { ++ puts ("error: pipe failed"); ++ exit (1); ++ } ++ ++ /* Not interested in knowing when the pipe is closed. */ ++ if (sigignore (SIGPIPE) != 0) ++ { ++ puts ("error: sigignore failed"); ++ exit (1); ++ } ++ ++ /* To synchronize with the thread. */ ++ if (pthread_barrier_init (&b, NULL, 2) != 0) ++ { ++ puts ("error: pthread_barrier_init failed"); ++ exit (1); ++ } ++ ++ pthread_t th; ++ if (pthread_create (&th, NULL, &tf, NULL) != 0) ++ { ++ puts ("error: pthread_create failed"); ++ exit (1); ++ } ++ ++ if (pthread_cancel (th) != 0) ++ { ++ puts ("error: pthread_cancel failed"); ++ exit (1); ++ } ++ ++ int r = pthread_barrier_wait (&b); ++ if (r != 0 && r != PTHREAD_BARRIER_SERIAL_THREAD) ++ { ++ puts ("error: pthread_barrier_wait"); ++ exit (1); ++ } ++ ++ void *retval; ++ if (pthread_join (th, &retval) != 0) ++ { ++ puts ("error: pthread_join failed\n"); ++ } ++ if (retval == PTHREAD_CANCELED) ++ { ++ puts ("error: thread cancelled"); ++ exit (1); ++ } ++ ++ close (pipefd[1]); ++ ++ /* The global 'pid' should be set by thread posix_spawn calling. Check ++ below if it was executed correctly and with expected output. */ ++ ++ char buf[64]; ++ ssize_t n; ++ bool seen_pid = false; ++ while (TEMP_FAILURE_RETRY ((n = read (pipefd[0], buf, sizeof (buf)))) > 0) ++ { ++ /* We only expect to read the PID. */ ++ char *endp; ++ long int rpid = strtol (buf, &endp, 10); ++ ++ if (*endp != '\n') ++ { ++ printf ("error: didn't parse whole line: \"%s\"\n", buf); ++ exit (1); ++ } ++ if (endp == buf) ++ { ++ puts ("error: read empty line"); ++ exit (1); ++ } ++ ++ if (rpid != pid) ++ { ++ printf ("error: found \"%s\", expected PID %ld\n", buf, ++ (long int) pid); ++ exit (1); ++ } ++ ++ if (seen_pid) ++ { ++ puts ("error: found more than one PID line"); ++ exit (1); ++ } ++ ++ seen_pid = true; ++ } ++ ++ close (pipefd[0]); ++ ++ int status; ++ int err = waitpid (pid, &status, 0); ++ if (err != pid) ++ { ++ puts ("errnor: waitpid failed"); ++ exit (1); ++ } ++ ++ if (!seen_pid) ++ { ++ puts ("error: didn't get PID"); ++ exit (1); ++ } ++ ++ return 0; ++} diff --git a/nptl/tst-once5.cc b/nptl/tst-once5.cc index 978d827..513ac53 100644 --- a/nptl/tst-once5.cc @@ -1197,6 +1435,305 @@ index cf43d97..73722d2 100644 } weak_alias (__wait3, wait3) +diff --git a/sysdeps/powerpc/fpu/libm-test-ulps b/sysdeps/powerpc/fpu/libm-test-ulps +index 7f37c81..36b700c 100644 +--- a/sysdeps/powerpc/fpu/libm-test-ulps ++++ b/sysdeps/powerpc/fpu/libm-test-ulps +@@ -36,8 +36,8 @@ double: 2 + float: 2 + idouble: 2 + ifloat: 2 +-ildouble: 1 +-ldouble: 1 ++ildouble: 2 ++ldouble: 2 + + Function: "acosh_downward": + double: 1 +@@ -52,8 +52,8 @@ double: 2 + float: 2 + idouble: 2 + ifloat: 2 +-ildouble: 3 +-ldouble: 3 ++ildouble: 4 ++ldouble: 4 + + Function: "acosh_upward": + double: 2 +@@ -122,8 +122,8 @@ double: 3 + float: 3 + idouble: 3 + ifloat: 3 +-ildouble: 4 +-ldouble: 4 ++ildouble: 7 ++ldouble: 7 + + Function: "atan": + double: 1 +@@ -216,8 +216,8 @@ double: 3 + float: 3 + idouble: 3 + ifloat: 3 +-ildouble: 3 +-ldouble: 3 ++ildouble: 4 ++ldouble: 4 + + Function: "cabs": + double: 1 +@@ -272,8 +272,8 @@ double: 5 + float: 3 + idouble: 5 + ifloat: 3 +-ildouble: 5 +-ldouble: 5 ++ildouble: 8 ++ldouble: 8 + + Function: Real part of "cacos_towardzero": + double: 2 +@@ -288,8 +288,8 @@ double: 5 + float: 3 + idouble: 5 + ifloat: 3 +-ildouble: 5 +-ldouble: 5 ++ildouble: 8 ++ldouble: 8 + + Function: Real part of "cacos_upward": + double: 2 +@@ -328,8 +328,8 @@ double: 5 + float: 3 + idouble: 5 + ifloat: 3 +-ildouble: 5 +-ldouble: 5 ++ildouble: 8 ++ldouble: 8 + + Function: Imaginary part of "cacosh_downward": + double: 2 +@@ -344,8 +344,8 @@ double: 5 + float: 3 + idouble: 5 + ifloat: 3 +-ildouble: 5 +-ldouble: 5 ++ildouble: 8 ++ldouble: 8 + + Function: Imaginary part of "cacosh_towardzero": + double: 2 +@@ -432,8 +432,8 @@ double: 5 + float: 3 + idouble: 5 + ifloat: 3 +-ildouble: 5 +-ldouble: 5 ++ildouble: 8 ++ldouble: 8 + + Function: Real part of "casin_towardzero": + double: 3 +@@ -448,8 +448,8 @@ double: 5 + float: 3 + idouble: 5 + ifloat: 3 +-ildouble: 5 +-ldouble: 5 ++ildouble: 8 ++ldouble: 8 + + Function: Real part of "casin_upward": + double: 2 +@@ -488,8 +488,8 @@ double: 5 + float: 3 + idouble: 5 + ifloat: 3 +-ildouble: 5 +-ldouble: 5 ++ildouble: 8 ++ldouble: 8 + + Function: Imaginary part of "casinh_downward": + double: 3 +@@ -504,8 +504,8 @@ double: 5 + float: 3 + idouble: 5 + ifloat: 3 +-ildouble: 5 +-ldouble: 5 ++ildouble: 8 ++ldouble: 8 + + Function: Imaginary part of "casinh_towardzero": + double: 3 +@@ -696,8 +696,8 @@ double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-ildouble: 1 +-ldouble: 1 ++ildouble: 2 ++ldouble: 2 + + Function: Real part of "ccos_downward": + double: 1 +@@ -1132,8 +1132,8 @@ double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-ildouble: 1 +-ldouble: 1 ++ildouble: 2 ++ldouble: 2 + + Function: Imaginary part of "csin": + ildouble: 1 +@@ -1198,8 +1198,8 @@ double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-ildouble: 1 +-ldouble: 1 ++ildouble: 2 ++ldouble: 2 + + Function: Real part of "csinh_downward": + double: 2 +@@ -1318,8 +1318,8 @@ double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-ildouble: 2 +-ldouble: 2 ++ildouble: 3 ++ldouble: 3 + + Function: Imaginary part of "ctan": + double: 2 +@@ -1390,8 +1390,8 @@ double: 2 + float: 1 + idouble: 2 + ifloat: 1 +-ildouble: 2 +-ldouble: 2 ++ildouble: 3 ++ldouble: 3 + + Function: Real part of "ctanh_downward": + double: 4 +@@ -1478,8 +1478,8 @@ double: 2 + float: 2 + idouble: 2 + ifloat: 2 +-ildouble: 2 +-ldouble: 2 ++ildouble: 3 ++ldouble: 3 + + Function: "erfc_downward": + double: 3 +@@ -1564,8 +1564,8 @@ double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-ildouble: 1 +-ldouble: 1 ++ildouble: 2 ++ldouble: 2 + + Function: "exp2_upward": + double: 1 +@@ -1588,8 +1588,8 @@ ildouble: 2 + ldouble: 2 + + Function: "exp_upward": +-float: 1 + double: 1 ++float: 1 + idouble: 1 + ifloat: 1 + ildouble: 1 +@@ -1624,8 +1624,8 @@ double: 1 + float: 1 + idouble: 1 + ifloat: 1 +-ildouble: 4 +-ldouble: 4 ++ildouble: 6 ++ldouble: 6 + + Function: "fma": + ildouble: 1 +@@ -1688,8 +1688,8 @@ double: 4 + float: 5 + idouble: 4 + ifloat: 5 +-ildouble: 10 +-ldouble: 10 ++ildouble: 11 ++ldouble: 11 + + Function: "hypot": + double: 1 +@@ -1752,8 +1752,8 @@ double: 1 + float: 2 + idouble: 1 + ifloat: 2 +-ildouble: 1 +-ldouble: 1 ++ildouble: 2 ++ldouble: 2 + + Function: "j1_downward": + double: 3 +@@ -1840,8 +1840,8 @@ double: 4 + float: 5 + idouble: 4 + ifloat: 5 +-ildouble: 10 +-ldouble: 10 ++ildouble: 11 ++ldouble: 11 + + Function: "log": + float: 1 +@@ -1910,8 +1910,8 @@ double: 2 + float: 2 + idouble: 2 + ifloat: 2 +-ildouble: 2 +-ldouble: 2 ++ildouble: 3 ++ldouble: 3 + + Function: "log2": + double: 1 +@@ -2184,16 +2184,16 @@ double: 3 + float: 3 + idouble: 3 + ifloat: 3 +-ildouble: 3 +-ldouble: 3 ++ildouble: 4 ++ldouble: 4 + + Function: "tanh_towardzero": + double: 2 + float: 2 + idouble: 2 + ifloat: 2 +-ildouble: 3 +-ldouble: 3 ++ildouble: 4 ++ldouble: 4 + + Function: "tanh_upward": + double: 3 diff --git a/sysdeps/powerpc/ifunc-sel.h b/sysdeps/powerpc/ifunc-sel.h index 526d8ed..ac589bd 100644 --- a/sysdeps/powerpc/ifunc-sel.h @@ -1233,6 +1770,20 @@ index 526d8ed..ac589bd 100644 return ret; } #endif +diff --git a/sysdeps/powerpc/powerpc32/power9/multiarch/Implies b/sysdeps/powerpc/powerpc32/power9/multiarch/Implies +index 4393b56..1a46ef0 100644 +--- a/sysdeps/powerpc/powerpc32/power9/multiarch/Implies ++++ b/sysdeps/powerpc/powerpc32/power9/multiarch/Implies +@@ -1 +1 @@ +-powerpc/powerpc32/power8/fpu/multiarch ++powerpc/powerpc32/power8/multiarch +diff --git a/sysdeps/powerpc/powerpc64/power9/fpu/Implies b/sysdeps/powerpc/powerpc64/power9/fpu/Implies +index fad2505..ae0dbaf 100644 +--- a/sysdeps/powerpc/powerpc64/power9/fpu/Implies ++++ b/sysdeps/powerpc/powerpc64/power9/fpu/Implies +@@ -1,2 +1 @@ + powerpc/powerpc64/power8/fpu +-powerpc/powerpc64/power8 diff --git a/sysdeps/s390/nptl/Makefile b/sysdeps/s390/nptl/Makefile index 5734b98..3a391c8 100644 --- a/sysdeps/s390/nptl/Makefile @@ -1861,6 +2412,53 @@ index e67aecf..a67d199 100644 libpthread-routines += sysdep +libpthread-shared-only-routines += sysdep endif +diff --git a/sysdeps/unix/sysv/linux/spawni.c b/sysdeps/unix/sysv/linux/spawni.c +index bb3eecf..67e1c42 100644 +--- a/sysdeps/unix/sysv/linux/spawni.c ++++ b/sysdeps/unix/sysv/linux/spawni.c +@@ -58,10 +58,6 @@ + normal program exit with the exit code 127. */ + #define SPAWN_ERROR 127 + +-/* We need to block both SIGCANCEL and SIGSETXID. */ +-#define SIGALL_SET \ +- ((__sigset_t) { .__val = {[0 ... _SIGSET_NWORDS-1 ] = -1 } }) +- + #ifdef __ia64__ + # define CLONE(__fn, __stack, __stacksize, __flags, __args) \ + __clone2 (__fn, __stack, __stacksize, __flags, __args, 0, 0, 0) +@@ -340,7 +336,9 @@ __spawnix (pid_t * pid, const char *file, + } + + /* Disable asynchronous cancellation. */ +- int cs = LIBC_CANCEL_ASYNC (); ++ int state; ++ __libc_ptf_call (__pthread_setcancelstate, ++ (PTHREAD_CANCEL_DISABLE, &state), 0); + + args.file = file; + args.exec = exec; +@@ -351,7 +349,7 @@ __spawnix (pid_t * pid, const char *file, + args.envp = envp; + args.xflags = xflags; + +- __sigprocmask (SIG_BLOCK, &SIGALL_SET, &args.oldmask); ++ __libc_signal_block_all (&args.oldmask); + + /* The clone flags used will create a new child that will run in the same + memory space (CLONE_VM) and the execution of calling thread will be +@@ -384,9 +382,9 @@ __spawnix (pid_t * pid, const char *file, + if ((ec == 0) && (pid != NULL)) + *pid = new_pid; + +- __sigprocmask (SIG_SETMASK, &args.oldmask, 0); ++ __libc_signal_restore_set (&args.oldmask); + +- LIBC_CANCEL_RESET (cs); ++ __libc_ptf_call (__pthread_setcancelstate, (state, NULL), 0); + + return ec; + } diff --git a/sysdeps/unix/sysv/linux/tile/Makefile b/sysdeps/unix/sysv/linux/tile/Makefile index 1c1cfff..43acea3 100644 --- a/sysdeps/unix/sysv/linux/tile/Makefile diff --git a/debian/rules.d/tarball.mk b/debian/rules.d/tarball.mk index 29ab787..8d6e82f 100644 --- a/debian/rules.d/tarball.mk +++ b/debian/rules.d/tarball.mk @@ -21,5 +21,5 @@ update-from-upstream: git clone --bare $(GLIBC_GIT) $(GLIBC_CHECKOUT) echo "GIT update of $(GLIBC_GIT)/$(GLIBC_BRANCH) from $(DEB_ORIG_COMMIT)" > $(GIT_UPDATES_DIFF) echo "" >> $(GIT_UPDATES_DIFF) - (cd $(GLIBC_CHECKOUT) && git diff $(GLIBC_TAG) $(GLIBC_BRANCH)) | filterdiff -x '*/manual/*' >> $(GIT_UPDATES_DIFF) + (cd $(GLIBC_CHECKOUT) && git diff --no-renames $(GLIBC_TAG) $(GLIBC_BRANCH) -- . ':!manual') >> $(GIT_UPDATES_DIFF) rm -rf $(GLIBC_CHECKOUT) -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-glibc/glibc.git