pthreads-win32-2.10-mingw32-pre-20160821-1 ========================================== This release of pthreads-win32 is derived from the upstream pthreads4w git repository, which may be found at: https://sourceforge.net/p/pthreads4w/code/ci/master/tree/ Unlike the previous pthreads-w32-2.9.1-mingw32 release, this release has been extensively patched, to correct some minor defects in the upstream implementation, and to remove significant namespace pollution from the public header files. Specifically: - The source tarball comprises a verbatim copy of the upstream source tree, modified only to the extent that the file attributes have been corrected to remove the executable attribute from a significant set of files which had been incorrectly identified as executable, and a significant set of files with improperly encoded line endings have had this defect corrected. - All applicable MinGW.org patches, identified in order of application by numerically ascending prefix, are provided in the "arch/mingw32" subdirectory of the source tarball; (this is a MinGW.org addition, which is not present in the upstream repository). - The corresponding mingw-pkg package specification is also provided, in the "arch/mingw32" subdirectory, within the source tarball. - All implementation specific detail, which can be safely removed from public headers, has been relocated to implementation-private files. - Any implementation specific symbols, which must remain exposed in public headers, have been renamed with two initial underscores; users should have no need to ever refer to such implementation reserved symbols, within their own applications. - Any implementation specific symbols serving as feature test macros, which users may have cause to pre-define, have been renamed with one initial underscore, conforming to the POSIX.1-2008 requirement that such feature test macros should be so named. - Contrary to assertions by the upstream maintainer, the ABI for this release is NOT binary-compatible with that of previous releases; thus, this release dispenses with the upstream convention, whereby DLL/ABI version numbers are tied to package major version number, and adopts the libtool/cygwin/mingw32 convention, based on libtool's current:revision:age notation, which is not corellated with package version, and is specified, in this case, as 3:0:0, such that this release delivers DLL/ABI version 3. This pthreads-win32-2.10-mingw32 release may be reproduced, building from the pthreads-w32-2.10-mingw32-pre-20160821-1-src.tar.xz tarball, after unpacking, by: $ cd pthreads-win32-2.10 $ for p in arch/mingw32/*.patch ; do patch -p1 < $p ; done $ mkdir build && cd build $ ../configure --prefix=/mingw $ make all which will deliver: libpthreadGC-3.a libpthreadGC-3.dll.a pthreadGC-3.dll libpthreadGCE-3.a libpthreadGCE-3.dll.a pthreadGCE-3.dll Each of these, together with their associated header files, may then be installed, into the ${prefix} tree, (nominally /mingw), by: $ make install which will place copies of the respective files at: ${prefix}/bin: pthreadGC-3.dll pthreadGCE-3.dll ${prefix}/include: pthread.h ptw32_errno.h _ptw32.h sched.h semaphore.h ${prefix}/lib libpthread.a libpthreadGC-3.a libpthreadGCE-3.a libpthread.dll.a libpthreadGC-3.dll.a libpthreadGCE-3.dll.a (with libpthread.a and libpthread.dll.a being verbatim copies of each of libpthreadGC-3.a and libpthreadGC-3.dll.a, respectively). Running the supplied testsuite results in 147 passed tests, from a total of 148 tests run, for each of the pthreadGC libraries, (the "semaphore5" test fails), while in the case of the pthreadGCE libraries the results are slightly less encouraging, with just 141 of the 148 tests passing, (each of the "context1", "cancel3", "cancel5", "cancel6a", "cleanup1", "exception1", and "semaphore5" tests fail). For those users who may prefer to install pre-built binary packages, the following are available, (with content as listed): - pthreads-GC-w32-2.10-mingw32-pre-20160821-1-dev.tar.xz include/pthread.h include/ptw32_errno.h include/_ptw32.h include/sched.h include/semaphore.h lib/libpthread.a lib/libpthread.dll.a lib/libpthreadGC-3.dll.a lib/libpthreadGC-3.a - pthreads-GC-w32-2.10-mingw32-pre-20160821-1-dll-3.tar.xz bin/pthreadGC-3.dll - pthreads-GCE-w32-2.10-mingw32-pre-20160821-1-dev.tar.xz lib/libpthreadGCE-3.a lib/libpthreadGCE-3.dll.a - pthreads-GCE-w32-2.10-mingw32-pre-20160821-1-dll-3.tar.xz bin/pthreadGCE-3.dll Additionally, package licensing information is available in tarball: - pthreads-w32-2.10-mingw32-pre-20160821-1-lic.tar.xz share/doc/pthreads-win32/2.10/COPYING share/doc/pthreads-win32/2.10/COPYING.FSF package documemtation, in HTML format, is provided in: - pthreads-w32-2.10-mingw32-pre-20160821-1-doc.tar.xz share/doc/pthreads-win32/2.10/... and finally, for each of the above named package tarballs, a detached GPG signature, (which may be verified using my public key with footprint C19E C018 1547 DE50 E1D4 8F53 C0AD 36C6 347E 5A3F, and available from keys.gnupg.net), is provided in a file bearing the same name as the respective tarball, suffixed by the ".sig" extension. Use of the pthreads-GCE-win32 development kit is NOT recommended; please note that, if you do choose to experiment with it, the pre-built package is NOT free-standing -- you must also install the pthreads-GC-win32 kit. -- Keith Marshall -- 22-Aug-2016