public inbox for pthreads-win32@sourceware.org
 help / color / mirror / Atom feed
From: Ross Johnson <Ross.Johnson@homemail.com.au>
To: Marc Peter <macpete@gmx.de>
Cc: pthreads-win32@sourceware.org
Subject: Re: OpenWatcom 1.6 passes tests with DLL build
Date: Thu, 31 May 2007 07:23:00 -0000	[thread overview]
Message-ID: <465C1E4D.4000906@homemail.com.au> (raw)
In-Reply-To: <465B34FA.2010902@gmx.de>

Hi Marc,

This is good news.

Sending a small patch via the list is fine I think and if in doubt you 
can send direct to me. I'll endeavour to get it into the next release, 
which is long overdue. Could you please include your Wmakefile - I'm 
sure I had one at some point but I can't find it here anywhere.

Regards.
Ross

Marc Peter wrote:
> Hi,
>
> I've managed to build a DLL version of the library with Open Watcom 1.6
> which passes all tests after only slight modifications to the source.
>
> I used the CVS sources.
>
> Here is a short summary of the changes I made:
> - use the -br compiler switch for both the library and the tests
>     This is necessary so both, library and application, use the same
>     run-time library instance. This fixes the errno problem mentioned
>     in README.Watcom.[1]
> - enable inclusion of <stdint.h>
>     Open Watcom has int64_t in this header.
> - define PTW32_CDECL to be empty
>     This prevents compilation errors in tests, where calling conventions
>     for callbacks don't match. This could also have been fixed by using
>     proxy functions for the callbacks in the tests, but I went for the
>     quick fix.[2]
> - use #pragma aux syntax for inline assembly
>     This is more efficient then _asm { ... } syntax and doesn't require
>     to disable any compiler warnings.
> - fix Wamekefile in the "tests" directory
>     Some extensions in the PASSES variable were missing.
>
> The patch is 225 lines long, my experimental make file has another 22
> lines. If it is okay with the policy of this list, I can attach them in
> another message.
>
> Note:
>   The "Wmakefile" mentioned in README.Watcom was nowhere to be found.
>
> I have not performed any regression tests with other compilers, but I
> don't expect any incompatibilities.
>
>
> best regards
> Marc
>
>
> [1] As soon as a thread is started, the CRT must behave slightly
>     different, for instance lock concurrently used resources such as
>     the heap during malloc/free calls. This is the reason why new
>     threads must be created with a CRT function like _beginthread(ex),
>     and not by calling the Win32 API directly.
>
> [2] __cdecl was only chosen so a DLL created with Open Watcom can be
>     used with different compilers. But mixing runtime libraries of
>     different compilers is another step further towards "interesting"
>     behavior than using two instances of the same CRT - see errno
>     problem. So, if we restrict the DLL to be only used with Watcom
>     generated applications, we can safely use register based calling.
>
>
>   

      reply	other threads:[~2007-05-29 12:36 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-29 12:36 Marc Peter
2007-05-31  7:23 ` Ross Johnson [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=465C1E4D.4000906@homemail.com.au \
    --to=ross.johnson@homemail.com.au \
    --cc=macpete@gmx.de \
    --cc=pthreads-win32@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).