diff options
author | rpj <rpj> | 2000-08-11 05:49:39 +0000 |
---|---|---|
committer | rpj <rpj> | 2000-08-11 05:49:39 +0000 |
commit | eb45ddca732b7e919ec54e5c524fd1e128fc84a4 (patch) | |
tree | ecf9e04c1f57dd9a93e7a64236d11570d1aa6773 /README | |
parent | 9aa68dd9d05e3080f1963b3a2abaa595c532945e (diff) |
2000-08-10 Ross Johnson <rpj@special.ise.canberra.edu.au>snap-2000-08-10
* cleanup.c (pthread_pop_cleanup): Remove _pthread
prefix from __except and catch keywords; implement.h
now simply undefines _pthread__except and
_pthread_catch if defined; VC++ was not textually
substituting _pthread_catch etc back to catch as
it was redefined; the reason for using the prefixed
version was to make it clear that it was not using
the pthread.h redefined catch keyword.
* private.c (_pthread_threadStart): Ditto.
(_pthread_callUserDestroyRoutines): Ditto.
* implement.h (_pthread__except): Remove #define.
(_pthread_catch): Remove #define.
* GNUmakefile (pthread.a): New target to build
libpthread32.a from pthread.dll using dlltool.
* buildlib.bat: Duplicate cl commands with args to
build C++ EH version of pthread.dll; use of .bat
files is redundant now that nmake compatible
Makefile is included; used as a kludge only now.
* Makefile: Localise some macros and fix up the clean:
target to extend it and work properly.
* CONTRIBUTORS: Add contributors.
* ANNOUNCE: Updated.
* README: Updated.
tests/ChangeLog:
2000-08-10 Ross Johnson <rpj@special.ise.canberra.edu.au>
* eyal1.c (main): Change implicit cast to explicit
cast when passing "print_server" function pointer;
G++ no longer allows implicit func parameter casts.
* cleanup1.c: Remove unused "waitLock".
(main): Fix implicit parameter cast.
* cancel2.c (main): Fix implicit parameter cast.
* cancel4.c (main): Fix implicit parameter cast.
* cancel3.c (main): Fix implicit parameter cast.
* GNUmakefile: Renamed from Makefile; Add missing
cancel1 and cancel2 test targets.
* Makefile: Converted for use with MS nmake.
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>
+
|