README.Borland
上传用户:zhenyu
上传日期:2022-04-24
资源大小:268k
文件大小:3k
- In ptw32_InterlockedCompareExchange.c, I've added a section for
- Borland's compiler; it's identical to that for the MS compiler except
- that it uses /* ... */ comments instead of ; comments.
- [RPJ: need to define HAVE_TASM32 in config.h to use the above.]
- The other file is a makefile suitable for use with Borland's compiler
- (run "make -fBmakefile" in the directory). It builds a single version
- of the library, pthreadBC.dll and the corresponding pthreadBC.lib
- import library, which is comparable to the pthreadVC version; I can't
- personally see any demand for the versions that include structured or
- C++ exception cancellation handling so I haven't attempted to build
- those versions of the library. (I imagine a static version might be
- of use to some, but we can't legally use that on my commercial
- projects so I can't try that out, unfortunately.)
- [RPJ: Added testsBmakefile as well.]
- Borland C++ doesn't define the ENOSYS constant used by pthreads-win32;
- rather than make more extensive patches to the pthreads-win32 source I
- have a mostly-arbitrary constant for it in the makefile. However this
- doesn't make it visible to the application using the library, so if
- anyone actually wants to use this constant in their apps (why?)
- someone might like to make a seperate NEED_BCC_something define to add
- this stuff.
- The makefile also #defines EDEADLK as EDEADLOCK, _timeb as timeb, and
- _ftime as ftime, to deal with the minor differences between the two
- RTLs' naming conventions, and sets the compiler flags as required to
- get a normal compile of the library.
- [RPJ: Moved errno values and _timeb etc to pthread.h, so apps will also
- use them.]
- (While I'm on the subject, the reason Borland users should recompile
- the library, rather than using the impdef/implib technique suggested
- previously on the mailing list, is that a) the errno constants are
- different, so the results returned by the pthread_* functions can be
- meaningless, and b) the errno variable/pseudo-variable itself is
- different in the MS & BCC runtimes, so you can't access the
- pthreadVC's errno from a Borland C++-compiled host application
- correctly - I imagine there are other potential problems from the RTL
- mismatch too.)
- [RPJ: Make sure you use the same RTL in both dll and application builds.
- The dll and tests Bmakefiles use cw32mti.lib. Having some trouble with
- memory read exceptions running the test suite using BCC55.]
- Best regards,
- Will
- --
- Will Bryant
- Systems Architect, eCOSM Limited
- Cell +64 21 655 443, office +64 3 365 4176
- http://www.ecosm.com/