[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[glibc] 01/01: Fix up git update target to work more reliably



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 <adconrad@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 <aurel32@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  <tuliom@linux.vnet.ibm.com>
++
++	* sysdeps/powerpc/fpu/libm-test-ulps: Regenerated.
++
++2016-09-20  Adhemerval Zanella  <adhemerval.zanella@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  <tuliom@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  <roland@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


Reply to: