Hello community,

here is the log from the commit of package npth for openSUSE:Factory checked in 
at 2016-12-04 15:06:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/npth (Old)
 and      /work/SRC/openSUSE:Factory/.npth.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "npth"

Changes:
--------
--- /work/SRC/openSUSE:Factory/npth/npth.changes        2015-04-13 
20:29:53.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.npth.new/npth.changes   2016-12-04 
15:06:11.000000000 +0100
@@ -1,0 +2,9 @@
+Thu Dec  1 16:22:27 UTC 2016 - [email protected]
+
+- update to 1.3:
+  * Bypass npth_protect/npth_unprotect iff the library has not yet
+    been initialized.
+  * Improve detection of clock_gettime
+- use reproducible build timestamp
+
+-------------------------------------------------------------------

Old:
----
  npth-1.2.tar.bz2
  npth-1.2.tar.bz2.sig

New:
----
  npth-1.3.tar.bz2
  npth-1.3.tar.bz2.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ npth.spec ++++++
--- /var/tmp/diff_new_pack.amprFH/_old  2016-12-04 15:06:12.000000000 +0100
+++ /var/tmp/diff_new_pack.amprFH/_new  2016-12-04 15:06:12.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package npth
 #
-# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -16,9 +16,9 @@
 #
 
 
-Name:           npth
 %define lname  libnpth0
-Version:        1.2
+Name:           npth
+Version:        1.3
 Release:        0
 Summary:        New GNU Portable Threads library
 License:        LGPL-3.0+ or GPL-2.0+
@@ -30,6 +30,7 @@
 Source:         ftp://ftp.gnupg.org/gcrypt/npth/%name-%version.tar.bz2
 Source2:        ftp://ftp.gnupg.org/gcrypt/npth/%name-%version.tar.bz2.sig
 Source4:        %name.keyring
+Source99:       %name.changes
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 
 %description
@@ -63,16 +64,17 @@
 %setup -q
 
 %build
-%configure
-make %{?_smp_mflags};
+date=$(date -u +%%Y-%%m-%%dT%%H:%%M+0000 -r %SOURCE99)
+%configure \
+       --enable-build-timestamp="$date"
+make %{?_smp_mflags}
 
 %install
-b="%buildroot";
-make install DESTDIR="$b";
-rm -f "$b/%_libdir"/*.la;
+b="%buildroot"
+make install DESTDIR="$b"
+find %buildroot -type f -name "*.la" -delete -print
 
 %post -n %lname -p /sbin/ldconfig
-
 %postun -n %lname -p /sbin/ldconfig
 
 %files -n %lname

++++++ npth-1.2.tar.bz2 -> npth-1.3.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/npth-1.2/ChangeLog new/npth-1.3/ChangeLog
--- old/npth-1.2/ChangeLog      2015-04-11 14:02:43.000000000 +0200
+++ new/npth-1.3/ChangeLog      2016-11-22 11:16:05.000000000 +0100
@@ -1,3 +1,74 @@
+2016-11-22  Werner Koch  <[email protected]>
+
+       Release 1.3.
+       * configure.ac: Bump LT version to C0/A0/R6.
+
+2016-11-21  Werner Koch  <[email protected]>
+
+       Bypass npth_unprotect/protect when npth has not yet been initialized.
+       * src/npth.c (initialized_or_any_threads): New variable.
+       (npth_init): Set var.
+       (npth_create): Set var.
+       (npth_unprotect, npth_protect): Shortcut if not initialized.
+
+       * w32/npth.c (initialized_or_any_threads): New variable.
+       (npth_init): Set var.
+       (npth_unprotect, npth_protect): Shortcut if not initialized.
+
+2016-10-10  Justus Winter  <[email protected]>
+
+       src: Fix setting thread names on macOS.
+       * src/npth.c (npth_setname_np): Support Apple's one-argument form.
+
+2016-07-13  Werner Koch  <[email protected]>
+
+       build: Update config.{guess,sub} to {2016-05-15,2016-06-20}.
+       * build-aux/config.guess: Update.
+       * build-aux/config.sub: Update.
+
+2016-07-05  NIIBE Yutaka  <[email protected]>
+
+       Fix for semaphore access by child.
+       * configure.ac (HAVE_FORK_UNSAFE_SEMAPHORE): New.
+       * src/npth.c (sem_init): Use NPTH_SEMAPHORE_PSHARED.
+       * tests/t-fork.c: New.
+
+2016-06-25  Werner Koch  <[email protected]>
+
+       w32: Include io.h for read(2) and write(2).
+       * w32/npth.c: Include io.h.
+
+       Fix problem with regression tests on recent glibc.
+       * configure.ac: Change pthread test to test pthread_detach
+
+2015-11-26  Werner Koch  <[email protected]>
+
+       Improve debug output.
+       * w32/npth.c (_npth_debug): Print to stderr.
+       (enter_npth, leave_npth): Include the tid in the debug output.
+
+2015-08-25  Werner Koch  <[email protected]>
+
+       Add configure option --enable-build-timestamp.
+       * configure.ac (BUILD_TIMESTAMP): Set to "<none>" by default.  Also
+       with ac_define_unquoted.
+
+2015-06-06  Jim Meyering  <[email protected]>
+
+       configure.ac: improve check for clock_gettime library.
+       * configure.ac: When using AC_SEARCH_LIBS, handle the case in which
+       that function returns "none required". Also, save and restore LIBS
+       around the check, and properly m4-quote the first argument to AC_DEFINE.
+       Finally, also set and AC_SUBST LIB_CLOCK_GETTIME.
+       This added code is very similar to that provided in gnulib's
+       clock-time.m4.
+       * tests/Makefile.am (LDADD): Append $(LIB_CLOCK_GETTIME).
+
+2015-04-28  NIIBE Yutaka  <[email protected]>
+
+       npth-config: supply a library dependency for clock_gettime.
+       * configure.ac (clock_gettime): Update config_libs.
+
 2015-04-11  Werner Koch  <[email protected]>
 
        Release 1.2.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/npth-1.2/Makefile.in new/npth-1.3/Makefile.in
--- old/npth-1.2/Makefile.in    2015-04-11 14:02:27.000000000 +0200
+++ new/npth-1.3/Makefile.in    2016-11-22 11:15:03.000000000 +0100
@@ -303,6 +303,7 @@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
 LIBTOOL = @LIBTOOL@
+LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/npth-1.2/NEWS new/npth-1.3/NEWS
--- old/npth-1.2/NEWS   2015-04-11 13:56:56.000000000 +0200
+++ new/npth-1.3/NEWS   2016-11-22 11:11:19.000000000 +0100
@@ -1,3 +1,14 @@
+Noteworthy changes in version 1.3 (2016-11-22)
+----------------------------------------------
+
+ * Bypass npth_protect/npth_unprotect iff the library has not yet been
+   initialized.
+
+ * Fix problems on macOS and AIX
+
+ * Improve detection of clock_gettime
+
+
 Noteworthy changes in version 1.2 (2015-04-11)
 ----------------------------------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/npth-1.2/VERSION new/npth-1.3/VERSION
--- old/npth-1.2/VERSION        2015-04-11 14:02:43.000000000 +0200
+++ new/npth-1.3/VERSION        2016-11-22 11:16:05.000000000 +0100
@@ -1 +1 @@
-1.2
+1.3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/npth-1.2/build-aux/config.guess 
new/npth-1.3/build-aux/config.guess
--- old/npth-1.2/build-aux/config.guess 2015-01-28 11:26:06.000000000 +0100
+++ new/npth-1.3/build-aux/config.guess 2016-07-13 19:03:42.000000000 +0200
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
-#   Copyright 1992-2015 Free Software Foundation, Inc.
+#   Copyright 1992-2016 Free Software Foundation, Inc.
 
-timestamp='2015-01-01'
+timestamp='2016-05-15'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -27,7 +27,7 @@
 # Originally written by Per Bothner; maintained since 2000 by Ben Elliston.
 #
 # You can get the latest version of this script from:
-# 
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
 #
 # Please send patches to <[email protected]>.
 
@@ -50,7 +50,7 @@
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright 1992-2015 Free Software Foundation, Inc.
+Copyright 1992-2016 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -168,19 +168,29 @@
        # Note: NetBSD doesn't particularly care about the vendor
        # portion of the name.  We always set it to "unknown".
        sysctl="sysctl -n hw.machine_arch"
-       UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
-           /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+       UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \
+           /sbin/$sysctl 2>/dev/null || \
+           /usr/sbin/$sysctl 2>/dev/null || \
+           echo unknown)`
        case "${UNAME_MACHINE_ARCH}" in
            armeb) machine=armeb-unknown ;;
            arm*) machine=arm-unknown ;;
            sh3el) machine=shl-unknown ;;
            sh3eb) machine=sh-unknown ;;
            sh5el) machine=sh5le-unknown ;;
+           earmv*)
+               arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 
's,^e\(armv[0-9]\).*$,\1,'`
+               endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 
's,^.*\(eb\)$,\1,p'`
+               machine=${arch}${endian}-unknown
+               ;;
            *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
        esac
        # The Operating System including object format, if it has switched
-       # to ELF recently, or will in the future.
+       # to ELF recently (or will in the future) and ABI.
        case "${UNAME_MACHINE_ARCH}" in
+           earm*)
+               os=netbsdelf
+               ;;
            arm*|i386|m68k|ns32k|sh3*|sparc|vax)
                eval $set_cc_for_build
                if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
@@ -197,6 +207,13 @@
                os=netbsd
                ;;
        esac
+       # Determine ABI tags.
+       case "${UNAME_MACHINE_ARCH}" in
+           earm*)
+               expr='s/^earmv[0-9]/-eabi/;s/eb$//'
+               abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"`
+               ;;
+       esac
        # The OS release
        # Debian GNU/NetBSD machines have a different userland, and
        # thus, need a distinct triplet. However, they do not need
@@ -207,13 +224,13 @@
                release='-gnu'
                ;;
            *)
-               release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+               release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. 
-f1,2`
                ;;
        esac
        # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
        # contains redundant information, the shorter form:
        # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
-       echo "${machine}-${os}${release}"
+       echo "${machine}-${os}${release}${abi}"
        exit ;;
     *:Bitrig:*:*)
        UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'`
@@ -223,6 +240,10 @@
        UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
        echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
        exit ;;
+    *:LibertyBSD:*:*)
+       UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'`
+       echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE}
+       exit ;;
     *:ekkoBSD:*:*)
        echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
        exit ;;
@@ -235,6 +256,9 @@
     *:MirBSD:*:*)
        echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
        exit ;;
+    *:Sortix:*:*)
+       echo ${UNAME_MACHINE}-unknown-sortix
+       exit ;;
     alpha:OSF1:*:*)
        case $UNAME_RELEASE in
        *4.0)
@@ -251,42 +275,42 @@
        ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) 
processor.*$/\1/p' | head -n 1`
        case "$ALPHA_CPU_TYPE" in
            "EV4 (21064)")
-               UNAME_MACHINE="alpha" ;;
+               UNAME_MACHINE=alpha ;;
            "EV4.5 (21064)")
-               UNAME_MACHINE="alpha" ;;
+               UNAME_MACHINE=alpha ;;
            "LCA4 (21066/21068)")
-               UNAME_MACHINE="alpha" ;;
+               UNAME_MACHINE=alpha ;;
            "EV5 (21164)")
-               UNAME_MACHINE="alphaev5" ;;
+               UNAME_MACHINE=alphaev5 ;;
            "EV5.6 (21164A)")
-               UNAME_MACHINE="alphaev56" ;;
+               UNAME_MACHINE=alphaev56 ;;
            "EV5.6 (21164PC)")
-               UNAME_MACHINE="alphapca56" ;;
+               UNAME_MACHINE=alphapca56 ;;
            "EV5.7 (21164PC)")
-               UNAME_MACHINE="alphapca57" ;;
+               UNAME_MACHINE=alphapca57 ;;
            "EV6 (21264)")
-               UNAME_MACHINE="alphaev6" ;;
+               UNAME_MACHINE=alphaev6 ;;
            "EV6.7 (21264A)")
-               UNAME_MACHINE="alphaev67" ;;
+               UNAME_MACHINE=alphaev67 ;;
            "EV6.8CB (21264C)")
-               UNAME_MACHINE="alphaev68" ;;
+               UNAME_MACHINE=alphaev68 ;;
            "EV6.8AL (21264B)")
-               UNAME_MACHINE="alphaev68" ;;
+               UNAME_MACHINE=alphaev68 ;;
            "EV6.8CX (21264D)")
-               UNAME_MACHINE="alphaev68" ;;
+               UNAME_MACHINE=alphaev68 ;;
            "EV6.9A (21264/EV69A)")
-               UNAME_MACHINE="alphaev69" ;;
+               UNAME_MACHINE=alphaev69 ;;
            "EV7 (21364)")
-               UNAME_MACHINE="alphaev7" ;;
+               UNAME_MACHINE=alphaev7 ;;
            "EV7.9 (21364A)")
-               UNAME_MACHINE="alphaev79" ;;
+               UNAME_MACHINE=alphaev79 ;;
        esac
        # A Pn.n version is a patched version.
        # A Vn.n version is a released version.
        # A Tn.n version is a released field test version.
        # A Xn.n version is an unreleased experimental baselevel.
        # 1.2 uses "1.2" for uname -r.
-       echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 
's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+       echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 
's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`
        # Reset EXIT trap before exiting to avoid spurious non-zero exit code.
        exitcode=$?
        trap '' 0
@@ -359,16 +383,16 @@
        exit ;;
     i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
        eval $set_cc_for_build
-       SUN_ARCH="i386"
+       SUN_ARCH=i386
        # If there is a compiler, see if it is configured for 64-bit objects.
        # Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
        # This test works for both compilers.
-       if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+       if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
            if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
-               (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+               (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
                grep IS_64BIT_ARCH >/dev/null
            then
-               SUN_ARCH="x86_64"
+               SUN_ARCH=x86_64
            fi
        fi
        echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
@@ -393,7 +417,7 @@
        exit ;;
     sun*:*:4.2BSD:*)
        UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 
2>/dev/null`
-       test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+       test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3
        case "`/bin/arch`" in
            sun3)
                echo m68k-sun-sunos${UNAME_RELEASE}
@@ -618,13 +642,13 @@
                    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
                    case "${sc_cpu_version}" in
-                     523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
-                     528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+                     523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0
+                     528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1
                      532)                      # CPU_PA_RISC2_0
                        case "${sc_kernel_bits}" in
-                         32) HP_ARCH="hppa2.0n" ;;
-                         64) HP_ARCH="hppa2.0w" ;;
-                         '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
+                         32) HP_ARCH=hppa2.0n ;;
+                         64) HP_ARCH=hppa2.0w ;;
+                         '') HP_ARCH=hppa2.0 ;;   # HP-UX 10.20
                        esac ;;
                    esac
                fi
@@ -663,11 +687,11 @@
                    exit (0);
                }
 EOF
-                   (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && 
HP_ARCH=`$dummy`
+                   (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && 
HP_ARCH=`$dummy`
                    test -z "$HP_ARCH" && HP_ARCH=hppa
                fi ;;
        esac
-       if [ ${HP_ARCH} = "hppa2.0w" ]
+       if [ ${HP_ARCH} = hppa2.0w ]
        then
            eval $set_cc_for_build
 
@@ -680,12 +704,12 @@
            # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
            # => hppa64-hp-hpux11.23
 
-           if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
+           if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) |
                grep -q __LP64__
            then
-               HP_ARCH="hppa2.0w"
+               HP_ARCH=hppa2.0w
            else
-               HP_ARCH="hppa64"
+               HP_ARCH=hppa64
            fi
        fi
        echo ${HP_ARCH}-hp-hpux${HPUX_REV}
@@ -790,14 +814,14 @@
        echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
        exit ;;
     F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
-       FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 
'abcdefghijklmnopqrstuvwxyz'`
-       FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 
'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+       FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ 
abcdefghijklmnopqrstuvwxyz`
+       FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ 
abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
        exit ;;
     5000:UNIX_System_V:4.*:*)
-       FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 
'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-       FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 
'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+       FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ 
abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'`
+       FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ 
abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'`
        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
        exit ;;
     i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
@@ -879,7 +903,7 @@
        exit ;;
     *:GNU/*:*:*)
        # other systems with GNU libc and userland
-       echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' 
| tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
+       echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' 
| tr "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC}
        exit ;;
     i*86:Minix:*:*)
        echo ${UNAME_MACHINE}-pc-minix
@@ -902,7 +926,7 @@
          EV68*) UNAME_MACHINE=alphaev68 ;;
        esac
        objdump --private-headers /bin/sh | grep -q ld.so.1
-       if test "$?" = 0 ; then LIBC="gnulibc1" ; fi
+       if test "$?" = 0 ; then LIBC=gnulibc1 ; fi
        echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
     arc:Linux:*:* | arceb:Linux:*:*)
@@ -933,6 +957,9 @@
     crisv32:Linux:*:*)
        echo ${UNAME_MACHINE}-axis-linux-${LIBC}
        exit ;;
+    e2k:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
     frv:Linux:*:*)
        echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
@@ -945,6 +972,9 @@
     ia64:Linux:*:*)
        echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
+    k1om:Linux:*:*)
+       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       exit ;;
     m32r*:Linux:*:*)
        echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
        exit ;;
@@ -1021,7 +1051,7 @@
        echo ${UNAME_MACHINE}-dec-linux-${LIBC}
        exit ;;
     x86_64:Linux:*:*)
-       echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
+       echo ${UNAME_MACHINE}-pc-linux-${LIBC}
        exit ;;
     xtensa*:Linux:*:*)
        echo ${UNAME_MACHINE}-unknown-linux-${LIBC}
@@ -1100,7 +1130,7 @@
        # uname -m prints for DJGPP always 'pc', but it prints nothing about
        # the processor, so we play safe by assuming i586.
        # Note: whatever this is, it MUST be the same as what config.sub
-       # prints for the "djgpp" host, or else GDB configury will decide that
+       # prints for the "djgpp" host, or else GDB configure will decide that
        # this is a cross-build.
        echo i586-pc-msdosdjgpp
        exit ;;
@@ -1249,6 +1279,9 @@
     SX-8R:SUPER-UX:*:*)
        echo sx8r-nec-superux${UNAME_RELEASE}
        exit ;;
+    SX-ACE:SUPER-UX:*:*)
+       echo sxace-nec-superux${UNAME_RELEASE}
+       exit ;;
     Power*:Rhapsody:*:*)
        echo powerpc-apple-rhapsody${UNAME_RELEASE}
        exit ;;
@@ -1262,9 +1295,9 @@
            UNAME_PROCESSOR=powerpc
        fi
        if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then
-           if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
+           if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
                if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') 
| \
-                   (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
+                   (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
                    grep IS_64BIT_ARCH >/dev/null
                then
                    case $UNAME_PROCESSOR in
@@ -1286,7 +1319,7 @@
        exit ;;
     *:procnto*:*:* | *:QNX:[0123456789]*:*)
        UNAME_PROCESSOR=`uname -p`
-       if test "$UNAME_PROCESSOR" = "x86"; then
+       if test "$UNAME_PROCESSOR" = x86; then
                UNAME_PROCESSOR=i386
                UNAME_MACHINE=pc
        fi
@@ -1317,7 +1350,7 @@
        # "uname -m" is not consistent, so use $cputype instead. 386
        # is converted to i386 for consistency with other x86
        # operating systems.
-       if test "$cputype" = "386"; then
+       if test "$cputype" = 386; then
            UNAME_MACHINE=i386
        else
            UNAME_MACHINE="$cputype"
@@ -1359,7 +1392,7 @@
        echo i386-pc-xenix
        exit ;;
     i*86:skyos:*:*)
-       echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ 
.*$//'
+       echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ 
.*$//'`
        exit ;;
     i*86:rdos:*:*)
        echo ${UNAME_MACHINE}-pc-rdos
@@ -1370,23 +1403,25 @@
     x86_64:VMkernel:*:*)
        echo ${UNAME_MACHINE}-unknown-esx
        exit ;;
+    amd64:Isilon\ OneFS:*:*)
+       echo x86_64-unknown-onefs
+       exit ;;
 esac
 
 cat >&2 <<EOF
 $0: unable to guess system type
 
-This script, last modified $timestamp, has failed to recognize
-the operating system you are using. It is advised that you
-download the most up to date version of the config scripts from
+This script (version $timestamp), has failed to recognize the
+operating system you are using. If your script is old, overwrite
+config.guess and config.sub with the latest versions from:
 
-  
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess
 and
-  
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
 
-If the version you run ($0) is already up to date, please
-send the following data and any information you think might be
-pertinent to <[email protected]> in order to provide the needed
-information to handle your system.
+If $0 has already been updated, send the following data and any
+information you think might be pertinent to [email protected] to
+provide the necessary information to handle your system.
 
 config.guess timestamp = $timestamp
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/npth-1.2/build-aux/config.sub 
new/npth-1.3/build-aux/config.sub
--- old/npth-1.2/build-aux/config.sub   2015-01-28 11:26:03.000000000 +0100
+++ new/npth-1.3/build-aux/config.sub   2016-07-13 19:03:42.000000000 +0200
@@ -1,8 +1,8 @@
 #! /bin/sh
 # Configuration validation subroutine script.
-#   Copyright 1992-2015 Free Software Foundation, Inc.
+#   Copyright 1992-2016 Free Software Foundation, Inc.
 
-timestamp='2015-01-01'
+timestamp='2016-06-20'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -33,7 +33,7 @@
 # Otherwise, we print the canonical config type on stdout and succeed.
 
 # You can get the latest version of this script from:
-# 
http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
+# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
 
 # This file is supposed to be the same for all GNU packages
 # and recognize all the CPU types, system types and aliases
@@ -53,8 +53,7 @@
 me=`echo "$0" | sed -e 's,.*/,,'`
 
 usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
-       $0 [OPTION] ALIAS
+Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS
 
 Canonicalize a configuration name.
 
@@ -68,7 +67,7 @@
 version="\
 GNU config.sub ($timestamp)
 
-Copyright 1992-2015 Free Software Foundation, Inc.
+Copyright 1992-2016 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -117,7 +116,7 @@
 case $maybe_os in
   nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
   linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | 
kfreebsd*-gnu* | \
-  knetbsd*-gnu* | netbsd*-gnu* | \
+  knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \
   kopensolaris*-gnu* | \
   storm-chaos* | os2-emx* | rtmk-nova*)
     os=-$maybe_os
@@ -255,11 +254,12 @@
        | arc | arceb \
        | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \
        | avr | avr32 \
+       | ba \
        | be32 | be64 \
        | bfin \
        | c4x | c8051 | clipper \
        | d10v | d30v | dlx | dsp16xx \
-       | epiphany \
+       | e2k | epiphany \
        | fido | fr30 | frv | ft32 \
        | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
        | hexagon \
@@ -305,7 +305,7 @@
        | riscv32 | riscv64 \
        | rl78 | rx \
        | score \
-       | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | 
shbe | shle | sh[1234]le | sh3ele \
+       | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | 
shbe | shle | sh[1234]le | sh3ele \
        | sh64 | sh64le \
        | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | 
sparclite \
        | sparcv8 | sparcv9 | sparcv9b | sparcv9v \
@@ -376,12 +376,13 @@
        | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \
        | arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
        | avr-* | avr32-* \
+       | ba-* \
        | be32-* | be64-* \
        | bfin-* | bs2000-* \
        | c[123]* | c30-* | [cjt]90-* | c4x-* \
        | c8051-* | clipper-* | craynv-* | cydra-* \
        | d10v-* | d30v-* | dlx-* \
-       | elxsi-* \
+       | e2k-* | elxsi-* \
        | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
        | h8300-* | h8500-* \
        | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
@@ -428,12 +429,13 @@
        | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
        | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
        | pyramid-* \
+       | riscv32-* | riscv64-* \
        | rl78-* | romp-* | rs6000-* | rx-* \
        | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* 
| sheb-* | shbe-* \
        | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
        | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | 
sparclet-* \
        | sparclite-* \
-       | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
+       | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \
        | tahoe-* \
        | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
        | tile*-* \
@@ -518,6 +520,9 @@
                basic_machine=i386-pc
                os=-aros
                ;;
+       asmjs)
+               basic_machine=asmjs-unknown
+               ;;
        aux)
                basic_machine=m68k-apple
                os=-aux
@@ -638,6 +643,14 @@
                basic_machine=m68k-bull
                os=-sysv3
                ;;
+       e500v[12])
+               basic_machine=powerpc-unknown
+               os=$os"spe"
+               ;;
+       e500v[12]-*)
+               basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+               os=$os"spe"
+               ;;
        ebmon29k)
                basic_machine=a29k-amd
                os=-ebmon
@@ -1373,18 +1386,18 @@
              | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | 
-solaris* \
              | -sym* | -kopensolaris* | -plan9* \
              | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-             | -aos* | -aros* \
+             | -aos* | -aros* | -cloudabi* | -sortix* \
              | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
              | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
              | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
-             | -bitrig* | -openbsd* | -solidbsd* \
+             | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \
              | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
              | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
              | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
              | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
              | -chorusos* | -chorusrdb* | -cegcc* \
              | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* 
\
-             | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \
+             | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | 
-linux-android* \
              | -linux-newlib* | -linux-musl* | -linux-uclibc* \
              | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \
              | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
@@ -1393,7 +1406,8 @@
              | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
              | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
              | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-             | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | 
-tirtos*)
+             | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \
+             | -onefs* | -tirtos* | -phoenix*)
        # Remember, each alternative MUST END IN *, to match a version number.
                ;;
        -qnx*)
@@ -1525,6 +1539,8 @@
                ;;
        -nacl*)
                ;;
+       -ios)
+               ;;
        -none)
                ;;
        *)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/npth-1.2/config.h.in new/npth-1.3/config.h.in
--- old/npth-1.2/config.h.in    2015-04-11 14:00:23.000000000 +0200
+++ new/npth-1.3/config.h.in    2016-11-22 11:16:05.000000000 +0100
@@ -1,11 +1,17 @@
 /* config.h.in.  Generated from configure.ac by autoheader.  */
 
+/* The time this package was configured for a build */
+#undef BUILD_TIMESTAMP
+
 /* Define to 1 if you have the `clock_gettime' function. */
 #undef HAVE_CLOCK_GETTIME
 
 /* Define to 1 if you have the <dlfcn.h> header file. */
 #undef HAVE_DLFCN_H
 
+/* Defined if we have fork-unsafe semaphore */
+#undef HAVE_FORK_UNSAFE_SEMAPHORE
+
 /* Define to 1 if you have the `gettimeofday' function. */
 #undef HAVE_GETTIMEOFDAY
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/npth-1.2/configure new/npth-1.3/configure
--- old/npth-1.2/configure      2015-04-11 14:02:28.000000000 +0200
+++ new/npth-1.3/configure      2016-11-22 11:15:03.000000000 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for npth 1.2.
+# Generated by GNU Autoconf 2.69 for npth 1.3.
 #
 # Report bugs to <[email protected]>.
 #
@@ -590,8 +590,8 @@
 # Identity of this package.
 PACKAGE_NAME='npth'
 PACKAGE_TARNAME='npth'
-PACKAGE_VERSION='1.2'
-PACKAGE_STRING='npth 1.2'
+PACKAGE_VERSION='1.3'
+PACKAGE_STRING='npth 1.3'
 PACKAGE_BUGREPORT='[email protected]'
 PACKAGE_URL=''
 
@@ -645,6 +645,7 @@
 emacs_local_vars_read_only
 emacs_local_vars_begin
 NETLIBS
+LIB_CLOCK_GETTIME
 LIBSOCKET
 INSERT_SOCKLEN_T
 SYS_SOCKET_H
@@ -652,9 +653,9 @@
 INSERT_TIME_H
 INSERT_SYS_TIME_H
 INSERT_SYS_SELECT_H
+BUILD_TIMESTAMP
 BUILD_FILEVERSION
 BUILD_ISODATE
-BUILD_TIMESTAMP
 HAVE_W64_SYSTEM_FALSE
 HAVE_W64_SYSTEM_TRUE
 HAVE_W32_SYSTEM_FALSE
@@ -797,6 +798,7 @@
 with_gnu_ld
 with_sysroot
 enable_libtool_lock
+enable_build_timestamp
 '
       ac_precious_vars='build_alias
 host_alias
@@ -1347,7 +1349,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures npth 1.2 to adapt to many kinds of systems.
+\`configure' configures npth 1.3 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1417,7 +1419,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of npth 1.2:";;
+     short | recursive ) echo "Configuration of npth 1.3:";;
    esac
   cat <<\_ACEOF
 
@@ -1440,6 +1442,9 @@
   --enable-fast-install[=PKGS]
                           optimize for fast installation [default=yes]
   --disable-libtool-lock  avoid locking (might break parallel builds)
+  --enable-build-timestamp
+                          set an explicit build timestamp for reproducibility.
+                          (default is the current time in ISO-8601 format)
 
 Optional Packages:
   --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
@@ -1526,7 +1531,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-npth configure 1.2
+npth configure 1.3
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1949,7 +1954,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by npth $as_me 1.2, which was
+It was created by npth $as_me 1.3, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2307,7 +2312,7 @@
 #
 LIBNPTH_LT_CURRENT=0
 LIBNPTH_LT_AGE=0
-LIBNPTH_LT_REVISION=5
+LIBNPTH_LT_REVISION=6
 
 # If the API is changed in an incompatible way: increment the next counter.
 NPTH_CONFIG_API_VERSION=1
@@ -2835,7 +2840,7 @@
 
 # Define the identity of the package.
  PACKAGE='npth'
- VERSION='1.2'
+ VERSION='1.3'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -12947,6 +12952,9 @@
 $as_echo "#define _XOPEN_SOURCE 500" >>confdefs.h
 
         ;;
+    *-*-aix*)
+       have_fork_unsafe_semaphore=yes
+        ;;
 esac
 
  if test "$have_ld_version_script" = "yes"; then
@@ -12957,6 +12965,11 @@
   HAVE_LD_VERSION_SCRIPT_FALSE=
 fi
 
+if test "$have_fork_unsafe_semaphore" = yes; then
+
+$as_echo "#define HAVE_FORK_UNSAFE_SEMAPHORE 1" >>confdefs.h
+
+fi
 
 # Set some default values
 config_libs="-lnpth"
@@ -13013,13 +13026,28 @@
 # Generate values for the DLL version info
 #
 if test "$have_w32_system" = yes; then
-    BUILD_TIMESTAMP=`date --iso-8601=minutes`
     BUILD_ISODATE=`date --iso-8601`
         BUILD_FILEVERSION=`echo "$VERSION" | sed 
's/\([0-9.]*\).*/\1./;s/\./,/g'`
-        BUILD_FILEVERSION="${BUILD_FILEVERSION}48279"
+        BUILD_FILEVERSION="${BUILD_FILEVERSION}53688"
 fi
 
 
+# Check whether --enable-build-timestamp was given.
+if test "${enable_build_timestamp+set}" = set; then :
+  enableval=$enable_build_timestamp; if test "$enableval" = "yes"; then
+        BUILD_TIMESTAMP=`date -u +%Y-%m-%dT%H:%M+0000 2>/dev/null || date`
+      else
+        BUILD_TIMESTAMP="$enableval"
+      fi
+else
+  BUILD_TIMESTAMP="<none>"
+fi
+
+
+
+cat >>confdefs.h <<_ACEOF
+#define BUILD_TIMESTAMP "$BUILD_TIMESTAMP"
+_ACEOF
 
 
 
@@ -13220,10 +13248,12 @@
 #
 # Checks for libraries and functions.
 #
+#   We test for pthread_detach because glibc 2.22 includes
+#   pthread_create but not pthread_detach.
 if test "$have_w32_system" = no; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing 
pthread_create" >&5
-$as_echo_n "checking for library containing pthread_create... " >&6; }
-if ${ac_cv_search_pthread_create+:} false; then :
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing 
pthread_detach" >&5
+$as_echo_n "checking for library containing pthread_detach... " >&6; }
+if ${ac_cv_search_pthread_detach+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
@@ -13236,11 +13266,11 @@
 #ifdef __cplusplus
 extern "C"
 #endif
-char pthread_create ();
+char pthread_detach ();
 int
 main ()
 {
-return pthread_create ();
+return pthread_detach ();
   ;
   return 0;
 }
@@ -13253,31 +13283,31 @@
     LIBS="-l$ac_lib  $ac_func_search_save_LIBS"
   fi
   if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_search_pthread_create=$ac_res
+  ac_cv_search_pthread_detach=$ac_res
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext
-  if ${ac_cv_search_pthread_create+:} false; then :
+  if ${ac_cv_search_pthread_detach+:} false; then :
   break
 fi
 done
-if ${ac_cv_search_pthread_create+:} false; then :
+if ${ac_cv_search_pthread_detach+:} false; then :
 
 else
-  ac_cv_search_pthread_create=no
+  ac_cv_search_pthread_detach=no
 fi
 rm conftest.$ac_ext
 LIBS=$ac_func_search_save_LIBS
 fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_pthread_create" 
>&5
-$as_echo "$ac_cv_search_pthread_create" >&6; }
-ac_res=$ac_cv_search_pthread_create
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_pthread_detach" 
>&5
+$as_echo "$ac_cv_search_pthread_detach" >&6; }
+ac_res=$ac_cv_search_pthread_detach
 if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
 
 fi
 
-  case "x$ac_cv_search_pthread_create" in
+  case "x$ac_cv_search_pthread_detach" in
     xno)
       have_pthread=no
       ;;
@@ -13286,7 +13316,7 @@
       ;;
     *)
       have_pthread=yes
-      config_libs="$config_libs $ac_cv_search_pthread_create"
+      config_libs="$config_libs $ac_cv_search_pthread_detach"
       ;;
   esac
   if test "$have_pthread" != no; then
@@ -13493,6 +13523,12 @@
 
 config_libs="$config_libs $LIBSOCKET"
 
+# Save and restore LIBS so e.g., -lrt, isn't added to it.  Otherwise, *all*
+# programs in the package would end up linked with that potentially-shared
+# library, inducing unnecessary run-time overhead.
+LIB_CLOCK_GETTIME=
+
+gl_saved_libs=$LIBS
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing 
clock_gettime" >&5
 $as_echo_n "checking for library containing clock_gettime... " >&6; }
 if ${ac_cv_search_clock_gettime+:} false; then :
@@ -13546,15 +13582,18 @@
 ac_res=$ac_cv_search_clock_gettime
 if test "$ac_res" != no; then :
   test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
-
-fi
-
-if test "x$ac_cv_search_clock_gettime" != no; then
+  if test "$ac_cv_search_clock_gettime" != "none required"; then
+                  LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime
+                  config_libs="$config_libs $LIB_CLOCK_GETTIME"
+                fi
 
 $as_echo "#define HAVE_CLOCK_GETTIME 1" >>confdefs.h
 
+
 fi
 
+LIBS=$gl_saved_libs
+
 
 #
 # Set NETLIBS
@@ -14180,7 +14219,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by npth $as_me 1.2, which was
+This file was extended by npth $as_me 1.3, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -14246,7 +14285,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-npth config.status 1.2
+npth config.status 1.3
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
@@ -16240,6 +16279,6 @@
 echo "
         $PACKAGE_NAME-$PACKAGE_VERSION prepared for make
 
-        Revision: bc97d51  (48279)
+        Revision: d1b8d54  (53688)
         Platform: $host
 "
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/npth-1.2/configure.ac new/npth-1.3/configure.ac
--- old/npth-1.2/configure.ac   2015-04-11 13:57:20.000000000 +0200
+++ new/npth-1.3/configure.ac   2016-11-22 11:12:12.000000000 +0100
@@ -35,7 +35,7 @@
 # the version number immediately after the release and do another
 # commit and push so that the git magic is able to work.
 # See below for the LT versions.
-m4_define(my_version, [1.2])
+m4_define(my_version, [1.3])
 
 # Below is m4 magic to extract and compute the git revision number,
 # the decimalized short revision number, a beta version string and a
@@ -61,7 +61,7 @@
 #
 LIBNPTH_LT_CURRENT=0
 LIBNPTH_LT_AGE=0
-LIBNPTH_LT_REVISION=5
+LIBNPTH_LT_REVISION=6
 
 # If the API is changed in an incompatible way: increment the next counter.
 NPTH_CONFIG_API_VERSION=1
@@ -125,9 +125,15 @@
     *-apple-darwin*)
         AC_DEFINE(_XOPEN_SOURCE, 500, Activate POSIX interface on MacOS X)
         ;;
+    *-*-aix*)
+       have_fork_unsafe_semaphore=yes
+        ;;
 esac
 
 AM_CONDITIONAL(HAVE_LD_VERSION_SCRIPT, test "$have_ld_version_script" = "yes")
+if test "$have_fork_unsafe_semaphore" = yes; then
+   AC_DEFINE(HAVE_FORK_UNSAFE_SEMAPHORE, 1, [Defined if we have fork-unsafe 
semaphore])
+fi
 
 # Set some default values
 config_libs="-lnpth"
@@ -168,16 +174,27 @@
 # Generate values for the DLL version info
 #
 if test "$have_w32_system" = yes; then
-    BUILD_TIMESTAMP=`date --iso-8601=minutes`
     BUILD_ISODATE=`date --iso-8601`
     changequote(,)dnl
     BUILD_FILEVERSION=`echo "$VERSION" | sed 's/\([0-9.]*\).*/\1./;s/\./,/g'`
     changequote([,])dnl
     BUILD_FILEVERSION="${BUILD_FILEVERSION}git_revision_dec"
 fi
-AC_SUBST(BUILD_TIMESTAMP)
 AC_SUBST(BUILD_ISODATE)
 AC_SUBST(BUILD_FILEVERSION)
+AC_ARG_ENABLE([build-timestamp],
+  AC_HELP_STRING([--enable-build-timestamp],
+                 [set an explicit build timestamp for reproducibility.
+                  (default is the current time in ISO-8601 format)]),
+     [if test "$enableval" = "yes"; then
+        BUILD_TIMESTAMP=`date -u +%Y-%m-%dT%H:%M+0000 2>/dev/null || date`
+      else
+        BUILD_TIMESTAMP="$enableval"
+      fi],
+     [BUILD_TIMESTAMP="<none>"])
+AC_SUBST(BUILD_TIMESTAMP)
+AC_DEFINE_UNQUOTED(BUILD_TIMESTAMP, "$BUILD_TIMESTAMP",
+                   [The time this package was configured for a build])
 
 
 #
@@ -237,9 +254,11 @@
 #
 # Checks for libraries and functions.
 #
+#   We test for pthread_detach because glibc 2.22 includes
+#   pthread_create but not pthread_detach.
 if test "$have_w32_system" = no; then
-  AC_SEARCH_LIBS([pthread_create],[pthread])
-  case "x$ac_cv_search_pthread_create" in
+  AC_SEARCH_LIBS([pthread_detach],[pthread])
+  case "x$ac_cv_search_pthread_detach" in
     xno)
       have_pthread=no
       ;;
@@ -248,7 +267,7 @@
       ;;
     *)
       have_pthread=yes
-      config_libs="$config_libs $ac_cv_search_pthread_create"
+      config_libs="$config_libs $ac_cv_search_pthread_detach"
       ;;
   esac
   if test "$have_pthread" != no; then
@@ -267,11 +286,21 @@
 npth_LIBSOCKET
 config_libs="$config_libs $LIBSOCKET"
 
-AC_SEARCH_LIBS([clock_gettime],[rt posix4])
-if test "x$ac_cv_search_clock_gettime" != no; then
-    AC_DEFINE(HAVE_CLOCK_GETTIME,1,
-              [Define to 1 if you have the `clock_gettime' function.])
-fi
+# Save and restore LIBS so e.g., -lrt, isn't added to it.  Otherwise, *all*
+# programs in the package would end up linked with that potentially-shared
+# library, inducing unnecessary run-time overhead.
+LIB_CLOCK_GETTIME=
+AC_SUBST([LIB_CLOCK_GETTIME])
+gl_saved_libs=$LIBS
+AC_SEARCH_LIBS([clock_gettime], [rt posix4],
+               [if test "$ac_cv_search_clock_gettime" != "none required"; then
+                  LIB_CLOCK_GETTIME=$ac_cv_search_clock_gettime
+                  config_libs="$config_libs $LIB_CLOCK_GETTIME"
+                fi
+                AC_DEFINE([HAVE_CLOCK_GETTIME],1,
+                  [Define to 1 if you have the `clock_gettime' function.])
+                ])
+LIBS=$gl_saved_libs
 
 
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/npth-1.2/npth.spec new/npth-1.3/npth.spec
--- old/npth-1.2/npth.spec      2015-04-11 14:02:43.000000000 +0200
+++ new/npth-1.3/npth.spec      2016-11-22 11:16:05.000000000 +0100
@@ -1,7 +1,7 @@
 # This is a template.  The dist target uses it to create the real file.
 Summary: NPTH - the new GNU Portable Threads Library
 Name: npth
-Version: 1.2
+Version: 1.3
 Release: 1
 URL: http://www.gnupg.org/
 Source: ftp://ftp.gnupg.org/gcrypt/alpha
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/npth-1.2/src/Makefile.in new/npth-1.3/src/Makefile.in
--- old/npth-1.2/src/Makefile.in        2015-04-11 14:02:27.000000000 +0200
+++ new/npth-1.3/src/Makefile.in        2016-11-22 11:15:03.000000000 +0100
@@ -272,6 +272,7 @@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
 LIBTOOL = @LIBTOOL@
+LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/npth-1.2/src/npth.c new/npth-1.3/src/npth.c
--- old/npth-1.2/src/npth.c     2014-12-18 16:52:12.000000000 +0100
+++ new/npth-1.3/src/npth.c     2016-11-21 09:42:10.000000000 +0100
@@ -61,12 +61,46 @@
 static sem_t sceptre_buffer;
 static sem_t *sceptre = &sceptre_buffer;
 
+/* Configure defines HAVE_FORK_UNSAFE_SEMAPHORE if child process can't
+   access non-shared unnamed semaphore which is created by its parent.
+
+   We use unnamed semaphore (if available) for the global lock.  The
+   specific semaphore is only valid for those threads in a process,
+   and it is no use by other processes.  Thus, PSHARED argument for
+   sem_init is naturally 0.
+
+   However, there are daemon-like applications which use fork after
+   npth's initialization by npth_init.  In this case, a child process
+   uses the semaphore which was created by its parent process, while
+   parent does nothing with the semaphore.  In some system (e.g. AIX),
+   access by child process to non-shared unnamed semaphore is
+   prohibited.  For such a system, HAVE_FORK_UNSAFE_SEMAPHORE should
+   be defined, so that unnamed semaphore will be created with the
+   option PSHARED=1.  The purpose of the setting of PSHARED=1 is only
+   for allowing the access of the lock by child process.  For NPTH, it
+   does not mean any other interactions between processes.
+
+ */
+#ifdef HAVE_FORK_UNSAFE_SEMAPHORE
+#define NPTH_SEMAPHORE_PSHARED 1
+#else
+#define NPTH_SEMAPHORE_PSHARED 0
+#endif
+
 /* The main thread is the active thread at the time pth_init was
    called.  As of now it is only useful for debugging.  The volatile
    make sure the compiler does not eliminate this set but not used
    variable.  */
 static volatile pthread_t main_thread;
 
+/* This flag is set as soon as npth_init has been called or if any
+ * thread has been created.  It will never be cleared again.  The only
+ * purpose is to make npth_protect and npth_unprotect more robust in
+ * that they can be shortcut when npth_init has not yet been called.
+ * This is important for libraries which want to support nPth by using
+ * those two functions but may have be initialized before pPth. */
+static int initialized_or_any_threads;
+
 /* Systems that don't have pthread_mutex_timedlock get a busy wait
    implementation that probes the lock every BUSY_WAIT_INTERVAL
    milliseconds.  */
@@ -177,12 +211,15 @@
 
   main_thread = pthread_self();
 
+  /* Track that we have been initialized.  */
+  initialized_or_any_threads |= 1;
+
   /* Better reset ERRNO so that we know that it has been set by
      sem_init.  */
   errno = 0;
 
-  /* The semaphore is not shared and binary.  */
-  res = sem_init (sceptre, 0, 1);
+  /* The semaphore is binary.  */
+  res = sem_init (sceptre, NPTH_SEMAPHORE_PSHARED, 1);
   if (res < 0)
     {
       /* Mac OSX and some AIX versions have sem_init but return
@@ -231,8 +268,15 @@
 #ifdef __NetBSD__
   return pthread_setname_np (target_thread, "%s", (void*) name);
 #else
+#ifdef __APPLE__
+  if (target_thread == npth_self ())
+    return pthread_setname_np (name);
+  else
+    return ENOTSUP;
+#else
   return pthread_setname_np (target_thread, name);
 #endif
+#endif
 #else
   (void)target_thread;
   (void)name;
@@ -282,6 +326,8 @@
   if (!startup)
     return errno;
 
+  initialized_or_any_threads |= 2;
+
   startup->start_routine = start_routine;
   startup->arg = arg;
   err = pthread_create (thread, attr, thread_start, startup);
@@ -683,14 +729,23 @@
 void
 npth_unprotect (void)
 {
-  ENTER();
+  /* If we are not initialized we may not access the semaphore and
+   * thus we shortcut it. Note that in this case the unprotect/protect
+   * is not needed.  For failsafe reasons if an nPth thread has ever
+   * been created but nPth has accidentally not initialized we do not
+   * shortcut so that a stack backtrace (due to the access of the
+   * uninitialized semaphore) is more expressive.  */
+  if (initialized_or_any_threads)
+    ENTER();
 }
 
 
 void
 npth_protect (void)
 {
-  LEAVE();
+  /* See npth_unprotect for commentary.  */
+  if (initialized_or_any_threads)
+    LEAVE();
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/npth-1.2/src/npth.h new/npth-1.3/src/npth.h
--- old/npth-1.2/src/npth.h     2015-04-11 14:02:41.000000000 +0200
+++ new/npth-1.3/src/npth.h     2016-11-22 11:15:44.000000000 +0100
@@ -1,5 +1,5 @@
 /* npth.h - a lightweight implementation of pth over pthread.
-            Configured for: x86_64-unknown-linux-gnu.
+            Configured for: x86_64-pc-linux-gnu.
    Copyright (C) 2011, 2012, 2015 g10 Code GmbH
 
    This file is part of NPTH.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/npth-1.2/tests/Makefile.am 
new/npth-1.3/tests/Makefile.am
--- old/npth-1.2/tests/Makefile.am      2013-03-15 20:25:51.000000000 +0100
+++ new/npth-1.3/tests/Makefile.am      2016-07-13 19:03:55.000000000 +0200
@@ -35,11 +35,12 @@
 if HAVE_W32_SYSTEM
 AM_CPPFLAGS = -I$(top_srcdir)/w32
 AM_LDFLAGS =
-LDADD = ../w32/libnpth.la
+LDADD = ../w32/libnpth.la $(LIB_CLOCK_GETTIME)
 else
 AM_CPPFLAGS = -I../src -D_POSIX_C_SOURCE=200112L
 AM_LDFLAGS =
-LDADD = ../src/libnpth.la $(LIBSOCKET)
+LDADD = ../src/libnpth.la $(LIBSOCKET) $(LIB_CLOCK_GETTIME)
+TESTS += t-fork
 endif
 
 noinst_HEADERS = t-support.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/npth-1.2/tests/Makefile.in 
new/npth-1.3/tests/Makefile.in
--- old/npth-1.2/tests/Makefile.in      2015-04-11 14:02:27.000000000 +0200
+++ new/npth-1.3/tests/Makefile.in      2016-11-22 11:15:03.000000000 +0100
@@ -107,8 +107,9 @@
 POST_UNINSTALL = :
 build_triplet = @build@
 host_triplet = @host@
-TESTS = t-mutex$(EXEEXT) t-thread$(EXEEXT)
-noinst_PROGRAMS = $(am__EXEEXT_1)
+TESTS = t-mutex$(EXEEXT) t-thread$(EXEEXT) $(am__EXEEXT_1)
+@HAVE_W32_SYSTEM_FALSE@am__append_1 = t-fork
+noinst_PROGRAMS = $(am__EXEEXT_2)
 subdir = tests
 DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
        $(top_srcdir)/build-aux/depcomp $(noinst_HEADERS)
@@ -124,25 +125,38 @@
 CONFIG_HEADER = $(top_builddir)/config.h
 CONFIG_CLEAN_FILES =
 CONFIG_CLEAN_VPATH_FILES =
-am__EXEEXT_1 = t-mutex$(EXEEXT) t-thread$(EXEEXT)
+@HAVE_W32_SYSTEM_FALSE@am__EXEEXT_1 = t-fork$(EXEEXT)
+am__EXEEXT_2 = t-mutex$(EXEEXT) t-thread$(EXEEXT) $(am__EXEEXT_1)
 PROGRAMS = $(noinst_PROGRAMS)
-t_mutex_SOURCES = t-mutex.c
-t_mutex_OBJECTS = t-mutex.$(OBJEXT)
-t_mutex_LDADD = $(LDADD)
+t_fork_SOURCES = t-fork.c
+t_fork_OBJECTS = t-fork.$(OBJEXT)
+t_fork_LDADD = $(LDADD)
 am__DEPENDENCIES_1 =
-@HAVE_W32_SYSTEM_FALSE@t_mutex_DEPENDENCIES = ../src/libnpth.la \
+@HAVE_W32_SYSTEM_FALSE@t_fork_DEPENDENCIES = ../src/libnpth.la \
+@HAVE_W32_SYSTEM_FALSE@        $(am__DEPENDENCIES_1) \
 @HAVE_W32_SYSTEM_FALSE@        $(am__DEPENDENCIES_1)
-@HAVE_W32_SYSTEM_TRUE@t_mutex_DEPENDENCIES = ../w32/libnpth.la
+@HAVE_W32_SYSTEM_TRUE@t_fork_DEPENDENCIES = ../w32/libnpth.la \
+@HAVE_W32_SYSTEM_TRUE@ $(am__DEPENDENCIES_1)
 AM_V_lt = $(am__v_lt_@AM_V@)
 am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@)
 am__v_lt_0 = --silent
 am__v_lt_1 = 
+t_mutex_SOURCES = t-mutex.c
+t_mutex_OBJECTS = t-mutex.$(OBJEXT)
+t_mutex_LDADD = $(LDADD)
+@HAVE_W32_SYSTEM_FALSE@t_mutex_DEPENDENCIES = ../src/libnpth.la \
+@HAVE_W32_SYSTEM_FALSE@        $(am__DEPENDENCIES_1) \
+@HAVE_W32_SYSTEM_FALSE@        $(am__DEPENDENCIES_1)
+@HAVE_W32_SYSTEM_TRUE@t_mutex_DEPENDENCIES = ../w32/libnpth.la \
+@HAVE_W32_SYSTEM_TRUE@ $(am__DEPENDENCIES_1)
 t_thread_SOURCES = t-thread.c
 t_thread_OBJECTS = t-thread.$(OBJEXT)
 t_thread_LDADD = $(LDADD)
 @HAVE_W32_SYSTEM_FALSE@t_thread_DEPENDENCIES = ../src/libnpth.la \
+@HAVE_W32_SYSTEM_FALSE@        $(am__DEPENDENCIES_1) \
 @HAVE_W32_SYSTEM_FALSE@        $(am__DEPENDENCIES_1)
-@HAVE_W32_SYSTEM_TRUE@t_thread_DEPENDENCIES = ../w32/libnpth.la
+@HAVE_W32_SYSTEM_TRUE@t_thread_DEPENDENCIES = ../w32/libnpth.la \
+@HAVE_W32_SYSTEM_TRUE@ $(am__DEPENDENCIES_1)
 AM_V_P = $(am__v_P_@AM_V@)
 am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
 am__v_P_0 = false
@@ -177,8 +191,8 @@
 am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@)
 am__v_CCLD_0 = @echo "  CCLD    " $@;
 am__v_CCLD_1 = 
-SOURCES = t-mutex.c t-thread.c
-DIST_SOURCES = t-mutex.c t-thread.c
+SOURCES = t-fork.c t-mutex.c t-thread.c
+DIST_SOURCES = t-fork.c t-mutex.c t-thread.c
 am__can_run_installinfo = \
   case $$AM_UPDATE_INFO_DIR in \
     n|no|NO) false;; \
@@ -276,6 +290,7 @@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
 LIBTOOL = @LIBTOOL@
+LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
@@ -372,8 +387,8 @@
 @HAVE_W32_SYSTEM_TRUE@AM_CPPFLAGS = -I$(top_srcdir)/w32
 @HAVE_W32_SYSTEM_FALSE@AM_LDFLAGS = 
 @HAVE_W32_SYSTEM_TRUE@AM_LDFLAGS = 
-@HAVE_W32_SYSTEM_FALSE@LDADD = ../src/libnpth.la $(LIBSOCKET)
-@HAVE_W32_SYSTEM_TRUE@LDADD = ../w32/libnpth.la
+@HAVE_W32_SYSTEM_FALSE@LDADD = ../src/libnpth.la $(LIBSOCKET) 
$(LIB_CLOCK_GETTIME)
+@HAVE_W32_SYSTEM_TRUE@LDADD = ../w32/libnpth.la $(LIB_CLOCK_GETTIME)
 noinst_HEADERS = t-support.h
 all: all-am
 
@@ -419,6 +434,10 @@
        echo " rm -f" $$list; \
        rm -f $$list
 
+t-fork$(EXEEXT): $(t_fork_OBJECTS) $(t_fork_DEPENDENCIES) 
$(EXTRA_t_fork_DEPENDENCIES) 
+       @rm -f t-fork$(EXEEXT)
+       $(AM_V_CCLD)$(LINK) $(t_fork_OBJECTS) $(t_fork_LDADD) $(LIBS)
+
 t-mutex$(EXEEXT): $(t_mutex_OBJECTS) $(t_mutex_DEPENDENCIES) 
$(EXTRA_t_mutex_DEPENDENCIES) 
        @rm -f t-mutex$(EXEEXT)
        $(AM_V_CCLD)$(LINK) $(t_mutex_OBJECTS) $(t_mutex_LDADD) $(LIBS)
@@ -433,6 +452,7 @@
 distclean-compile:
        -rm -f *.tab.c
 
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t-fork.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t-mutex.Po@am__quote@
 @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/t-thread.Po@am__quote@
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/npth-1.2/tests/t-fork.c new/npth-1.3/tests/t-fork.c
--- old/npth-1.2/tests/t-fork.c 1970-01-01 01:00:00.000000000 +0100
+++ new/npth-1.3/tests/t-fork.c 2016-07-13 19:03:55.000000000 +0200
@@ -0,0 +1,49 @@
+/* t-fork.c
+ * Copyright 2016 g10 Code GmbH
+ *
+ * This file is free software; as a special exception the author gives
+ * unlimited permission to copy and/or distribute it, with or without
+ * modifications, as long as this notice is preserved.
+ *
+ * This file is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY, to the extent permitted by law; without even the
+ * implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+#include <sys/types.h>
+#include <sys/wait.h>
+#include <unistd.h>
+#include "t-support.h"
+
+
+int
+main (int argc, const char *argv[])
+{
+  int rc;
+  pid_t pid;
+
+  if (argc >= 2 && !strcmp (argv[1], "--verbose"))
+    opt_verbose = 1;
+
+  rc = npth_init ();
+  fail_if_err (rc);
+
+  pid = fork ();
+  if (pid == (pid_t)-1)
+    fail_msg ("fork failed");
+  else if (pid)
+   {
+     int status;
+
+     info_msg ("forked");
+     wait (&status);
+     fail_if_err (status);
+   }
+  else
+    {
+      info_msg ("child exit");
+      npth_usleep (1000);     /* Let NPTH enter, sleep, and leave.  */
+    }
+
+  return 0;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/npth-1.2/w32/Makefile.in new/npth-1.3/w32/Makefile.in
--- old/npth-1.2/w32/Makefile.in        2015-04-11 14:02:28.000000000 +0200
+++ new/npth-1.3/w32/Makefile.in        2016-11-22 11:15:03.000000000 +0100
@@ -273,6 +273,7 @@
 LIBS = @LIBS@
 LIBSOCKET = @LIBSOCKET@
 LIBTOOL = @LIBTOOL@
+LIB_CLOCK_GETTIME = @LIB_CLOCK_GETTIME@
 LIPO = @LIPO@
 LN_S = @LN_S@
 LTLIBOBJS = @LTLIBOBJS@
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/npth-1.2/w32/npth.c new/npth-1.3/w32/npth.c
--- old/npth-1.2/w32/npth.c     2014-06-27 19:00:38.000000000 +0200
+++ new/npth-1.3/w32/npth.c     2016-11-21 09:31:29.000000000 +0100
@@ -35,12 +35,13 @@
 
 #include <assert.h>
 #include <errno.h>
+#include <io.h>
 
 #include "npth.h"
 
 #include <stdio.h>
 #define DEBUG_CALLS 1
-#define _npth_debug(x, ...) printf(__VA_ARGS__)
+#define _npth_debug(x, ...) fprintf(stderr, __VA_ARGS__)
 
 #ifndef TEST
 #undef  DEBUG_CALLS
@@ -57,6 +58,15 @@
    global data such as the thread_table.  */
 static CRITICAL_SECTION sceptre;
 
+/* This flag is set as soon as npth_init has been called or if any
+ * thread has been created.  It will never be cleared again.  The only
+ * purpose is to make npth_protect and npth_unprotect more robust in
+ * that they can be shortcut when npth_init has not yet been called.
+ * This is important for libraries which want to support nPth by using
+ * those two functions but may have be initialized before pPth. */
+static int initialized_or_any_threads;
+
+
 typedef struct npth_impl_s *npth_impl_t;
 #define MAX_THREADS 1024
 #define INVALID_THREAD_ID 0
@@ -150,8 +160,8 @@
   int res;
 
   if (DEBUG_CALLS)
-    _npth_debug (DEBUG_CALLS, "enter_npth (%s)\n",
-                function ? function : "unknown");
+    _npth_debug (DEBUG_CALLS, "tid %lu: enter_npth (%s)\n",
+                npth_self (), function ? function : "unknown");
   LeaveCriticalSection (&sceptre);
 }
 
@@ -162,8 +172,8 @@
   EnterCriticalSection (&sceptre);
 
   if (DEBUG_CALLS)
-    _npth_debug (DEBUG_CALLS, "leave_npth (%s)\n",
-                function ? function : "");
+    _npth_debug (DEBUG_CALLS, "tid %lu: leave_npth (%s)\n",
+                npth_self (), function ? function : "");
 }
 
 #define ENTER() enter_npth(__FUNCTION__)
@@ -320,6 +330,9 @@
 
   InitializeCriticalSection (&sceptre);
 
+  /* Track that we have been initialized.  */
+  initialized_or_any_threads = 1;
+
   /* Fake a thread table item for the main thread.  */
   tls_index = TlsAlloc();
   if (tls_index == TLS_OUT_OF_INDEXES)
@@ -1745,14 +1758,23 @@
 void
 npth_unprotect (void)
 {
-  ENTER();
+  /* If we are not initialized we may not access the semaphore and
+   * thus we shortcut it. Note that in this case the unprotect/protect
+   * is not needed.  For failsafe reasons if an nPth thread has ever
+   * been created but nPth has accidentally not initialized we do not
+   * shortcut so that a stack backtrace (due to the access of the
+   * uninitialized semaphore) is more expressive.  */
+  if (initialized_or_any_threads)
+    ENTER();
 }
 
 
 void
 npth_protect (void)
 {
-  LEAVE();
+  /* See npth_unprotect for commentary.  */
+  if (initialized_or_any_threads)
+    LEAVE();
 }
 
 


Reply via email to