[libvirt] [PATCH v2 2/4] Remove windows thread implementation in favour of pthreads
Daniel P. Berrange
berrange at redhat.com
Tue Jan 28 15:28:50 UTC 2014
On Tue, Jan 28, 2014 at 08:12:35AM -0700, Eric Blake wrote:
> On 01/28/2014 08:10 AM, Daniel P. Berrange wrote:
> > On Mon, Jan 27, 2014 at 03:47:19PM -0700, Eric Blake wrote:
> >> On 01/27/2014 10:18 AM, Daniel P. Berrange wrote:
> >>> There are a number of pthreads impls available on Win32
> >>> these days, in particular the mingw64 project has a good
> >>> impl. Delete the native windows thread implementation and
> >>> rely on using pthreads everywhere.
> >>>
> >>> Signed-off-by: Daniel P. Berrange <berrange at redhat.com>
> >>> ---
> >>
> >> I'm still a bit worried about alienating F19 or RHEL.
> >
> > So I tested on F19 with this series applied and hit a small problem
> >
> > CC util/libvirt_util_la-viraudit.lo
> > In file included from util/virstoragefile.h:28:0,
> > from util/virfile.h:32,
> > from util/viraudit.c:33:
> > util/virutil.h:118:19: error: conflicting types for 'pthread_sigmask'
> > static inline int pthread_sigmask(int how,
> > ^
> > In file included from util/viraudit.c:27:0:
> > ../gnulib/lib/signal.h:451:1: note: previous declaration of 'pthread_sigmask' was here
> > _GL_FUNCDECL_SYS (pthread_sigmask, int,
> > ^
> >
>
> Okay, I'll fire up my F19 vm and resolve the issue (not sure yet if the
> solution will require another gnulib submodule update...)
Actually I think it is easy to fix - we just look at ac_cv_func_pthread_sigmask
which gnulib will have already set ie
@@ -288,18 +288,21 @@ fi
dnl At least mingw64-winpthreads #defines pthread_sigmask to 0,
dnl which in turn causes compilation to complain about unused variables.
dnl Expose this broken implementation, so we can work around it.
-AC_CACHE_CHECK([whether pthread_sigmask does anything],
- [lv_cv_pthread_sigmask_works],
- [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
- #include <sys/types.h>
- #include <signal.h>
- ]], [[
- int (*foo)(int, const sigset_t *, sigset_t *) = &pthread_sigmask;
- return !foo;
- ]])], [lv_cv_pthread_sigmask_works=yes], [lv_cv_pthread_sigmask_works=no])])
-if test "x$lv_cv_pthread_sigmask_works" != xyes; then
+if test $ac_cv_func_pthread_sigmask = yes
+then
+ AC_CACHE_CHECK([whether pthread_sigmask does anything],
+ [lv_cv_pthread_sigmask_works],
+ [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+ #include <sys/types.h>
+ #include <signal.h>
+ ]], [[
+ int (*foo)(int, const sigset_t *, sigset_t *) = &pthread_sigmask;
+ return !foo;
+ ]])], [lv_cv_pthread_sigmask_works=yes], [lv_cv_pthread_sigmask_works=no])])
+ if test "x$lv_cv_pthread_sigmask_works" != xyes; then
AC_DEFINE([FUNC_PTHREAD_SIGMASK_BROKEN], [1],
[Define to 1 if pthread_sigmask is not a real function])
+ fi
fi
LIBS=$old_libs
Daniel
--
|: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org -o- http://virt-manager.org :|
|: http://autobuild.org -o- http://search.cpan.org/~danberr/ :|
|: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|
More information about the libvir-list
mailing list