From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7986 invoked by alias); 23 Jul 2010 12:09:45 -0000 Received: (qmail 7958 invoked by uid 22791); 23 Jul 2010 12:09:44 -0000 X-SWARE-Spam-Status: No, hits=1.2 required=5.0 tests=AWL,BAYES_50,MIME_QP_LONG_LINE,RCVD_IN_SORBS_WEB X-Spam-Check-By: sourceware.org Received: from s194.n227.n6.n64.static.myhostcenter.com (HELO pioneerwireless.ca) (64.6.227.194) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 23 Jul 2010 12:09:39 +0000 Received: (qmail 18654 invoked by uid 48); 23 Jul 2010 08:09:37 -0400 Received: from 24.139.16.66 ([24.139.16.66]) by webmail.pioneerwireless.ca (Horde MIME library) with HTTP; Fri, 23 Jul 2010 08:09:37 -0400 Message-ID: <20100723080937.k3ycykl49sk0ow4w@webmail.pioneerwireless.ca> Date: Fri, 23 Jul 2010 12:09:00 -0000 From: "John E. Bossom" To: Ross Johnson Cc: Martin Lambers , pthreads-win32@sourceware.org Subject: Re: Pthreads-win32 and static linking References: <20100510195037.GA7348@lambers.home> <4C1DA3D3.5050102@homemail.com.au> In-Reply-To: <4C1DA3D3.5050102@homemail.com.au> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; DelSp="Yes"; format="flowed" Content-Disposition: inline Content-Transfer-Encoding: quoted-printable User-Agent: Internet Messaging Program (IMP) H3 (4.1.6) X-IsSubscribed: yes Mailing-List: contact pthreads-win32-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: pthreads-win32-owner@sourceware.org X-SW-Source: 2010/txt/msg00011.txt.bz2 Thanks, Ross... The original intent when I first wrote the original library was to have the pthreads-win32 library be usable for those that also wrote IIS plugin/dlls ... i.e. Windows creates the thread of execution prior to calling your own plugin... I wanted to seamlessly plug-into the already created thread. (Yes... I'm still lurking around ;^) John E. Bossom Quoting Ross Johnson : > Martin Lambers wrote: >> Hello! >> >> The Mingw-cross-env project provides a MinGW cross-compiling environment >> for POSIX systems. For various reasons, all included libraries are >> static, including the pthreads-win32 library. >> >> This means that all pthreads users need to call >> pthread_win32_thread_attach_np() and pthread_win32_thread_detach_np() in >> each thread function. >> > Only Windows native threads that call POSIX threads routines. See note be= low. >> We would like to avoid patching all libraries that use pthread, and >> instead change pthreads-win32: instead of using a thread main function >> given to pthread_create() directly, pthreads-win32 could use an internal >> wrapper that calls the thread main function and also calls the >> attach/detach functions if necessary. >> > Hi Martin, > > Apologies for the slow response. > > Please try the current pthreads-win32 CVS repository head version. > Anonymous CVS access instructions are on our web page at > http://sourceware.org/pthreads-win32 > I've applied most of Ramiro Polla's patches and tested the MinGW32 GCC > static build across the full test suite. The patches that I've omitted > are just conditional compiler directives that broke the DLL build and > did not appear to affect the static build. I've emailed Ramiro > privately for comment. > > Everyone may like to note: > It is not necessary to call pthread_win32_thread_*_np() for any threads > created through pthread_create(). That is only necessary for Windows > native threads that call POSIX API routines in order to interact with > POSIX threads and only when statically linked (often only the primary > Windows thread). That is, pthread_create() already effectively does > what Martin has suggested. I've updated the README.NONPORTABLE file to > hopefully make that clearer. > > So with Ramiro's patches most applications should now run unmodified > when statically linked. > > This otherwise transparent ability for Windows and POSIX threads to > freely interact (via either API) is an aspect of John Bossom's original > code that has been deliberately retained throughout the evolution of > the library. > > Regards. > Ross