delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2012/09/04/16:50:59

X-Recipient: archive-cygwin AT delorie DOT com
X-SWARE-Spam-Status: No, hits=-6.3 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,KHOP_PGP_SIGNED,KHOP_RCVD_TRUST,KHOP_THREADED,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE
X-Spam-Check-By: sourceware.org
Message-ID: <50466981.70005@gmail.com>
Date: Tue, 04 Sep 2012 22:50:09 +0200
From: =?UTF-8?B?VsOhY2xhdiBaZW1hbg==?= <vhaisman AT gmail DOT com>
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:15.0) Gecko/20120827 Thunderbird/15.0
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: Re: limitations of TLS using GCC's __thread keyword and Cygwin
References: <CAKw7uVgy4qgeqVMk1dRPb=Lr-so5NP3e6XjER=ZGqd+B+MT3ZQ AT mail DOT gmail DOT com> <504612A3 DOT 6070605 AT cs DOT utoronto DOT ca>
In-Reply-To: <504612A3.6070605@cs.utoronto.ca>
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com

--------------enig5280426DEE9547638B78FDDF
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

On 09/04/2012 04:39 PM, Ryan Johnson wrote:
> On 04/09/2012 8:58 AM, V=C3=A1clav Zeman wrote:
>> Hi.
>>
>> I am am porting a library that can use the __thread keyword in its
>> internals to provide thread local storage. Now, with MSVC there is a
>> limitation on pre-Vista Windows (see [1]) that DLLs using
>> __declspec(thread) (MSVC equivalent of GCC's __thread) cannot be
>> loaded using LoadLibrary() because pre-Vista Windows allocate the TLS
>> declared that way only on process startup. Vista and later Windows do
>> not seem to have the limitation. Since Cygwin officially still
>> supports at least Windows XP, I want to provide a library that works
>> there as well.
>>
>> Does Cygwin's GCC and its TLS emulation work around this problem? IOW,
>> are Cygwin DLLs using TLS declared using __thread keyword safe to be
>> loaded using LoadLibrary()/dlopen() or are they not safe to be loaded
>> that way?
>>
>> [1] http://msdn.microsoft.com/en-us/library/2s9wt68x.aspx
>>
> I suspect it's not a problem, but if I were you I'd write a simple
> test program to see. Unfortunately, TLS in general seems broken on my
> machine when I tried it, but that might be due to my home-brew gcc
> being configured wrong or something.
I would have done that already but I do not have any Windows XP machine
to try this on.

--=20
VZ



--------------enig5280426DEE9547638B78FDDF
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="signature.asc"

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.17 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://www.enigmail.net/

iF4EAREIAAYFAlBGaYkACgkQ6OWUyaYNY6PeqwEAk/hOvLLEphVPsdM18elmPoVk
Cqv8EI2bVSUgny7OxEoA/jEhYPOJo8oGYfBEGazBZzzgCP9CAwgOE7HgYLnOt/Z4
=jpQw
-----END PGP SIGNATURE-----

--------------enig5280426DEE9547638B78FDDF--

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019