[Mesa-dev] [PATCH] configure.ac: Do not use Pthreads with MinGW.

Emil Velikov emil.l.velikov at gmail.com
Wed Jun 4 10:57:56 PDT 2014


On 04/06/14 12:50, Jon TURNEY wrote:
> On 04/06/2014 01:06, Vinson Lee wrote:
>> Match the behavior of the SCons MinGW build.
>>
>> This patch also fixes these build errors.
>>
>>    CC       glapi_entrypoint.lo
>> glapi_entrypoint.c: In function 'init_glapi_relocs_once':
>> glapi_entrypoint.c:341:4: error: unknown type name 'pthread_once_t'
>>      static pthread_once_t once_control = PTHREAD_ONCE_INIT;
>>      ^
>> glapi_entrypoint.c:341:41: error: 'PTHREAD_ONCE_INIT' undeclared (first use
>> in this function)
>>      static pthread_once_t once_control = PTHREAD_ONCE_INIT;
>>                                           ^
>> glapi_entrypoint.c:341:41: note: each undeclared identifier is reported only
>> once for each function it appears in
>> glapi_entrypoint.c:342:4: error: implicit declaration of function
>> 'pthread_once' [-Werror=implicit-function-declaration]
>>      pthread_once( & once_control, init_glapi_relocs );
>>      ^
>>
>> Signed-off-by: Vinson Lee <vlee at freedesktop.org>
>> ---
>>   configure.ac | 7 ++++++-
>>   1 file changed, 6 insertions(+), 1 deletion(-)
>>
>> diff --git a/configure.ac b/configure.ac
>> index 9c64400..ab3b91d 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -552,7 +552,12 @@ dnl See if posix_memalign is available
>>   AC_CHECK_FUNC([posix_memalign], [DEFINES="$DEFINES -DHAVE_POSIX_MEMALIGN"])
>>
>>   dnl Check for pthreads
>> -AX_PTHREAD
>> +case "$host_os" in
>> +mingw*)
>> +    ;;
>> +*)
>> +    AX_PTHREAD
>> +esac
>>   dnl AX_PTHREADS leaves PTHREAD_LIBS empty for gcc and sets PTHREAD_CFLAGS
>>   dnl to -pthread, which causes problems if we need -lpthread to appear in
>>   dnl pkgconfig files.
> 
> I'm not sure this is right.
> 
> Current versions of both the pthreads libraries for MinGW/MinGW64
> (pthreads-win32, winpthreads) seem to have pthread_once()
> 
Indeed same here. My assumption is that mingw*gcc is built with
--enable-threads=win32, which essentially drops any support for pthreads.

> I guess maybe the actual issue is that there is some path here where pthread.h
> isn't included?
> 
If the compiler is pthreads aware, then we're missing a header inclusion.
Otherwise we'll need to take a look why our configure.ac is defining
HAVE_PTHREAD. AX_PTHREAD bug perhaps ?

-Emil

> _______________________________________________
> mesa-dev mailing list
> mesa-dev at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/mesa-dev



More information about the mesa-dev mailing list