From cbee5075d69cb057c4af4c5e24319da90367897f Mon Sep 17 00:00:00 2001 From: Neil Jerram Date: Fri, 23 Jan 2009 01:02:46 +0000 Subject: [PATCH] Fix MinGW HAVE_STRUCT_TIMESPEC build problem Reported by Carlo Bramini. See the comment in _scm.h. * THANKS: Add Carlo Bramini. * libguile/_scm.h: Undefine HAVE_STRUCT_TIMESPEC. --- NEWS | 1 + THANKS | 1 + libguile/_scm.h | 19 +++++++++++++++++++ 3 files changed, 21 insertions(+) diff --git a/NEWS b/NEWS index 8471a500b..9a160301c 100644 --- a/NEWS +++ b/NEWS @@ -46,6 +46,7 @@ Changes in 1.8.7 (since 1.8.6) * Bugs fixed ** Fix %fast-slot-ref/set!, to avoid possible segmentation fault +** Fix MinGW build problem caused by HAVE_STRUCT_TIMESPEC confusion Changes in 1.8.6 (since 1.8.5) diff --git a/THANKS b/THANKS index 3b3b91443..48bdd0e2f 100644 --- a/THANKS +++ b/THANKS @@ -23,6 +23,7 @@ For fixes or providing information which led to a fix: David Allouche Martin Baulig Fabrice Bauzac + Carlo Bramini Rob Browning Adrian Bunk Michael Carmack diff --git a/libguile/_scm.h b/libguile/_scm.h index 6b728be2b..e40f29bb0 100644 --- a/libguile/_scm.h +++ b/libguile/_scm.h @@ -38,6 +38,25 @@ # include #endif +/* Undefine HAVE_STRUCT_TIMESPEC, because the libguile C code doesn't + need it anymore, and because on MinGW: + + - the definition of struct timespec is provided (if at all) by + pthread.h + + - pthread.h will _not_ define struct timespec if + HAVE_STRUCT_TIMESPEC is 1, because then it thinks that it doesn't + need to. + + The libguile C code doesn't need HAVE_STRUCT_TIMESPEC anymore, + because the value of HAVE_STRUCT_TIMESPEC has already been + incorporated in how scm_t_timespec is defined (in scmconfig.h), and + the rest of the libguile C code now just uses scm_t_timespec. + */ +#ifdef HAVE_STRUCT_TIMESPEC +#undef HAVE_STRUCT_TIMESPEC +#endif + #include #include "libguile/__scm.h"