[Top][All Lists]
[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
- Building guile on MSYS/MinGW - issue with pthread use,
Gareth Edwards <=