Hi Carlo, Thanks for your email...
2008/7/18 carlo.bramix <[EMAIL PROTECTED]>: > Hello, > I got the sources of libguile-1.8.5 and I tried to compile them under > mingw+msys. > The compilation failed because of this error: > > ../../guile-1.8.5/libguile/threads.c: In function > `scm_timed_wait_condition_variable': > ../../guile-1.8.5/libguile/threads.c:1277: error: storage size of 'waittime' > isn't known > ../../guile-1.8.5/libguile/threads.c:1277: warning: unused variable `waittime' > make[3]: *** [libguile_la-threads.lo] Error 1 > > After a quick test I discovered what has happened. > The configure script tries to check the presence of timespec structure under > pthread include files. > If the script founds the structure, it defines HAVE_STRUCT_TIMESPEC into > config.h. So you are saying here that configure DOES find the timespec struct, correct? > But this define is a disaster for the pthread-win32, because pthread.h checks > HAVE_STRUCT_TIMESPEC too for not defining timespec structure twice. > The result is that the structure is never defined because of the above macro > and the compilation fails with that error. > > I think it is a bad idea to do the test on timespec structure in that manner, > at least for mingw. > The timespec structure does not exist under Win32. Now I'm confused. If it does not exist, how did configure find it? > This is the point we are all sure about. > So you should not do assumptions about the content of pthread.h That (i.e. not to make assumptions) is exactly the purpose of configure. If possible, it is nicer to have a feature-based test that works on all platforms, than OS-specific checks (#ifdef WIN32 ...). Regards, Neil