guile-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Building guile on MSYS/MinGW - issue with pthread use


From: Gareth Edwards
Subject: Building guile on MSYS/MinGW - issue with pthread use
Date: Fri, 14 Aug 2009 13:14:36 +0100

Hi there,

I've run into a problem building guile using the MinGW toolchain under MSYS.

address@hidden /c/gareth/geda/deps/guile-1.8.7/libguile
$ gcc -DHAVE_CONFIG_H -I.. -I/usr/local/include -g -O2 -Wall -Wmissing-prototyp
es -Werror -MT libguile_la-threads.lo -MD -MP -MF .deps/libguile_la-threads.Tpo
 -c threads.c -DDLL_EXPORT -DPIC -o .libs/libguile_la-threads.o
threads.c: In function 'scm_timed_wait_condition_variable':
threads.c:1312: error: storage size of 'waittime' isn't known
cc1.exe: warnings being treated as errors
threads.c:1312: error: unused variable 'waittime'

I believe it's the same issue as mentioned here:

http://lists.gnu.org/archive/html/guile-devel/2008-07/msg00052.html

but it doesn't look like it was resolved at that point. Hopefully I
can explain what I think is going on. I think the fundamental issue is
that pthread.h and guile are using the same #define name.

pthread.h defines timespec like this:

#ifndef HAVE_STRUCT_TIMESPEC
#define HAVE_STRUCT_TIMESPEC 1
struct timespec {
        long tv_sec;
        long tv_nsec;
};
#endif /* HAVE_STRUCT_TIMESPEC */

So, presumably, configure tests for timespec, it doesn't have
HAVE_STRUCT_TIMESPEC set. Test passes, and then config.h then gets

/* Define this if your system defines struct timespec via either <time.h> or
   <pthread.h>. */
#define HAVE_STRUCT_TIMESPEC 1

But now, when config.h is included before pthread.h, this has the
effect of hiding this declaration in the pthread.h file, so the guile
build breaks.

Cheers
Gareth




reply via email to

[Prev in Thread] Current Thread [Next in Thread]