diff options
Diffstat (limited to 'README')
| -rw-r--r-- | README | 227 | 
1 files changed, 143 insertions, 84 deletions
| @@ -1,84 +1,143 @@ -PTHREADS-WIN32 -============== - -Pthreads-win32 is free software, distributed under the GNU Library -General Public License (LGPL). See the file 'COPYING.LIB' for terms -and conditions. - -Mailing list ------------- - -There is a mailing list for discussing pthreads on Win32. To join, send email -to: - -	pthreads-win32-subscribe@sourceware.cygnus.com - - -Acknowledgements ----------------- - -Pthreads-win32 is based substantially on a Win32 Pthreads implementation -contributed by John E. Bossom <jebossom@cognos.com>. - -See the 'CONTRIBUTORS' file for the list of contributors. - - -Building under Mingw32 ----------------------- - -pthread.dll can be build with the current development version of mingw32. -Use the GNUmakefile with GNU make should do the right thing. - - -Why you cannot build the library with Cygwin yet ------------------------------------------------- - -The DLL pthread.dll still cannot be built using g++ due to non thread-safe -exception handling in g++.  Thanks to Kevin Ruland for researching this -one. See the FAQ Question 2 for more information. - -However, you can use the export library libpthread32.a built under -Mingw32 (not tested under Cygwin) together with the pthread.dll built -with MSVC. Thanks to Anders Norlander for pointing this out. - -For convenience, the following pre-built files can be downloaded from -the FTP site (see under "Availability" below): - -	pthread.h -	semaphore.h -	sched.h -	pthread.dll	- built with MSVC cl compiler -	pthread.lib	- built with MSVC cl compiler -	libpthread32.a	- built with Mingw32 (use with MSVC pthread.dll) - -With these files in the same directory as your application myapp.c, -you could compile, link and run myapp.c under Mingw32 as follows: - -	gcc -o myapp.exe myapp.c -I. -L. -lpthread32 -	myapp - -Or put pthread.dll in an appropriate directory in your PATH, -put libpthread32.a in MINGW_ROOT\i386-mingw32\lib, and -put pthread.h in MINGW_ROOT\i386-mingw32\include, then use: - -	gcc -o myapp.exe myapp.c -lpthread32 -	myapp - - -Availability ------------- - -The complete source code in either unbundled or tar/gzipped format -can be found at: -	ftp://sourceware.cygnus.com/pub/pthreads-win32 - -The pre-built DLL, export libraries and matching pthread.h can be found at: -	ftp://sourceware.cygnus.com/pub/pthreads-win32/dll-latest - -Home page: -	http://sourceware.cygnus.com/pthreads-win32/ - ----- -Ross Johnson -<rpj@ise.canberra.edu.au> - +PTHREADS-WIN32
 +==============
 +
 +Pthreads-win32 is free software, distributed under the GNU Library
 +General Public License (LGPL). See the file 'COPYING.LIB' for terms
 +and conditions.
 +
 +Mailing list
 +------------
 +
 +There is a mailing list for discussing pthreads on Win32. To join, send email
 +to:
 +
 +	pthreads-win32-subscribe@sources.redhat.com
 +
 +Unsubscribe by sending mail to:
 +
 +	pthreads-win32-unsubscribe@sources.redhat.com
 +
 +
 +Acknowledgements
 +----------------
 +
 +Pthreads-win32 is based substantially on a Win32 Pthreads implementation
 +contributed by John E. Bossom <jebossom@cognos.com>. Many others
 +have contributed important new code and bug fixes.
 +
 +See the 'CONTRIBUTORS' file for the list of contributors.
 +
 +
 +Known bugs in this snapshot
 +---------------------------
 +
 +1. Running the test "join1.c" with the library built with Mingw32
 +and the GNUmakefile included, the test fails with a segmentation (invalid
 +page access) exception. The fault appears to be in the assembler code
 +emmitted by the compiler [to handle exception contexts] at the
 +end of the try block in _pthread_threadStart().
 +
 +2. There are problems with using the libpthread32.a file derived
 +from the VC++ SEH version of pthread.dll. You may have to wait until
 +bug(1.) is fixed.
 +
 +3. I have not been able to build with VC++ using C++ EH. This is a
 +maintainer problem who doesn't know how to do it. Consequently
 +there may also be basic parser errors and warnings to be cleaned
 +up in the code.
 +
 +4. Due to what is believed to be C++ compliance error in VC++,
 +if your application contains catch(...) blocks in your POSIX threads
 +then you will need to replace the "catch(...)" with the macro
 +"PtW32Catch", eg.
 +
 +	#ifdef PtW32Catch
 +		PtW32Catch {
 +			...
 +		}
 +	#else
 +		catch(...) {
 +			...
 +		}
 +	#endif
 +
 +Otherwise neither pthreads cancelation nor pthread_exit() will work
 +reliably.
 +
 +
 +Building under Mingw32
 +----------------------
 +
 +pthread.dll can be built with the current development version of mingw32.
 +Run "make" in the soruce directory (uses GNUmakefile). This builds
 +pthread.dll and libpthread32.a.
 +
 +You can run the testsuite by changing to the "tests" directory and
 +running "make clean" and then "make". See the "Known bugs" section above.
 +
 +
 +Building under VC++ using SEH
 +-----------------------------
 +
 +From the source directory run "nmake". This builds pthread.dll and
 +pthread.lib.
 +
 +You can run the testsuite by changing to the "tests" directory and
 +running "nmake clean" and then "nmake".
 +
 +
 +Why you cannot build the library with Cygwin yet
 +------------------------------------------------
 +
 +The DLL pthread.dll still cannot be built using g++ due to non thread-safe
 +exception handling in g++.  Thanks to Kevin Ruland for researching this
 +one. See the FAQ Question 2 for more information.
 +
 +However, you can use the export library libpthread32.a built under
 +Mingw32 (not tested under Cygwin) together with the pthread.dll built
 +with MSVC. Thanks to Anders Norlander for pointing this out.
 +
 +For convenience, the following pre-built files can be downloaded from
 +the FTP site (see under "Availability" below):
 +
 +	pthread.h
 +	semaphore.h
 +	sched.h
 +	pthread.dll	- built with MSVC cl compiler
 +	pthread.lib	- built with MSVC cl compiler
 +	libpthread32.a	- built with Mingw32 (use with MSVC pthread.dll)
 +
 +With these files in the same directory as your application myapp.c,
 +you could compile, link and run myapp.c under Mingw32 as follows:
 +
 +	gcc -o myapp.exe myapp.c -I. -L. -lpthread32
 +	myapp
 +
 +Or put pthread.dll in an appropriate directory in your PATH,
 +put libpthread32.a in MINGW_ROOT\i386-mingw32\lib, and
 +put pthread.h in MINGW_ROOT\i386-mingw32\include, then use:
 +
 +	gcc -o myapp.exe myapp.c -lpthread32
 +	myapp
 +
 +
 +Availability
 +------------
 +
 +The complete source code in either unbundled, self-extracting
 +Zip file, or tar/gzipped format can be found at:
 +
 +	ftp://sources.redhat.com/pub/pthreads-win32
 +
 +The pre-built DLL, export libraries and matching pthread.h can be found at:
 +
 +	ftp://sources.redhat.com/pub/pthreads-win32/dll-latest
 +
 +Home page:
 +
 +	http://sources.redhat.com/pthreads-win32/
 +
 +----
 +Ross Johnson
 +<rpj@ise.canberra.edu.au>
 +
 | 
