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