Skip to content

Commit

Permalink
Licence change, references to new name and repository.
Browse files Browse the repository at this point in the history
  • Loading branch information
rocso committed Jul 31, 2018
1 parent 9c9fca9 commit 40f2c56
Show file tree
Hide file tree
Showing 385 changed files with 10,507 additions and 11,442 deletions.
149 changes: 32 additions & 117 deletions ANNOUNCE
Original file line number Diff line number Diff line change
@@ -1,37 +1,44 @@
PTHREADS4W RELEASE 3.0.0 (2016-12-20)
PTHREADS4W RELEASE 3.0.0 (2017-01-01)
--------------------------------------
Web Site: http://sourceforge.net/projects/pthreads4w/
http://sourceware.org/pthreads-win32/
Repository: http://sourceforge.net/p/pthreads4w/code
https://sourceware.org/cgi-bin/cvsweb.cgi/pthreads/?cvsroot=pthreads-win32
Releases: http://sourceforge.net/projects/pthreads4w/files
ftp://sourceware.org/pub/pthreads-win32
Web Site: https://sourceforge.net/projects/pthreads4w/
Repository: https://sourceforge.net/p/pthreads4w/code
Releases: https://sourceforge.net/projects/pthreads4w/files
Maintainer: Ross Johnson <firstname dot lastname at loungebythelake dot net>


We are pleased to announce the availability of a new release of
Pthreads4w (a.k.a. Pthreads-win32), an Open Source Software implementation of the
Threads component of the SUSV3 Standard for Microsoft's
Windows (x86 and x64). Some relevant functions from other sections
of SUSV3 are also supported including semaphores and scheduling
functions. See the Conformance section below for details.
We are pleased to announce the availability of a new release of Pthreads4w
(a.k.a. Pthreads-win32), an Open Source Software implementation of
the Threads component of the SUSV3 Standard for Microsoft's Windows
(x86 and x64). Some relevant functions from other sections of SUSV3 are
also supported including semaphores and scheduling functions. See the
Conformance section below for details.

Some common non-portable functions are also implemented for
additional compatibility, as are a few functions specific
to pthreads4w for easier integration with Windows applications.

Pthreads4w is free software, distributed under the GNU Lesser
General Public License (LGPL).
Pthreads4w is free software. Version 3.0.0 is distributed under the
Apache License version 2.0 (APLv2). The APLv2 is compatible with the GPLv3
and LGPLv3 licenses and therefore this code may continue to be legally
included within GPLv3 and LGPLv3 projects.

For those who want to try the most recent changes, the SourceForge Git repository
is the one to use. The Sourceware CVS repository is synchronised much less often
and may be abandoned altogether.
All version 1 and 2 releases will remain LGPL but version 2.11 will be
released under v3 of that license so that any modifications to pthreads4w
version 3 code that we backport to v2 will not pollute that code.

Release 2.9.1 was probably the last to provide pre-built libraries. The supported
compilers are now all available free for personal use. The MSVS version should
build out of the box using nmake. The GCC versions now make use of GNU autoconf
to generate a configure script which in turn creates a custom config.h for the
environment you use: MinGW or MinGW64, etc.
Because this license compatibility is not reciprocal, future
modifications to pthreads4w will only be accepted to version 3 (or
later), i.e. the APLv2 code-base.

For those who want to try the most recent changes, the SourceForge Git
repository is the one to use. The Sourceware CVS repository is synchronised
much less often and may be abandoned altogether.

Release 2.9.1 was probably the last to provide pre-built libraries. The
supported compilers are now all available free for personal use. The MSVS
version should build out of the box using nmake. The GCC versions now make
use of GNU autoconf to generate a configure script which in turn creates a
custom config.h for the environment you use: MinGW or MinGW64, etc.


Acknowledgements
Expand Down Expand Up @@ -67,7 +74,7 @@ were extracted from it.
There is also a separate CONTRIBUTORS file. This file and others are
on the web site:

http://sourceware.org/pthreads-win32
https://sourceforge.net/p/pthreads4w/wiki/Contributors/

As much as possible, the ChangeLog file acknowledges contributions to the
code base in more detail.
Expand Down Expand Up @@ -304,13 +311,9 @@ The following functions are implemented:
PTHREAD_MUTEX_TIMED_NP)
pthread_num_processors_np
pthread_win32_getabstime_np
(The following four routines may be required when linking statically.
The process_* routines should not be needed for MSVC or GCC.)
(The following four routines should no longer be required.)
pthread_win32_process_attach_np
pthread_win32_process_detach_np
(The following routines should only be needed to manage implicit
POSIX handles i.e. when Win native threads call POSIX thread routines
(other than pthread_create))
pthread_win32_thread_attach_np
pthread_win32_thread_detach_np

Expand Down Expand Up @@ -408,89 +411,10 @@ The following functions are not implemented:
rand_r


Availability
------------

The prebuilt DLL, export libs (for both MSVC and Mingw32), and the header
files (pthread.h, semaphore.h, sched.h) are available along with the
complete source code.

The source code can be found at:

ftp://sources.redhat.com/pub/pthreads-win32

and as individual source code files at

ftp://sources.redhat.com/pub/pthreads-win32/source

The pre-built DLL, export libraries and include files can be found at:

ftp://sources.redhat.com/pub/pthreads-win32/dll-latest



Mailing List
------------

There is a mailing list for discussing pthreads on Win32. To join,
send email to:

[email protected]


Application Development Environments
------------------------------------

See the README file for more information.

MSVC:
MSVC using SEH works. Distribute pthreadVSE.dll with your application.
MSVC using C++ EH works. Distribute pthreadVCE.dll with your application.
MSVC using C setjmp/longjmp works. Distribute pthreadVC.dll with your application.


Mingw32:
See the FAQ, Questions 6 and 10.

Mingw using C++ EH works. Distribute pthreadGCE.dll with your application.
Mingw using C setjmp/longjmp works. Distribute pthreadGC.dll with your application.


Cygwin: (http://sourceware.cygnus.com/cygwin/)
Developers using Cygwin do not need pthreads-win32 since it has POSIX threads
support. Refer to its documentation for details and extent.


UWIN:
UWIN is a complete Unix-like environment for Windows from AT&T. Pthreads-win32
doesn't currently support UWIN (and vice versa), but that may change in the
future.

Generally:
For convenience, the following pre-built files are available on the FTP site
(see Availability above):

pthread.h - for POSIX threads
semaphore.h - for POSIX semaphores
sched.h - for POSIX scheduling
pthreadVCE.dll - built with MSVC++ compiler using C++ EH
pthreadVCE.lib
pthreadVC.dll - built with MSVC compiler using C setjmp/longjmp
pthreadVC.lib
pthreadVSE.dll - built with MSVC compiler using SEH
pthreadVSE.lib
pthreadGCE.dll - built with Mingw32 G++ 2.95.2-1
pthreadGC.dll - built with Mingw32 GCC 2.95.2-1 using setjmp/longjmp
libpthreadGCE.a - derived from pthreadGCE.dll
libpthreadGC.a - derived from pthreadGC.dll
gcc.dll - needed if distributing applications that use
pthreadGCE.dll (but see the FAQ Q 10 for the latest
related information)

These are the only files you need in order to build POSIX threads
applications for Win32 using either MSVC or Mingw32.

See the FAQ file in the source tree for additional information.


Documentation
Expand All @@ -512,15 +436,6 @@ available:
By Bradford Nichols, Dick Buttlar & Jacqueline Proulx Farrell
O'Reilly (pub)

On the web: see the links at the bottom of the pthreads-win32 site:

http://sources.redhat.com/pthreads-win32/

Currently, there is no documentation included in the package apart
from the copious comments in the source code.



Enjoy!

Ross Johnson
20 changes: 0 additions & 20 deletions BUGS
Original file line number Diff line number Diff line change
Expand Up @@ -119,23 +119,3 @@ Known bugs
in applications relying on cancellation/cleanup AND using optimisations for
creation of production code is highly unreliable for the current version of
the pthreads library.

3. The Borland Builder 5.5 version of the library produces memory read exceptions
in some tests.

4. pthread_barrier_wait() can deadlock if the number of potential calling
threads for a particular barrier is greater than the barrier count parameter
given to pthread_barrier_init() for that barrier.

This is due to the very lightweight implementation of pthread-win32 barriers.
To cope with more than "count" possible waiters, barriers must effectively
implement all the same safeguards as condition variables, making them much
"heavier" than at present.

The workaround is to ensure that no more than "count" threads attempt to wait
at the barrier.

5. Canceling a thread blocked on pthread_once appears not to work in the MSVC++
version of the library "pthreadVCE.dll". The test case "once3.c" hangs. I have no
clues on this at present. All other versions pass this test ok - pthreadsVC.dll,
pthreadsVSE.dll, pthreadsGC.dll and pthreadsGCE.dll.
8 changes: 8 additions & 0 deletions ChangeLog
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
2016-12-25 Ross Johnson <ross dot johnson at homemail dot com dot au>

* Change all license notices to the Apache License 2.0
* LICENCE: New Apache License file
* NOTICE: New file.
* COPYING: Removed.
* COPYING.GPL: Removed.

2016-12-20 Ross Johnson <ross dot johnson at homemail dot com dot au>

* implement.h (PThreadStateReuse): this thread state enum value
Expand Down
48 changes: 24 additions & 24 deletions GNUmakefile.in
Original file line number Diff line number Diff line change
@@ -1,30 +1,30 @@
# @configure_input@
# --------------------------------------------------------------------------
#
# Pthreads-win32 - POSIX Threads Library for Win32
# Copyright(C) 1998 John E. Bossom
# Copyright(C) 1999,2012 Pthreads-win32 contributors
#
# The current list of contributors is contained
# in the file CONTRIBUTORS included with the source
# code distribution. The list can also be seen at the
# following World Wide Web location:
# http://sources.redhat.com/pthreads-win32/contributors.html
#
# This 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 of the License, or (at your option) any later version.
#
# This 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 this library in the file COPYING.LIB;
# if not, write to the Free Software Foundation, Inc.,
# 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
* Pthreads4w - POSIX Threads for Windows
* Copyright 1998 John E. Bossom
* Copyright 1999-2016, Pthreads4w contributors
*
* Homepage: https://sourceforge.net/projects/pthreads4w/
*
* The current list of contributors is contained
* in the file CONTRIBUTORS included with the source
* code distribution. The list can also be seen at the
* following World Wide Web location:
*
* https://sourceforge.net/p/pthreads4w/wiki/Contributors/
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
#
PACKAGE = @PACKAGE_TARNAME@
VERSION = @PACKAGE_VERSION@
Expand Down
38 changes: 27 additions & 11 deletions NEWS
Original file line number Diff line number Diff line change
@@ -1,22 +1,38 @@
RELEASE 3.0.0
--------------
(2016-12-20)
(2017-01-01)

General
-------
Note that this is a new major release and consolidates the already very
stable version 2.10.0. The major version increment introduces two minor
ABI changes along with other naming changes that will require
recompilation of linking applications and possibly some textual changes
to compile-time macro references in configuration and source files, e.g.
PTW32_* to __PTW32_*, etc.
Note that this is a new major release. The major version increment
introduces two ABI changes along with other naming changes that will
require recompilation of linking applications and possibly some textual
changes to compile-time macro references in configuration and source
files, e.g. PTW32_* changes to __PTW32_*, ptw32_* to __ptw32_*, etc.

License Change
--------------
Pthreads4w version 3.0.0 is being released under the terms of the Apache
License v2.0. The APLv2 is compatible with the GPLv3 and LGPLv3 licenses
and therefore this code may continue to be legally included within GPLv3
and LGPLv3 projects.

Pthreads4w version 2 releases will remain LGPL but version 2.11 will be
released under v3 of that license so that any additions to pthreads4w
version 3 code that we backport to v2 will not pollute that code.

Because this license compatibility is not reciprocal, future
modifications to pthreads4w will only be accepted to version 3 (or
later), i.e. the APLv2 code-base.

Backporting and Support of Legacy Windows Releases
--------------------------------------------------
Some changes from 2011-02-26 onward may not be compatible with pre
Windows 2000 systems.

New bug fixes in all releases since 2.8.0 have NOT been applied to the
1.x.x series.

Some changes from 2011-02-26 onward may not be compatible with
pre Windows 2000 systems.

Testing and verification
------------------------
The MSVC, MinGW and MinGW64 builds have been tested on SMP architecture
Expand Down Expand Up @@ -494,7 +510,7 @@ General
The package now includes a reference documentation set consisting of
HTML formatted Unix-style manual pages that have been edited for
consistency with Pthreads-w32. The set can also be read online at:
http://sources.redhat.com/pthreads-win32/manual/index.html
https://sourceforge.net/projects/pthreads4w/manual/index.html

Thanks again to Tim Theisen for running the test suite pre-release
on an MP system.
Expand Down
2 changes: 1 addition & 1 deletion PROGRESS
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Please see the ANNOUNCE file "Level of Standards Conformance"
or the web page:

http://sources.redhat.com/pthreads-win32/conformance.html
https://sourceforge.net/projects/pthreads4w/conformance.html
Loading

0 comments on commit 40f2c56

Please sign in to comment.