On Tue, Jan 17, 2012 at 2:22 PM, Kai Tietz <ktiet...@googlemail.com> wrote:
> 2012/1/17 Ozkan Sezer <seze...@gmail.com>:
>> On Tue, Jan 17, 2012 at 1:24 PM, niXman <i.nix...@gmail.com> wrote:
>>> 2012/1/17 Ozkan Sezer <seze...@gmail.com>:
>>>> On Tue, Jan 17, 2012 at 12:49 PM, niXman <i.nix...@gmail.com> wrote:
>>>>> Hi Ozkan.
>>>>>
>>>>> I checked out your patch. But the problem remained. clock_ * functions
>>>>> are not exported.
>>>>> I attach a patch. Check it out please.
>>>>>
>>>>> niXman.
>>>>
>>>> Note that wihpthreads is at rev.4718 in the svn: make sure that you
>>>> are using the latest.  With rev. 4718, I compiled for both x86 and
>>>> for x86_64, I always saw the clock* functions in the dll.
>>> Yes, this revision and I'm using. Downloaded an hour ago.
>>>
>>>
>>>>
>>>> Not making a comment on your patch for the moment, (other, please
>>>> take a look at it if you can), however, I do wonder how the preprocessed
>>>> sources (-save-temps) look like when you are compiling winpthreads:
>>>> can you please provide that information?
>>> Attached.
>>>
>>
>> OK, this is because of the oh-so-wonderful-and-so-great idea
>> of including pthread_time.h from within time.h, and you obviously
>> have pthread_time.h among the system headers.
>>
>> Does the attached patch help?
>>
>> Kai, Jon:  OK to apply?
>>
>> --- time.h~
>> +++ time.h
>> @@ -279,8 +279,9 @@
>>  /* POSIX 2008 says clock_gettime and timespec are defined in time.h header,
>>    but other systems - like Linux, Solaris, etc - tend to declare such
>>    recent extensions only if the following guards are met.  */
>> -#if (!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX)) || \
>> -       (_POSIX_C_SOURCE > 2) || defined(__EXTENSIONS__)
>> +#if !defined(IN_WINPTHREAD) && \
>> +       ((!defined(_STRICT_STDC) && !defined(__XOPEN_OR_POSIX)) || \
>> +        (_POSIX_C_SOURCE > 2) || defined(__EXTENSIONS__))
>>  #include <pthread_time.h>
>>  #endif
>>
>> --
>> O.S.
>
> Ah, that's the cause. Grr, yes patch is ok.

Applied to v2.x at rev. 4740, to trunk at rev. 4741.

>   But maybe we should use
> here for winpthread instead absolute includes (via #include
> "../include/...") to avoid that system-header is choosen.
>

No, the issue is not about picking the wrong header, it is
about the include order: time.h gets included before pthread.h
therefore the declspec directives weren't defined correctly for
the clock functions.

> Kai
>

--
O.S.

------------------------------------------------------------------------------
Keep Your Developer Skills Current with LearnDevNow!
The most comprehensive online learning library for Microsoft developers
is just $99.99! Visual Studio, SharePoint, SQL - plus HTML5, CSS3, MVC3,
Metro Style Apps, more. Free future releases when you subscribe now!
http://p.sf.net/sfu/learndevnow-d2d
_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to