From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 28243 invoked by alias); 10 May 2010 20:03:57 -0000 Received: (qmail 28233 invoked by uid 22791); 10 May 2010 20:03:56 -0000 X-SWARE-Spam-Status: No, hits=-1.2 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE X-Spam-Check-By: sourceware.org Received: from mail-vw0-f41.google.com (HELO mail-vw0-f41.google.com) (209.85.212.41) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 10 May 2010 20:03:52 +0000 Received: by vws7 with SMTP id 7so194458vws.0 for ; Mon, 10 May 2010 13:03:48 -0700 (PDT) MIME-Version: 1.0 Received: by 10.220.126.222 with SMTP id d30mr3793502vcs.78.1273521827959; Mon, 10 May 2010 13:03:47 -0700 (PDT) Received: by 10.220.64.195 with HTTP; Mon, 10 May 2010 13:03:47 -0700 (PDT) In-Reply-To: <20100510195037.GA7348@lambers.home> References: <20100510195037.GA7348@lambers.home> Date: Mon, 10 May 2010 20:03:00 -0000 Message-ID: Subject: Re: Pthreads-win32 and static linking From: Ramiro Polla To: Martin Lambers Cc: pthreads-win32@sourceware.org Content-Type: multipart/mixed; boundary=0016e68f9f1e2b56b1048642e83b 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/msg00006.txt.bz2 --0016e68f9f1e2b56b1048642e83b Content-Type: text/plain; charset=ISO-8859-1 Content-length: 1599 Hi, On Mon, May 10, 2010 at 4:50 PM, Martin Lambers wrote: > 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. > > 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. > > To avoid the pthread_win32_process_attach() function, pthreads-win32 > could check on each function call whether the library was initialized, > and if not, call pthread_win32_process_attach() itself. > > This would induce some overhead, but would allow us to use a large > number of existing libraries unchanged. > > Before we start to work on a patch, we would like to know if this > approach has a chance to work. Do you know any technical reasons why > this might fail? This has been discussed before. Search this list's archive. The solution I'm currently using is attached (to patch latest CVS). It removes the false wsock32 dependency, remove the need to define something before using the static lib (in mingw32) and hints the linker to automatically initialize the library. The library can be built/used by both MSVC and GCC. Ramiro Polla --0016e68f9f1e2b56b1048642e83b Content-Type: application/octet-stream; name="autostatic.diff" Content-Disposition: attachment; filename="autostatic.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g91pzvib0 Content-length: 8374 T25seSBpbiBwdGhyZWFkcy13aW4zMi0yMDA5MTAxOTogYXV0b3N0YXRpYy5j CmRpZmYgLXVyIHB0aHJlYWRzLXdpbjMyLTIwMDkxMDE5Lm9yaWcvR05VbWFr ZWZpbGUgcHRocmVhZHMtd2luMzItMjAwOTEwMTkvR05VbWFrZWZpbGUKLS0t IHB0aHJlYWRzLXdpbjMyLTIwMDkxMDE5Lm9yaWcvR05VbWFrZWZpbGUJMjAw OS0xMC0xOSAwODowNzozMi4wMDAwMDAwMDAgLTAyMDAKKysrIHB0aHJlYWRz LXdpbjMyLTIwMDkxMDE5L0dOVW1ha2VmaWxlCTIwMTAtMDItMDEgMTQ6NDU6 MjguNDcxNDMyMzM3IC0wMjAwCkBAIC02Myw3ICs2Myw2IEBACiBYT1BUCT0K IAogUkNGTEFHUwkJPSAtLWluY2x1ZGUtZGlyPS4KLUxGTEFHUwkJPSAtbHdz b2NrMzIKIAogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAjIFRoZSBs aWJyYXJ5IGNhbiBiZSBidWlsdCB3aXRoIHNvbWUgYWx0ZXJuYXRpdmUgYmVo YXZpb3VyIHRvCmRpZmYgLXVyIHB0aHJlYWRzLXdpbjMyLTIwMDkxMDE5Lm9y aWcvbmVlZF9lcnJuby5oIHB0aHJlYWRzLXdpbjMyLTIwMDkxMDE5L25lZWRf ZXJybm8uaAotLS0gcHRocmVhZHMtd2luMzItMjAwOTEwMTkub3JpZy9uZWVk X2Vycm5vLmgJMjAwOS0xMC0xOSAwODowNzozMi4wMDAwMDAwMDAgLTAyMDAK KysrIHB0aHJlYWRzLXdpbjMyLTIwMDkxMDE5L25lZWRfZXJybm8uaAkyMDEw LTAyLTAyIDE2OjUxOjEwLjgyOTMyNTAxMyAtMDIwMApAQCAtNjAsNyArNjAs NyBAQAogI2VuZGlmCiAKIC8qIGRlY2xhcmUgcmVmZXJlbmNlIHRvIGVycm5v ICovCi0jaWZuZGVmIFBUVzMyX1NUQVRJQ19MSUIKKyNpZiAhZGVmaW5lZChQ VFczMl9TVEFUSUNfTElCKSAmJiAhZGVmaW5lZChfX01JTkdXMzJfXykKICMg IGlmZGVmIFBUVzMyX0JVSUxECiAjICAgIGRlZmluZSBQVFczMl9ETExQT1JU IF9fZGVjbHNwZWMgKGRsbGV4cG9ydCkKICMgIGVsc2UKT25seSBpbiBwdGhy ZWFkcy13aW4zMi0yMDA5MTAxOTogbmVlZF9lcnJuby5ofgpkaWZmIC11ciBw dGhyZWFkcy13aW4zMi0yMDA5MTAxOS5vcmlnL3B0aHJlYWQuYyBwdGhyZWFk cy13aW4zMi0yMDA5MTAxOS9wdGhyZWFkLmMKLS0tIHB0aHJlYWRzLXdpbjMy LTIwMDkxMDE5Lm9yaWcvcHRocmVhZC5jCTIwMDktMTAtMTkgMDg6MDc6MzIu MDAwMDAwMDAwIC0wMjAwCisrKyBwdGhyZWFkcy13aW4zMi0yMDA5MTAxOS9w dGhyZWFkLmMJMjAxMC0wMi0wMSAxNDoyNjo0OC42MDE0ODc1NTYgLTAyMDAK QEAgLTQ5LDYgKzQ5LDcgQEAKICNpbmNsdWRlICJjb25kdmFyLmMiCiAjaW5j bHVkZSAiY3JlYXRlLmMiCiAjaW5jbHVkZSAiZGxsLmMiCisjaW5jbHVkZSAi YXV0b3N0YXRpYy5jIgogI2luY2x1ZGUgImVycm5vLmMiCiAjaW5jbHVkZSAi ZXhpdC5jIgogI2luY2x1ZGUgImZvcmsuYyIKZGlmZiAtdXIgcHRocmVhZHMt d2luMzItMjAwOTEwMTkub3JpZy9wdGhyZWFkX2dldHNwZWNpZmljLmMgcHRo cmVhZHMtd2luMzItMjAwOTEwMTkvcHRocmVhZF9nZXRzcGVjaWZpYy5jCi0t LSBwdGhyZWFkcy13aW4zMi0yMDA5MTAxOS5vcmlnL3B0aHJlYWRfZ2V0c3Bl Y2lmaWMuYwkyMDA5LTEwLTE5IDA4OjA3OjMyLjAwMDAwMDAwMCAtMDIwMAor KysgcHRocmVhZHMtd2luMzItMjAwOTEwMTkvcHRocmVhZF9nZXRzcGVjaWZp Yy5jCTIwMTAtMDItMDEgMTQ6Mjg6MzYuNjAzOTgxODU3IC0wMjAwCkBAIC03 MiwxMiArNzIsMTAgQEAKICAgZWxzZQogICAgIHsKICAgICAgIGludCBsYXN0 ZXJyb3IgPSBHZXRMYXN0RXJyb3IgKCk7Ci0gICAgICBpbnQgbGFzdFdTQWVy cm9yID0gV1NBR2V0TGFzdEVycm9yICgpOwogCiAgICAgICBwdHIgPSBUbHNH ZXRWYWx1ZSAoa2V5LT5rZXkpOwogCiAgICAgICBTZXRMYXN0RXJyb3IgKGxh c3RlcnJvcik7Ci0gICAgICBXU0FTZXRMYXN0RXJyb3IgKGxhc3RXU0FlcnJv cik7CiAgICAgfQogCiAgIHJldHVybiBwdHI7CmRpZmYgLXVyIHB0aHJlYWRz LXdpbjMyLTIwMDkxMDE5Lm9yaWcvcHRocmVhZC5oIHB0aHJlYWRzLXdpbjMy LTIwMDkxMDE5L3B0aHJlYWQuaAotLS0gcHRocmVhZHMtd2luMzItMjAwOTEw MTkub3JpZy9wdGhyZWFkLmgJMjAwOS0xMC0xOSAwODowNzozMi4wMDAwMDAw MDAgLTAyMDAKKysrIHB0aHJlYWRzLXdpbjMyLTIwMDkxMDE5L3B0aHJlYWQu aAkyMDEwLTAyLTAyIDE2OjUxOjA1LjA0NzkzMTkxNSAtMDIwMApAQCAtNTMz LDcgKzUzMyw3IEBACiAgKiBkbyBOT1QgZGVmaW5lIFBUVzMyX0JVSUxELCBh bmQgdGhlbiB0aGUgdmFyaWFibGVzL2Z1bmN0aW9ucyB3aWxsCiAgKiBiZSBp bXBvcnRlZCBjb3JyZWN0bHkuCiAgKi8KLSNpZm5kZWYgUFRXMzJfU1RBVElD X0xJQgorI2lmICFkZWZpbmVkKFBUVzMyX1NUQVRJQ19MSUIpICYmICFkZWZp bmVkKF9fTUlOR1czMl9fKQogIyAgaWZkZWYgUFRXMzJfQlVJTEQKICMgICAg ZGVmaW5lIFBUVzMyX0RMTFBPUlQgX19kZWNsc3BlYyAoZGxsZXhwb3J0KQog IyAgZWxzZQpPbmx5IGluIHB0aHJlYWRzLXdpbjMyLTIwMDkxMDE5OiBwdGhy ZWFkLmh+CmRpZmYgLXVyIHB0aHJlYWRzLXdpbjMyLTIwMDkxMDE5Lm9yaWcv c2NoZWQuaCBwdGhyZWFkcy13aW4zMi0yMDA5MTAxOS9zY2hlZC5oCi0tLSBw dGhyZWFkcy13aW4zMi0yMDA5MTAxOS5vcmlnL3NjaGVkLmgJMjAwOS0xMC0x OSAwODowNzozMi4wMDAwMDAwMDAgLTAyMDAKKysrIHB0aHJlYWRzLXdpbjMy LTIwMDkxMDE5L3NjaGVkLmgJMjAxMC0wMi0wMiAxNjo1MTowMC42NjU4ODc3 MjAgLTAyMDAKQEAgLTc2LDcgKzc2LDcgQEAKICAqIGRvIE5PVCBkZWZpbmUg UFRXMzJfQlVJTEQsIGFuZCB0aGVuIHRoZSB2YXJpYWJsZXMvZnVuY3Rpb25z IHdpbGwKICAqIGJlIGltcG9ydGVkIGNvcnJlY3RseS4KICAqLwotI2lmbmRl ZiBQVFczMl9TVEFUSUNfTElCCisjaWYgIWRlZmluZWQoUFRXMzJfU1RBVElD X0xJQikgJiYgIWRlZmluZWQoX19NSU5HVzMyX18pCiAjICBpZmRlZiBQVFcz Ml9CVUlMRAogIyAgICBkZWZpbmUgUFRXMzJfRExMUE9SVCBfX2RlY2xzcGVj IChkbGxleHBvcnQpCiAjICBlbHNlCk9ubHkgaW4gcHRocmVhZHMtd2luMzIt MjAwOTEwMTk6IHNjaGVkLmh+CmRpZmYgLXVyIHB0aHJlYWRzLXdpbjMyLTIw MDkxMDE5Lm9yaWcvc2VtYXBob3JlLmggcHRocmVhZHMtd2luMzItMjAwOTEw MTkvc2VtYXBob3JlLmgKLS0tIHB0aHJlYWRzLXdpbjMyLTIwMDkxMDE5Lm9y aWcvc2VtYXBob3JlLmgJMjAwOS0xMC0xOSAwODowNzozMi4wMDAwMDAwMDAg LTAyMDAKKysrIHB0aHJlYWRzLXdpbjMyLTIwMDkxMDE5L3NlbWFwaG9yZS5o CTIwMTAtMDItMDIgMTY6NTA6NDUuOTE2NTc2OTE2IC0wMjAwCkBAIC03NSw3 ICs3NSw3IEBACiAgKiBkbyBOT1QgZGVmaW5lIFBUVzMyX0JVSUxELCBhbmQg dGhlbiB0aGUgdmFyaWFibGVzL2Z1bmN0aW9ucyB3aWxsCiAgKiBiZSBpbXBv cnRlZCBjb3JyZWN0bHkuCiAgKi8KLSNpZm5kZWYgUFRXMzJfU1RBVElDX0xJ QgorI2lmICFkZWZpbmVkKFBUVzMyX1NUQVRJQ19MSUIpICYmICFkZWZpbmVk KF9fTUlOR1czMl9fKQogIyAgaWZkZWYgUFRXMzJfQlVJTEQKICMgICAgZGVm aW5lIFBUVzMyX0RMTFBPUlQgX19kZWNsc3BlYyAoZGxsZXhwb3J0KQogIyAg ZWxzZQpPbmx5IGluIHB0aHJlYWRzLXdpbjMyLTIwMDkxMDE5OiBzZW1hcGhv cmUuaH4KLS0tIC9kZXYvbnVsbAkyMDEwLTAxLTI5IDEyOjU3OjM3LjY3NzA3 MjI3MiAtMDIwMAorKysgcHRocmVhZHMtd2luMzItMjAwOTEwMTkvYXV0b3N0 YXRpYy5jCTIwMTAtMDItMDEgMTQ6MjY6NDguNjAxNDg3NTU2IC0wMjAwCkBA IC0wLDAgKzEsNjcgQEAKKy8qCisgKiBhdXRvc3RhdGljLmMKKyAqCisgKiBE ZXNjcmlwdGlvbjoKKyAqIFRoaXMgdHJhbnNsYXRpb24gdW5pdCBpbXBsZW1l bnRzIHN0YXRpYyBsaWJyYXJ5IGluaXRpYWxpc2F0aW9uLgorICoKKyAqIC0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKgorICogICAgICBQdGhy ZWFkcy13aW4zMiAtIFBPU0lYIFRocmVhZHMgTGlicmFyeSBmb3IgV2luMzIK KyAqICAgICAgQ29weXJpZ2h0KEMpIDE5OTggSm9obiBFLiBCb3Nzb20KKyAq ICAgICAgQ29weXJpZ2h0KEMpIDE5OTksMjAwNSBQdGhyZWFkcy13aW4zMiBj b250cmlidXRvcnMKKyAqIAorICogICAgICBDb250YWN0IEVtYWlsOiBycGpA Y2FsbGlzdG8uY2FuYmVycmEuZWR1LmF1CisgKiAKKyAqICAgICAgVGhlIGN1 cnJlbnQgbGlzdCBvZiBjb250cmlidXRvcnMgaXMgY29udGFpbmVkCisgKiAg ICAgIGluIHRoZSBmaWxlIENPTlRSSUJVVE9SUyBpbmNsdWRlZCB3aXRoIHRo ZSBzb3VyY2UKKyAqICAgICAgY29kZSBkaXN0cmlidXRpb24uIFRoZSBsaXN0 IGNhbiBhbHNvIGJlIHNlZW4gYXQgdGhlCisgKiAgICAgIGZvbGxvd2luZyBX b3JsZCBXaWRlIFdlYiBsb2NhdGlvbjoKKyAqICAgICAgaHR0cDovL3NvdXJj ZXMucmVkaGF0LmNvbS9wdGhyZWFkcy13aW4zMi9jb250cmlidXRvcnMuaHRt bAorICogCisgKiAgICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqICAgICAgbW9k aWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExlc3NlciBHZW5l cmFsIFB1YmxpYworICogICAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0 aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqICAgICAg dmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24p IGFueSBsYXRlciB2ZXJzaW9uLgorICogCisgKiAgICAgIFRoaXMgbGlicmFy eSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg dXNlZnVsLAorICogICAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogICAgICBN RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV UlBPU0UuICBTZWUgdGhlIEdOVQorICogICAgICBMZXNzZXIgR2VuZXJhbCBQ dWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICogCisgKiAgICAg IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBM ZXNzZXIgR2VuZXJhbCBQdWJsaWMKKyAqICAgICAgTGljZW5zZSBhbG9uZyB3 aXRoIHRoaXMgbGlicmFyeSBpbiB0aGUgZmlsZSBDT1BZSU5HLkxJQjsKKyAq ICAgICAgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu ZGF0aW9uLCBJbmMuLAorICogICAgICA1OSBUZW1wbGUgUGxhY2UgLSBTdWl0 ZSAzMzAsIEJvc3RvbiwgTUEgMDIxMTEtMTMwNywgVVNBCisgKi8KKworI2lm ZGVmIFBUVzMyX1NUQVRJQ19MSUIKKworI2luY2x1ZGUgInB0aHJlYWQuaCIK KyNpbmNsdWRlICJpbXBsZW1lbnQuaCIKKworc3RhdGljIHZvaWQgb25fcHJv Y2Vzc19pbml0KHZvaWQpCit7CisgICAgcHRocmVhZF93aW4zMl9wcm9jZXNz X2F0dGFjaF9ucCAoKTsKK30KKworc3RhdGljIHZvaWQgb25fcHJvY2Vzc19l eGl0KHZvaWQpCit7CisgICAgcHRocmVhZF93aW4zMl90aHJlYWRfZGV0YWNo X25wICAoKTsKKyAgICBwdGhyZWFkX3dpbjMyX3Byb2Nlc3NfZGV0YWNoX25w ICgpOworfQorCisjaWZkZWYgX19NSU5HVzMyX18KKyMgICAgZGVmaW5lIGF0 dHJpYnV0ZV9zZWN0aW9uKGEpIF9fYXR0cmlidXRlX18oKHNlY3Rpb24oYSkp KQorI2VsaWYgZGVmaW5lZChfTVNDX1ZFUikKKyMgICAgZGVmaW5lIGF0dHJp YnV0ZV9zZWN0aW9uKGEpIF9fcHJhZ21hKHNlY3Rpb24oYSxsb25nLHJlYWQp KTsgX19kZWNsc3BlYyhhbGxvY2F0ZShhKSkKKyNlbHNlCisjZXJyb3IgY29t cGlsZXIgbm90IHN1cHBvcnRlZCEKKyNlbmRpZgorCithdHRyaWJ1dGVfc2Vj dGlvbigiLkNSVCRYQ1UiKSB2b2lkICptc2NfY3RvciA9IG9uX3Byb2Nlc3Nf aW5pdDsKK2F0dHJpYnV0ZV9zZWN0aW9uKCIuQ1JUJFhQVSIpIHZvaWQgKm1z Y19kdG9yID0gb25fcHJvY2Vzc19leGl0OworCithdHRyaWJ1dGVfc2VjdGlv bigiLmN0b3JzIiAgKSB2b2lkICpnY2NfY3RvciA9IG9uX3Byb2Nlc3NfaW5p dDsKK2F0dHJpYnV0ZV9zZWN0aW9uKCIuZHRvcnMiICApIHZvaWQgKmdjY19k dG9yID0gb25fcHJvY2Vzc19leGl0OworCisjZW5kaWYgLyogUFRXMzJfU1RB VElDX0xJQiAqLwo= --0016e68f9f1e2b56b1048642e83b--