From a16dd4797af3b0c6874cd085f20ce753173b80ae Mon Sep 17 00:00:00 2001 From: Nate Bargmann Date: Wed, 24 Apr 2013 21:58:50 -0500 Subject: [PATCH] gr_pwin32.m4: Replace inline sleep() function Building libltdl recursively with MinGW failed with an error of "sleep" being redefined. Commenting out the sleep() definition in config.h.in resulted in libtdl compiling but a linker failure in libyaesu as "_sleep" was not defined. A bit of searching reveals that the MS Windows API does not include "sleep" and MinGW does not include it either, hence the definition in gr_pwin32.m4 from the GNU Radio project. Uopn finding a MinGW User thread from 2007 that discussed this very issue, the following message hinted that using a CPP #define to wrap Windows Sleep() may work: http://mingw.5.n7.nabble.com/Help-where-is-the-C-language-sleep-function-tp8921p8925.html And indeed it seems to. Compilation is now clean with recursive libltdl and the rest of Hamlib, but does it work? --- macros/gr_pwin32.m4 | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/macros/gr_pwin32.m4 b/macros/gr_pwin32.m4 index 96d072837..eda01c517 100644 --- a/macros/gr_pwin32.m4 +++ b/macros/gr_pwin32.m4 @@ -1,19 +1,19 @@ # Check for (mingw)win32 POSIX replacements. -*- Autoconf -*- # Copyright 2003 Free Software Foundation, Inc. -# +# # This file is part of GNU Radio -# +# # GNU Radio is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. -# +# # GNU Radio is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. -# +# # You should have received a copy of the GNU General Public License # along with GNU Radio; see the file COPYING. If not, write to # the Free Software Foundation, Inc., 59 Temple Place - Suite 330, @@ -89,7 +89,8 @@ int usleep(unsigned long usec); /* SUSv2 */ #include #endif /* TODO: what about SleepEx? */ -static inline unsigned int sleep (unsigned int nb_sec) { Sleep(nb_sec*1000); return 0; } +/* static inline unsigned int sleep (unsigned int nb_sec) { Sleep(nb_sec*1000); return 0; } */ +#define sleep(seconds) Sleep((seconds)*1000) #endif #ifndef HAVE_GETTIMEOFDAY