Browse Source

Upgrade libev to 3.8

v0.7.4-release
Ryan 15 years ago
parent
commit
b41ea5289e
  1. 16
      deps/libev/Changes
  2. 2
      deps/libev/LICENSE
  3. 410
      deps/libev/Makefile.in
  4. 12177
      deps/libev/aclocal.m4
  5. 6
      deps/libev/config.h.in
  6. 272
      deps/libev/configure
  7. 2
      deps/libev/configure.ac
  8. 94
      deps/libev/ev.3
  9. 314
      deps/libev/ev.c
  10. 9
      deps/libev/ev.h
  11. 94
      deps/libev/ev.pod
  12. 11
      deps/libev/ev_epoll.c
  13. 2
      deps/libev/ev_kqueue.c
  14. 2
      deps/libev/ev_poll.c
  15. 2
      deps/libev/ev_port.c
  16. 10
      deps/libev/ev_select.c
  17. 9
      deps/libev/ev_vars.h
  18. 12
      deps/libev/ev_wrap.h
  19. 4
      deps/libev/event.h
  20. 6
      deps/libev/libev.m4

16
deps/libev/Changes

@ -1,13 +1,25 @@
Revision history for libev, a high-performance and full-featured event loop. Revision history for libev, a high-performance and full-featured event loop.
3.8 Sun Aug 9 14:30:45 CEST 2009
- incompatible change: do not necessarily reset signal handler
to SIG_DFL when a sighandler is stopped.
- ev_default_destroy did not properly free or zero some members,
potentially causing crashes and memory corruption on repated
ev_default_destroy/ev_default_loop calls.
- take advantage of signalfd on GNU/Linux systems.
- document that the signal mask might be in an unspecified
state when using libev's signal handling.
- take advantage of some GNU/Linux calls to set cloexec/nonblock
on fd creation, to avoid race conditions.
3.7 Fri Jul 17 16:36:32 CEST 2009 3.7 Fri Jul 17 16:36:32 CEST 2009
- ev_unloop and ev_loop wrongly used a global variable to exit loops, - ev_unloop and ev_loop wrongly used a global variable to exit loops,
instead of using a per-loop variable (bug caught by accident...). instead of using a per-loop variable (bug caught by accident...).
- the ev_set_io_collect_interval interpretation has changed. - the ev_set_io_collect_interval interpretation has changed.
- add new functionality: ev_set_userdata, ev_userdata, - add new functionality: ev_set_userdata, ev_userdata,
ev_set_invoke_pending_cb, ev_set_loop_release_cb, ev_set_invoke_pending_cb, ev_set_loop_release_cb,
ev_invoke_pending, together with a long example about thread ev_invoke_pending, ev_pending_count, together with a long example
locking. about thread locking.
- add ev_timer_remaining (as requested by Denis F. Latypoff). - add ev_timer_remaining (as requested by Denis F. Latypoff).
- add ev_loop_depth. - add ev_loop_depth.
- calling ev_unloop in fork/prepare watchers will no longer poll - calling ev_unloop in fork/prepare watchers will no longer poll

2
deps/libev/LICENSE

@ -1,4 +1,4 @@
All files in libev are Copyright (C)2007,2008 Marc Alexander Lehmann. All files in libev are Copyright (C)2007,2008,2009 Marc Alexander Lehmann.
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are modification, are permitted provided that the following conditions are

410
deps/libev/Makefile.in

@ -1,8 +1,8 @@
# Makefile.in generated by automake 1.7.9 from Makefile.am. # Makefile.in generated by automake 1.10.1 from Makefile.am.
# @configure_input@ # @configure_input@
# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# Free Software Foundation, Inc. # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation # This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it, # gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved. # with or without modifications, as long as this notice is preserved.
@ -14,16 +14,12 @@
@SET_MAKE@ @SET_MAKE@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@ VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@ pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@ pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@ pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = .
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644 install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c install_sh_SCRIPT = $(install_sh) -c
@ -35,10 +31,72 @@ POST_INSTALL = :
NORMAL_UNINSTALL = : NORMAL_UNINSTALL = :
PRE_UNINSTALL = : PRE_UNINSTALL = :
POST_UNINSTALL = : POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@ host_triplet = @host@
subdir = .
DIST_COMMON = README $(am__configure_deps) $(include_HEADERS) \
$(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/config.h.in $(top_srcdir)/configure config.guess \
config.sub install-sh ltmain.sh missing mkinstalldirs
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/libev.m4 \
$(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
configure.lineno config.status.lineno
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES =
am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
am__vpath_adj = case $$p in \
$(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
*) f=$$p;; \
esac;
am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
am__installdirs = "$(DESTDIR)$(libdir)" "$(DESTDIR)$(man3dir)" \
"$(DESTDIR)$(includedir)"
libLTLIBRARIES_INSTALL = $(INSTALL)
LTLIBRARIES = $(lib_LTLIBRARIES)
libev_la_LIBADD =
am_libev_la_OBJECTS = ev.lo event.lo
libev_la_OBJECTS = $(am_libev_la_OBJECTS)
libev_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(libev_la_LDFLAGS) \
$(LDFLAGS) -o $@
DEFAULT_INCLUDES = -I.@am__isrc@
depcomp =
am__depfiles_maybe =
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
$(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
--mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
$(LDFLAGS) -o $@
SOURCES = $(libev_la_SOURCES)
DIST_SOURCES = $(libev_la_SOURCES)
man3dir = $(mandir)/man3
NROFF = nroff
MANS = $(man_MANS)
includeHEADERS_INSTALL = $(INSTALL_HEADER)
HEADERS = $(include_HEADERS)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
{ test ! -d $(distdir) \
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -fr $(distdir); }; }
DIST_ARCHIVES = $(distdir).tar.gz
GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print
distcleancheck_listfiles = find . -type f -print
ACLOCAL = @ACLOCAL@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@ AMTAR = @AMTAR@
AR = @AR@ AR = @AR@
AUTOCONF = @AUTOCONF@ AUTOCONF = @AUTOCONF@
@ -67,6 +125,7 @@ EXEEXT = @EXEEXT@
F77 = @F77@ F77 = @F77@
FFLAGS = @FFLAGS@ FFLAGS = @FFLAGS@
GREP = @GREP@ GREP = @GREP@
INSTALL = @INSTALL@
INSTALL_DATA = @INSTALL_DATA@ INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
@ -78,9 +137,8 @@ LIBTOOL = @LIBTOOL@
LN_S = @LN_S@ LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@ LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@ MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@ MAKEINFO = @MAKEINFO@
MKDIR_P = @MKDIR_P@
NMEDIT = @NMEDIT@ NMEDIT = @NMEDIT@
OBJEXT = @OBJEXT@ OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@ PACKAGE = @PACKAGE@
@ -96,22 +154,25 @@ SET_MAKE = @SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
STRIP = @STRIP@ STRIP = @STRIP@
VERSION = @VERSION@ VERSION = @VERSION@
abs_builddir = @abs_builddir@
abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
ac_ct_CC = @ac_ct_CC@ ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@ ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@ ac_ct_F77 = @ac_ct_F77@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@ am__include = @am__include@
am__leading_dot = @am__leading_dot@ am__leading_dot = @am__leading_dot@
am__quote = @am__quote@ am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@ bindir = @bindir@
build = @build@ build = @build@
build_alias = @build_alias@ build_alias = @build_alias@
build_cpu = @build_cpu@ build_cpu = @build_cpu@
build_os = @build_os@ build_os = @build_os@
build_vendor = @build_vendor@ build_vendor = @build_vendor@
builddir = @builddir@
datadir = @datadir@ datadir = @datadir@
datarootdir = @datarootdir@ datarootdir = @datarootdir@
docdir = @docdir@ docdir = @docdir@
@ -131,6 +192,7 @@ libexecdir = @libexecdir@
localedir = @localedir@ localedir = @localedir@
localstatedir = @localstatedir@ localstatedir = @localstatedir@
mandir = @mandir@ mandir = @mandir@
mkdir_p = @mkdir_p@
oldincludedir = @oldincludedir@ oldincludedir = @oldincludedir@
pdfdir = @pdfdir@ pdfdir = @pdfdir@
prefix = @prefix@ prefix = @prefix@
@ -138,142 +200,122 @@ program_transform_name = @program_transform_name@
psdir = @psdir@ psdir = @psdir@
sbindir = @sbindir@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@ sharedstatedir = @sharedstatedir@
srcdir = @srcdir@
sysconfdir = @sysconfdir@ sysconfdir = @sysconfdir@
target_alias = @target_alias@ target_alias = @target_alias@
top_builddir = @top_builddir@
top_srcdir = @top_srcdir@
AUTOMAKE_OPTIONS = foreign no-dependencies AUTOMAKE_OPTIONS = foreign no-dependencies
VERSION_INFO = 3:0 VERSION_INFO = 3:0
EXTRA_DIST = LICENSE Changes libev.m4 autogen.sh \ EXTRA_DIST = LICENSE Changes libev.m4 autogen.sh \
ev_vars.h ev_wrap.h \ ev_vars.h ev_wrap.h \
ev_epoll.c ev_select.c ev_poll.c ev_kqueue.c ev_port.c ev_win32.c \ ev_epoll.c ev_select.c ev_poll.c ev_kqueue.c ev_port.c ev_win32.c \
ev.3 ev.pod ev.3 ev.pod
man_MANS = ev.3 man_MANS = ev.3
include_HEADERS = ev.h ev++.h event.h include_HEADERS = ev.h ev++.h event.h
lib_LTLIBRARIES = libev.la lib_LTLIBRARIES = libev.la
libev_la_SOURCES = ev.c event.c libev_la_SOURCES = ev.c event.c
libev_la_LDFLAGS = -version-info $(VERSION_INFO) libev_la_LDFLAGS = -version-info $(VERSION_INFO)
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES =
LTLIBRARIES = $(lib_LTLIBRARIES)
libev_la_LIBADD =
am_libev_la_OBJECTS = ev.lo event.lo
libev_la_OBJECTS = $(am_libev_la_OBJECTS)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I.
depcomp =
am__depfiles_maybe =
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
$(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
DIST_SOURCES = $(libev_la_SOURCES)
NROFF = nroff
MANS = $(man_MANS)
HEADERS = $(include_HEADERS)
DIST_COMMON = README $(include_HEADERS) $(srcdir)/Makefile.in \
$(srcdir)/configure Makefile.am aclocal.m4 config.guess \
config.h.in config.sub configure configure.ac install-sh \
ltmain.sh missing mkinstalldirs
SOURCES = $(libev_la_SOURCES)
all: config.h all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-am $(MAKE) $(AM_MAKEFLAGS) all-am
.SUFFIXES: .SUFFIXES:
.SUFFIXES: .c .lo .o .obj .SUFFIXES: .c .lo .o .obj
am--refresh:
am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ @:
configure.lineno $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.ac $(ACLOCAL_M4) @for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
echo ' cd $(srcdir) && $(AUTOMAKE) --foreign '; \
cd $(srcdir) && $(AUTOMAKE) --foreign \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \
cd $(top_srcdir) && \ cd $(top_srcdir) && \
$(AUTOMAKE) --foreign Makefile $(AUTOMAKE) --foreign Makefile
Makefile: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.in $(top_builddir)/config.status .PRECIOUS: Makefile
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe) Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) *config.status*) \
echo ' $(SHELL) ./config.status'; \
$(SHELL) ./config.status;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck $(SHELL) ./config.status --recheck
$(srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(srcdir)/configure.ac $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
cd $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ configure.ac $(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(srcdir) && $(AUTOCONF)
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
config.h: stamp-h1 config.h: stamp-h1
@if test ! -f $@; then \ @if test ! -f $@; then \
rm -f stamp-h1; \ rm -f stamp-h1; \
$(MAKE) stamp-h1; \ $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
else :; fi else :; fi
stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
@rm -f stamp-h1 @rm -f stamp-h1
cd $(top_builddir) && $(SHELL) ./config.status config.h cd $(top_builddir) && $(SHELL) ./config.status config.h
$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(top_srcdir)/configure.ac $(ACLOCAL_M4)
cd $(top_srcdir) && $(AUTOHEADER) cd $(top_srcdir) && $(AUTOHEADER)
touch $(srcdir)/config.h.in rm -f stamp-h1
touch $@
distclean-hdr: distclean-hdr:
-rm -f config.h stamp-h1 -rm -f config.h stamp-h1
libLTLIBRARIES_INSTALL = $(INSTALL)
install-libLTLIBRARIES: $(lib_LTLIBRARIES) install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@$(NORMAL_INSTALL) @$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(libdir) test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \ @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \ if test -f $$p; then \
f="`echo $$p | sed -e 's|^.*/||'`"; \ f=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$f"; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \
$(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$f; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \
else :; fi; \ else :; fi; \
done done
uninstall-libLTLIBRARIES: uninstall-libLTLIBRARIES:
@$(NORMAL_UNINSTALL) @$(NORMAL_UNINSTALL)
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \ @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
p="`echo $$p | sed -e 's|^.*/||'`"; \ p=$(am__strip_dir) \
echo " $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p"; \ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \
$(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \
done done
clean-libLTLIBRARIES: clean-libLTLIBRARIES:
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \ @list='$(lib_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
test "$$dir" = "$$p" && dir=.; \ test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \ echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \ rm -f "$${dir}/so_locations"; \
done done
libev.la: $(libev_la_OBJECTS) $(libev_la_DEPENDENCIES) libev.la: $(libev_la_OBJECTS) $(libev_la_DEPENDENCIES)
$(LINK) -rpath $(libdir) $(libev_la_LDFLAGS) $(libev_la_OBJECTS) $(libev_la_LIBADD) $(LIBS) $(libev_la_LINK) -rpath $(libdir) $(libev_la_OBJECTS) $(libev_la_LIBADD) $(LIBS)
mostlyclean-compile: mostlyclean-compile:
-rm -f *.$(OBJEXT) core *.core -rm -f *.$(OBJEXT)
distclean-compile: distclean-compile:
-rm -f *.tab.c -rm -f *.tab.c
.c.o: .c.o:
$(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$< $(COMPILE) -c $<
.c.obj: .c.obj:
$(COMPILE) -c `if test -f '$<'; then $(CYGPATH_W) '$<'; else $(CYGPATH_W) '$(srcdir)/$<'; fi` $(COMPILE) -c `$(CYGPATH_W) '$<'`
.c.lo: .c.lo:
$(LTCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$< $(LTCOMPILE) -c -o $@ $<
mostlyclean-libtool: mostlyclean-libtool:
-rm -f *.lo -rm -f *.lo
@ -283,12 +325,9 @@ clean-libtool:
distclean-libtool: distclean-libtool:
-rm -f libtool -rm -f libtool
uninstall-info-am:
man3dir = $(mandir)/man3
install-man3: $(man3_MANS) $(man_MANS) install-man3: $(man3_MANS) $(man_MANS)
@$(NORMAL_INSTALL) @$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(man3dir) test -z "$(man3dir)" || $(MKDIR_P) "$(DESTDIR)$(man3dir)"
@list='$(man3_MANS) $(dist_man3_MANS) $(nodist_man3_MANS)'; \ @list='$(man3_MANS) $(dist_man3_MANS) $(nodist_man3_MANS)'; \
l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \ l2='$(man_MANS) $(dist_man_MANS) $(nodist_man_MANS)'; \
for i in $$l2; do \ for i in $$l2; do \
@ -307,8 +346,8 @@ install-man3: $(man3_MANS) $(man_MANS)
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed -e 's/^.*\///'`; \
inst=`echo $$inst | sed '$(transform)'`.$$ext; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man3dir)/$$inst"; \ echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man3dir)/$$inst'"; \
$(INSTALL_DATA) $$file $(DESTDIR)$(man3dir)/$$inst; \ $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man3dir)/$$inst"; \
done done
uninstall-man3: uninstall-man3:
@$(NORMAL_UNINSTALL) @$(NORMAL_UNINSTALL)
@ -328,44 +367,36 @@ uninstall-man3:
inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \ inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
inst=`echo $$inst | sed -e 's/^.*\///'`; \ inst=`echo $$inst | sed -e 's/^.*\///'`; \
inst=`echo $$inst | sed '$(transform)'`.$$ext; \ inst=`echo $$inst | sed '$(transform)'`.$$ext; \
echo " rm -f $(DESTDIR)$(man3dir)/$$inst"; \ echo " rm -f '$(DESTDIR)$(man3dir)/$$inst'"; \
rm -f $(DESTDIR)$(man3dir)/$$inst; \ rm -f "$(DESTDIR)$(man3dir)/$$inst"; \
done done
includeHEADERS_INSTALL = $(INSTALL_HEADER)
install-includeHEADERS: $(include_HEADERS) install-includeHEADERS: $(include_HEADERS)
@$(NORMAL_INSTALL) @$(NORMAL_INSTALL)
$(mkinstalldirs) $(DESTDIR)$(includedir) test -z "$(includedir)" || $(MKDIR_P) "$(DESTDIR)$(includedir)"
@list='$(include_HEADERS)'; for p in $$list; do \ @list='$(include_HEADERS)'; for p in $$list; do \
if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
f="`echo $$p | sed -e 's|^.*/||'`"; \ f=$(am__strip_dir) \
echo " $(includeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(includedir)/$$f"; \ echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \
$(includeHEADERS_INSTALL) $$d$$p $(DESTDIR)$(includedir)/$$f; \ $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \
done done
uninstall-includeHEADERS: uninstall-includeHEADERS:
@$(NORMAL_UNINSTALL) @$(NORMAL_UNINSTALL)
@list='$(include_HEADERS)'; for p in $$list; do \ @list='$(include_HEADERS)'; for p in $$list; do \
f="`echo $$p | sed -e 's|^.*/||'`"; \ f=$(am__strip_dir) \
echo " rm -f $(DESTDIR)$(includedir)/$$f"; \ echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \
rm -f $(DESTDIR)$(includedir)/$$f; \ rm -f "$(DESTDIR)$(includedir)/$$f"; \
done done
ETAGS = etags
ETAGSFLAGS =
CTAGS = ctags
CTAGSFLAGS =
tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \ unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \ done | \
$(AWK) ' { files[$$0] = 1; } \ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
END { for (i in files) print i; }'`; \ END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP) $(TAGS_FILES) $(LISP)
@ -375,23 +406,23 @@ TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
unique=`for i in $$list; do \ unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \ done | \
$(AWK) ' { files[$$0] = 1; } \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { for (i in files) print i; }'`; \ END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(ETAGS_ARGS)$$tags$$unique" \ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|| $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ test -n "$$unique" || unique=$$empty_fix; \
$$tags $$unique $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ CTAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP) $(TAGS_FILES) $(LISP)
tags=; \ tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \ unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \ done | \
$(AWK) ' { files[$$0] = 1; } \ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
END { for (i in files) print i; }'`; \ END { if (nonempty) { for (i in files) print i; }; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \ test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique $$tags $$unique
@ -403,39 +434,25 @@ GTAGS:
distclean-tags: distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
top_distdir = .
distdir = $(PACKAGE)-$(VERSION)
am__remove_distdir = \
{ test ! -d $(distdir) \
|| { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -fr $(distdir); }; }
GZIP_ENV = --best
distuninstallcheck_listfiles = find . -type f -print
distcleancheck_listfiles = find . -type f -print
distdir: $(DISTFILES) distdir: $(DISTFILES)
$(am__remove_distdir) $(am__remove_distdir)
mkdir $(distdir) test -d $(distdir) || mkdir $(distdir)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; for file in $$list; do \ list='$(DISTFILES)'; \
case $$file in \ dist_files=`for file in $$list; do echo $$file; done | \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ sed -e "s|^$$srcdirstrip/||;t" \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
esac; \ case $$dist_files in \
*/*) $(MKDIR_P) `echo "$$dist_files" | \
sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
sort -u` ;; \
esac; \
for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkinstalldirs) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
if test -d $$d/$$file; then \ if test -d $$d/$$file; then \
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \ fi; \
@ -449,22 +466,55 @@ distdir: $(DISTFILES)
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \ -find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \ ! -type d ! -perm -400 -exec chmod a+r {} \; -o \
! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r $(distdir) || chmod -R a+r $(distdir)
dist-gzip: distdir dist-gzip: distdir
$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir)
dist-bzip2: distdir
tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
$(am__remove_distdir)
dist-lzma: distdir
tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
$(am__remove_distdir)
dist-tarZ: distdir
tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
$(am__remove_distdir)
dist-shar: distdir
shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
$(am__remove_distdir)
dist-zip: distdir
-rm -f $(distdir).zip
zip -rq $(distdir).zip $(distdir)
$(am__remove_distdir) $(am__remove_distdir)
dist dist-all: distdir dist dist-all: distdir
$(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
$(am__remove_distdir) $(am__remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then # This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another # it guarantees that the distribution is self-contained by making another
# tarfile. # tarfile.
distcheck: dist distcheck: dist
$(am__remove_distdir) case '$(DIST_ARCHIVES)' in \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf - *.tar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.lzma*) \
unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\
*.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
esac
chmod -R a-w $(distdir); chmod a+w $(distdir) chmod -R a-w $(distdir); chmod a+w $(distdir)
mkdir $(distdir)/_build mkdir $(distdir)/_build
mkdir $(distdir)/_inst mkdir $(distdir)/_inst
@ -484,19 +534,20 @@ distcheck: dist
distuninstallcheck \ distuninstallcheck \
&& chmod -R a-w "$$dc_install_base" \ && chmod -R a-w "$$dc_install_base" \
&& ({ \ && ({ \
(cd ../.. && $(mkinstalldirs) "$$dc_destdir") \ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
&& $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
} || { rm -rf "$$dc_destdir"; exit 1; }) \ } || { rm -rf "$$dc_destdir"; exit 1; }) \
&& rm -rf "$$dc_destdir" \ && rm -rf "$$dc_destdir" \
&& $(MAKE) $(AM_MAKEFLAGS) dist-gzip \ && $(MAKE) $(AM_MAKEFLAGS) dist \
&& rm -f $(distdir).tar.gz \ && rm -rf $(DIST_ARCHIVES) \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck && $(MAKE) $(AM_MAKEFLAGS) distcleancheck
$(am__remove_distdir) $(am__remove_distdir)
@echo "$(distdir).tar.gz is ready for distribution" | \ @(echo "$(distdir) archives ready for distribution: "; \
sed 'h;s/./=/g;p;x;p;x' list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
distuninstallcheck: distuninstallcheck:
@cd $(distuninstallcheck_dir) \ @cd $(distuninstallcheck_dir) \
&& test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
@ -518,9 +569,10 @@ distcleancheck: distclean
check-am: all-am check-am: all-am
check: check-am check: check-am
all-am: Makefile $(LTLIBRARIES) $(MANS) $(HEADERS) config.h all-am: Makefile $(LTLIBRARIES) $(MANS) $(HEADERS) config.h
installdirs: installdirs:
$(mkinstalldirs) $(DESTDIR)$(libdir) $(DESTDIR)$(man3dir) $(DESTDIR)$(includedir) for dir in "$(DESTDIR)$(libdir)" "$(DESTDIR)$(man3dir)" "$(DESTDIR)$(includedir)"; do \
test -z "$$dir" || $(MKDIR_P) "$$dir"; \
done
install: install-am install: install-am
install-exec: install-exec-am install-exec: install-exec-am
install-data: install-data-am install-data: install-data-am
@ -540,7 +592,7 @@ mostlyclean-generic:
clean-generic: clean-generic:
distclean-generic: distclean-generic:
-rm -f $(CONFIG_CLEAN_FILES) -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic: maintainer-clean-generic:
@echo "This command is intended for maintainers to use" @echo "This command is intended for maintainers to use"
@ -553,25 +605,35 @@ clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \
distclean: distclean-am distclean: distclean-am
-rm -f $(am__CONFIG_DISTCLEAN_FILES) -rm -f $(am__CONFIG_DISTCLEAN_FILES)
-rm -f Makefile -rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic distclean-hdr \ distclean-am: clean-am distclean-compile distclean-generic \
distclean-libtool distclean-tags distclean-hdr distclean-libtool distclean-tags
dvi: dvi-am dvi: dvi-am
dvi-am: dvi-am:
html: html-am
info: info-am info: info-am
info-am: info-am:
install-data-am: install-includeHEADERS install-man install-data-am: install-includeHEADERS install-man
install-dvi: install-dvi-am
install-exec-am: install-libLTLIBRARIES install-exec-am: install-libLTLIBRARIES
install-html: install-html-am
install-info: install-info-am install-info: install-info-am
install-man: install-man3 install-man: install-man3
install-pdf: install-pdf-am
install-ps: install-ps-am
installcheck-am: installcheck-am:
maintainer-clean: maintainer-clean-am maintainer-clean: maintainer-clean-am
@ -593,26 +655,30 @@ ps: ps-am
ps-am: ps-am:
uninstall-am: uninstall-includeHEADERS uninstall-info-am \ uninstall-am: uninstall-includeHEADERS uninstall-libLTLIBRARIES \
uninstall-libLTLIBRARIES uninstall-man uninstall-man
uninstall-man: uninstall-man3 uninstall-man: uninstall-man3
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ .MAKE: install-am install-strip
clean-libLTLIBRARIES clean-libtool ctags dist dist-all \
dist-gzip distcheck distclean distclean-compile \ .PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \
clean-generic clean-libLTLIBRARIES clean-libtool ctags dist \
dist-all dist-bzip2 dist-gzip dist-lzma dist-shar dist-tarZ \
dist-zip distcheck distclean distclean-compile \
distclean-generic distclean-hdr distclean-libtool \ distclean-generic distclean-hdr distclean-libtool \
distclean-tags distcleancheck distdir distuninstallcheck dvi \ distclean-tags distcleancheck distdir distuninstallcheck dvi \
dvi-am info info-am install install-am install-data \ dvi-am html html-am info info-am install install-am \
install-data-am install-exec install-exec-am \ install-data install-data-am install-dvi install-dvi-am \
install-exec install-exec-am install-html install-html-am \
install-includeHEADERS install-info install-info-am \ install-includeHEADERS install-info install-info-am \
install-libLTLIBRARIES install-man install-man3 install-strip \ install-libLTLIBRARIES install-man install-man3 install-pdf \
install-pdf-am install-ps install-ps-am install-strip \
installcheck installcheck-am installdirs maintainer-clean \ installcheck installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \ maintainer-clean-generic mostlyclean mostlyclean-compile \
mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
tags uninstall uninstall-am uninstall-includeHEADERS \ tags uninstall uninstall-am uninstall-includeHEADERS \
uninstall-info-am uninstall-libLTLIBRARIES uninstall-man \ uninstall-libLTLIBRARIES uninstall-man uninstall-man3
uninstall-man3
# Tell versions [3.59,3.63) of GNU make to not export all variables. # Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded. # Otherwise a system limit (for SysV at least) may be exceeded.

12177
deps/libev/aclocal.m4

File diff suppressed because it is too large

6
deps/libev/config.h.in

@ -51,6 +51,9 @@
/* Define to 1 if you have the `select' function. */ /* Define to 1 if you have the `select' function. */
#undef HAVE_SELECT #undef HAVE_SELECT
/* Define to 1 if you have the `signalfd' function. */
#undef HAVE_SIGNALFD
/* Define to 1 if you have the <stdint.h> header file. */ /* Define to 1 if you have the <stdint.h> header file. */
#undef HAVE_STDINT_H #undef HAVE_STDINT_H
@ -81,6 +84,9 @@
/* Define to 1 if you have the <sys/select.h> header file. */ /* Define to 1 if you have the <sys/select.h> header file. */
#undef HAVE_SYS_SELECT_H #undef HAVE_SYS_SELECT_H
/* Define to 1 if you have the <sys/signalfd.h> header file. */
#undef HAVE_SYS_SIGNALFD_H
/* Define to 1 if you have the <sys/stat.h> header file. */ /* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H #undef HAVE_SYS_STAT_H

272
deps/libev/configure

@ -807,6 +807,7 @@ target_alias
INSTALL_PROGRAM INSTALL_PROGRAM
INSTALL_SCRIPT INSTALL_SCRIPT
INSTALL_DATA INSTALL_DATA
am__isrc
CYGPATH_W CYGPATH_W
PACKAGE PACKAGE
VERSION VERSION
@ -815,13 +816,16 @@ AUTOCONF
AUTOMAKE AUTOMAKE
AUTOHEADER AUTOHEADER
MAKEINFO MAKEINFO
AMTAR
install_sh install_sh
STRIP STRIP
INSTALL_STRIP_PROGRAM INSTALL_STRIP_PROGRAM
mkdir_p
AWK AWK
SET_MAKE SET_MAKE
am__leading_dot am__leading_dot
AMTAR
am__tar
am__untar
MAINTAINER_MODE_TRUE MAINTAINER_MODE_TRUE
MAINTAINER_MODE_FALSE MAINTAINER_MODE_FALSE
MAINT MAINT
@ -1465,14 +1469,14 @@ if test -n "$ac_init_help"; then
Optional Features: Optional Features:
--disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no)
--enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-FEATURE[=ARG] include FEATURE [ARG=yes]
--enable-maintainer-mode enable make rules and dependencies not useful --enable-maintainer-mode enable make rules and dependencies not useful
(and sometimes confusing) to the casual installer (and sometimes confusing) to the casual installer
--enable-shared[=PKGS] build shared libraries [default=yes] --enable-shared[=PKGS] build shared libraries [default=yes]
--enable-static[=PKGS] build static libraries [default=yes] --enable-static[=PKGS] build static libraries [default=yes]
--enable-fast-install[=PKGS] --enable-fast-install[=PKGS]
optimize for fast installation [default=yes] optimize for fast installation [default=yes]
--disable-dependency-tracking Speeds up one-time builds --disable-dependency-tracking speeds up one-time build
--enable-dependency-tracking Do not reject slow dependency extractors --enable-dependency-tracking do not reject slow dependency extractors
--disable-libtool-lock avoid locking (might break parallel builds) --disable-libtool-lock avoid locking (might break parallel builds)
Optional Packages: Optional Packages:
@ -1922,7 +1926,8 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
am__api_version="1.7" am__api_version='1.10'
ac_aux_dir= ac_aux_dir=
for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
if test -f "$ac_dir/install-sh"; then if test -f "$ac_dir/install-sh"; then
@ -2092,7 +2097,6 @@ _ACEOF
program_transform_name=`echo $program_transform_name | sed -f conftest.sed` program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
rm -f conftest.sed rm -f conftest.sed
# expand $ac_aux_dir to an absolute path # expand $ac_aux_dir to an absolute path
am_aux_dir=`cd $ac_aux_dir && pwd` am_aux_dir=`cd $ac_aux_dir && pwd`
@ -2106,6 +2110,54 @@ else
echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
fi fi
{ echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5
echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; }
if test -z "$MKDIR_P"; then
if test "${ac_cv_path_mkdir+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
do
IFS=$as_save_IFS
test -z "$as_dir" && as_dir=.
for ac_prog in mkdir gmkdir; do
for ac_exec_ext in '' $ac_executable_extensions; do
{ test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue
case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #(
'mkdir (GNU coreutils) '* | \
'mkdir (coreutils) '* | \
'mkdir (fileutils) '4.1*)
ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext
break 3;;
esac
done
done
done
IFS=$as_save_IFS
fi
if test "${ac_cv_path_mkdir+set}" = set; then
MKDIR_P="$ac_cv_path_mkdir -p"
else
# As a last resort, use the slow shell script. Don't cache a
# value for MKDIR_P within a source directory, because that will
# break other packages using the cache if that directory is
# removed, or if the value is a relative name.
test -d ./--version && rmdir ./--version
MKDIR_P="$ac_install_sh -d"
fi
fi
{ echo "$as_me:$LINENO: result: $MKDIR_P" >&5
echo "${ECHO_T}$MKDIR_P" >&6; }
mkdir_p="$MKDIR_P"
case $mkdir_p in
[\\/$]* | ?:[\\/]*) ;;
*/*) mkdir_p="\$(top_builddir)/$mkdir_p" ;;
esac
for ac_prog in gawk mawk nawk awk for ac_prog in gawk mawk nawk awk
do do
# Extract the first word of "$ac_prog", so it can be a program name with args. # Extract the first word of "$ac_prog", so it can be a program name with args.
@ -2187,12 +2239,16 @@ else
fi fi
rmdir .tst 2>/dev/null rmdir .tst 2>/dev/null
# test to see if srcdir already configured if test "`cd $srcdir && pwd`" != "`pwd`"; then
if test "`cd $srcdir && pwd`" != "`pwd`" && # Use -I$(srcdir) only when $(srcdir) != ., so that make's output
test -f $srcdir/config.status; then # is not polluted with repeated "-I."
{ { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 am__isrc=' -I$(srcdir)'
# test to see if srcdir already configured
if test -f $srcdir/config.status; then
{ { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
{ (exit 1); exit 1; }; } { (exit 1); exit 1; }; }
fi
fi fi
# test whether we have cygpath # test whether we have cygpath
@ -2207,7 +2263,7 @@ fi
# Define the identity of the package. # Define the identity of the package.
PACKAGE=libev PACKAGE=libev
VERSION=3.7 VERSION=3.8
cat >>confdefs.h <<_ACEOF cat >>confdefs.h <<_ACEOF
@ -2235,10 +2291,7 @@ AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"}
MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"}
install_sh=${install_sh-"\$(SHELL) $am_aux_dir/install-sh"}
AMTAR=${AMTAR-"${am_missing_run}tar"}
install_sh=${install_sh-"$am_aux_dir/install-sh"}
# Installed binaries are usually stripped using `strip' when the user # Installed binaries are usually stripped using `strip' when the user
# run `make install-strip'. However `strip' might not be the right # run `make install-strip'. However `strip' might not be the right
@ -2342,10 +2395,17 @@ else
fi fi
fi fi
INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
# We need awk for the "check" target. The system "awk" is bad on # We need awk for the "check" target. The system "awk" is bad on
# some platforms. # some platforms.
# Always define AMTAR for backward compatibility.
AMTAR=${AMTAR-"${am_missing_run}tar"}
am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
ac_config_headers="$ac_config_headers config.h" ac_config_headers="$ac_config_headers config.h"
@ -2361,9 +2421,7 @@ fi
{ echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 { echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6; } echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6; }
if test $USE_MAINTAINER_MODE = yes; then
if test $USE_MAINTAINER_MODE = yes; then
MAINTAINER_MODE_TRUE= MAINTAINER_MODE_TRUE=
MAINTAINER_MODE_FALSE='#' MAINTAINER_MODE_FALSE='#'
else else
@ -2663,9 +2721,7 @@ if test "x$enable_dependency_tracking" != xno; then
am_depcomp="$ac_aux_dir/depcomp" am_depcomp="$ac_aux_dir/depcomp"
AMDEPBACKSLASH='\' AMDEPBACKSLASH='\'
fi fi
if test "x$enable_dependency_tracking" != xno; then
if test "x$enable_dependency_tracking" != xno; then
AMDEP_TRUE= AMDEP_TRUE=
AMDEP_FALSE='#' AMDEP_FALSE='#'
else else
@ -2674,7 +2730,6 @@ else
fi fi
ac_ext=c ac_ext=c
ac_cpp='$CPP $CPPFLAGS' ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@ -3635,7 +3690,9 @@ else
: > sub/conftest.c : > sub/conftest.c
for i in 1 2 3 4 5 6; do for i in 1 2 3 4 5 6; do
echo '#include "conftst'$i'.h"' >> sub/conftest.c echo '#include "conftst'$i'.h"' >> sub/conftest.c
: > sub/conftst$i.h # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
# Solaris 8's {/usr,}/bin/sh.
touch sub/conftst$i.h
done done
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
@ -3659,13 +3716,19 @@ else
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
$SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
>/dev/null 2>conftest.err && >/dev/null 2>conftest.err &&
grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
${MAKE-make} -s -f confmf > /dev/null 2>&1; then ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
# icc doesn't choke on unknown options, it will just issue warnings # icc doesn't choke on unknown options, it will just issue warnings
# (even with -Werror). So we grep stderr for any message # or remarks (even with -Werror). So we grep stderr for any message
# that says an option was ignored. # that says an option was ignored or not supported.
if grep 'ignoring option' conftest.err >/dev/null 2>&1; then :; else # When given -MP, icc 7.0 and 7.1 complain thusly:
# icc: Command line warning: ignoring option '-M'; no argument required
# The diagnosis changed in icc 8.0:
# icc: Command line remark: option '-MP' not supported
if (grep 'ignoring option' conftest.err ||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
am_cv_CC_dependencies_compiler_type=$depmode am_cv_CC_dependencies_compiler_type=$depmode
break break
fi fi
@ -3683,9 +3746,7 @@ fi
echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; } echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; }
CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
if
if
test "x$enable_dependency_tracking" != xno \ test "x$enable_dependency_tracking" != xno \
&& test "$am_cv_CC_dependencies_compiler_type" = gcc3; then && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then
am__fastdepCC_TRUE= am__fastdepCC_TRUE=
@ -4349,7 +4410,7 @@ ia64-*-hpux*)
;; ;;
*-*-irix6*) *-*-irix6*)
# Find out which ABI we are using. # Find out which ABI we are using.
echo '#line 4352 "configure"' > conftest.$ac_ext echo '#line 4413 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5 (eval $ac_compile) 2>&5
ac_status=$? ac_status=$?
@ -5558,7 +5619,9 @@ else
: > sub/conftest.c : > sub/conftest.c
for i in 1 2 3 4 5 6; do for i in 1 2 3 4 5 6; do
echo '#include "conftst'$i'.h"' >> sub/conftest.c echo '#include "conftst'$i'.h"' >> sub/conftest.c
: > sub/conftst$i.h # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
# Solaris 8's {/usr,}/bin/sh.
touch sub/conftst$i.h
done done
echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
@ -5582,13 +5645,19 @@ else
depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
$SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
>/dev/null 2>conftest.err && >/dev/null 2>conftest.err &&
grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 &&
grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
${MAKE-make} -s -f confmf > /dev/null 2>&1; then ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
# icc doesn't choke on unknown options, it will just issue warnings # icc doesn't choke on unknown options, it will just issue warnings
# (even with -Werror). So we grep stderr for any message # or remarks (even with -Werror). So we grep stderr for any message
# that says an option was ignored. # that says an option was ignored or not supported.
if grep 'ignoring option' conftest.err >/dev/null 2>&1; then :; else # When given -MP, icc 7.0 and 7.1 complain thusly:
# icc: Command line warning: ignoring option '-M'; no argument required
# The diagnosis changed in icc 8.0:
# icc: Command line remark: option '-MP' not supported
if (grep 'ignoring option' conftest.err ||
grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
am_cv_CXX_dependencies_compiler_type=$depmode am_cv_CXX_dependencies_compiler_type=$depmode
break break
fi fi
@ -5606,9 +5675,7 @@ fi
echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6; } echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6; }
CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
if
if
test "x$enable_dependency_tracking" != xno \ test "x$enable_dependency_tracking" != xno \
&& test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then
am__fastdepCXX_TRUE= am__fastdepCXX_TRUE=
@ -7395,11 +7462,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:7398: $lt_compile\"" >&5) (eval echo "\"\$as_me:7465: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err) (eval "$lt_compile" 2>conftest.err)
ac_status=$? ac_status=$?
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:7402: \$? = $ac_status" >&5 echo "$as_me:7469: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output. # So say no if there are warnings other than the usual output.
@ -7685,11 +7752,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:7688: $lt_compile\"" >&5) (eval echo "\"\$as_me:7755: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err) (eval "$lt_compile" 2>conftest.err)
ac_status=$? ac_status=$?
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:7692: \$? = $ac_status" >&5 echo "$as_me:7759: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output. # So say no if there are warnings other than the usual output.
@ -7789,11 +7856,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:7792: $lt_compile\"" >&5) (eval echo "\"\$as_me:7859: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err) (eval "$lt_compile" 2>out/conftest.err)
ac_status=$? ac_status=$?
cat out/conftest.err >&5 cat out/conftest.err >&5
echo "$as_me:7796: \$? = $ac_status" >&5 echo "$as_me:7863: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext if (exit $ac_status) && test -s out/conftest2.$ac_objext
then then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
@ -10166,7 +10233,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 10169 "configure" #line 10236 "configure"
#include "confdefs.h" #include "confdefs.h"
#if HAVE_DLFCN_H #if HAVE_DLFCN_H
@ -10266,7 +10333,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 10269 "configure" #line 10336 "configure"
#include "confdefs.h" #include "confdefs.h"
#if HAVE_DLFCN_H #if HAVE_DLFCN_H
@ -12667,11 +12734,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:12670: $lt_compile\"" >&5) (eval echo "\"\$as_me:12737: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err) (eval "$lt_compile" 2>conftest.err)
ac_status=$? ac_status=$?
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:12674: \$? = $ac_status" >&5 echo "$as_me:12741: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output. # So say no if there are warnings other than the usual output.
@ -12771,11 +12838,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:12774: $lt_compile\"" >&5) (eval echo "\"\$as_me:12841: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err) (eval "$lt_compile" 2>out/conftest.err)
ac_status=$? ac_status=$?
cat out/conftest.err >&5 cat out/conftest.err >&5
echo "$as_me:12778: \$? = $ac_status" >&5 echo "$as_me:12845: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext if (exit $ac_status) && test -s out/conftest2.$ac_objext
then then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
@ -14369,11 +14436,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:14372: $lt_compile\"" >&5) (eval echo "\"\$as_me:14439: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err) (eval "$lt_compile" 2>conftest.err)
ac_status=$? ac_status=$?
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:14376: \$? = $ac_status" >&5 echo "$as_me:14443: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output. # So say no if there are warnings other than the usual output.
@ -14473,11 +14540,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:14476: $lt_compile\"" >&5) (eval echo "\"\$as_me:14543: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err) (eval "$lt_compile" 2>out/conftest.err)
ac_status=$? ac_status=$?
cat out/conftest.err >&5 cat out/conftest.err >&5
echo "$as_me:14480: \$? = $ac_status" >&5 echo "$as_me:14547: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext if (exit $ac_status) && test -s out/conftest2.$ac_objext
then then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
@ -16693,11 +16760,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:16696: $lt_compile\"" >&5) (eval echo "\"\$as_me:16763: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err) (eval "$lt_compile" 2>conftest.err)
ac_status=$? ac_status=$?
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:16700: \$? = $ac_status" >&5 echo "$as_me:16767: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output. # So say no if there are warnings other than the usual output.
@ -16983,11 +17050,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:16986: $lt_compile\"" >&5) (eval echo "\"\$as_me:17053: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err) (eval "$lt_compile" 2>conftest.err)
ac_status=$? ac_status=$?
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:16990: \$? = $ac_status" >&5 echo "$as_me:17057: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output. # So say no if there are warnings other than the usual output.
@ -17087,11 +17154,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:17090: $lt_compile\"" >&5) (eval echo "\"\$as_me:17157: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err) (eval "$lt_compile" 2>out/conftest.err)
ac_status=$? ac_status=$?
cat out/conftest.err >&5 cat out/conftest.err >&5
echo "$as_me:17094: \$? = $ac_status" >&5 echo "$as_me:17161: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext if (exit $ac_status) && test -s out/conftest2.$ac_objext
then then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
@ -19791,7 +19858,8 @@ fi
for ac_header in sys/inotify.h sys/epoll.h sys/event.h sys/queue.h port.h poll.h sys/select.h sys/eventfd.h
for ac_header in sys/inotify.h sys/epoll.h sys/event.h sys/queue.h port.h poll.h sys/select.h sys/eventfd.h sys/signalfd.h
do do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
@ -19938,7 +20006,8 @@ done
for ac_func in inotify_init epoll_ctl kqueue port_create poll select eventfd
for ac_func in inotify_init epoll_ctl kqueue port_create poll select eventfd signalfd
do do
as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`
{ echo "$as_me:$LINENO: checking for $ac_func" >&5 { echo "$as_me:$LINENO: checking for $ac_func" >&5
@ -20676,8 +20745,6 @@ fi
ac_config_files="$ac_config_files Makefile" ac_config_files="$ac_config_files Makefile"
cat >confcache <<\_ACEOF cat >confcache <<\_ACEOF
@ -21168,6 +21235,7 @@ gives unlimited permission to copy, distribute and modify it."
ac_pwd='$ac_pwd' ac_pwd='$ac_pwd'
srcdir='$srcdir' srcdir='$srcdir'
INSTALL='$INSTALL' INSTALL='$INSTALL'
MKDIR_P='$MKDIR_P'
_ACEOF _ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF cat >>$CONFIG_STATUS <<\_ACEOF
@ -21375,6 +21443,7 @@ target_alias!$target_alias$ac_delim
INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim
INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim
INSTALL_DATA!$INSTALL_DATA$ac_delim INSTALL_DATA!$INSTALL_DATA$ac_delim
am__isrc!$am__isrc$ac_delim
CYGPATH_W!$CYGPATH_W$ac_delim CYGPATH_W!$CYGPATH_W$ac_delim
PACKAGE!$PACKAGE$ac_delim PACKAGE!$PACKAGE$ac_delim
VERSION!$VERSION$ac_delim VERSION!$VERSION$ac_delim
@ -21383,13 +21452,16 @@ AUTOCONF!$AUTOCONF$ac_delim
AUTOMAKE!$AUTOMAKE$ac_delim AUTOMAKE!$AUTOMAKE$ac_delim
AUTOHEADER!$AUTOHEADER$ac_delim AUTOHEADER!$AUTOHEADER$ac_delim
MAKEINFO!$MAKEINFO$ac_delim MAKEINFO!$MAKEINFO$ac_delim
AMTAR!$AMTAR$ac_delim
install_sh!$install_sh$ac_delim install_sh!$install_sh$ac_delim
STRIP!$STRIP$ac_delim STRIP!$STRIP$ac_delim
INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim
mkdir_p!$mkdir_p$ac_delim
AWK!$AWK$ac_delim AWK!$AWK$ac_delim
SET_MAKE!$SET_MAKE$ac_delim SET_MAKE!$SET_MAKE$ac_delim
am__leading_dot!$am__leading_dot$ac_delim am__leading_dot!$am__leading_dot$ac_delim
AMTAR!$AMTAR$ac_delim
am__tar!$am__tar$ac_delim
am__untar!$am__untar$ac_delim
MAINTAINER_MODE_TRUE!$MAINTAINER_MODE_TRUE$ac_delim MAINTAINER_MODE_TRUE!$MAINTAINER_MODE_TRUE$ac_delim
MAINTAINER_MODE_FALSE!$MAINTAINER_MODE_FALSE$ac_delim MAINTAINER_MODE_FALSE!$MAINTAINER_MODE_FALSE$ac_delim
MAINT!$MAINT$ac_delim MAINT!$MAINT$ac_delim
@ -21428,10 +21500,6 @@ DSYMUTIL!$DSYMUTIL$ac_delim
NMEDIT!$NMEDIT$ac_delim NMEDIT!$NMEDIT$ac_delim
CPP!$CPP$ac_delim CPP!$CPP$ac_delim
CXX!$CXX$ac_delim CXX!$CXX$ac_delim
CXXFLAGS!$CXXFLAGS$ac_delim
ac_ct_CXX!$ac_ct_CXX$ac_delim
CXXDEPMODE!$CXXDEPMODE$ac_delim
am__fastdepCXX_TRUE!$am__fastdepCXX_TRUE$ac_delim
_ACEOF _ACEOF
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
@ -21473,6 +21541,10 @@ _ACEOF
ac_delim='%!_!# ' ac_delim='%!_!# '
for ac_last_try in false false false false false :; do for ac_last_try in false false false false false :; do
cat >conf$$subs.sed <<_ACEOF cat >conf$$subs.sed <<_ACEOF
CXXFLAGS!$CXXFLAGS$ac_delim
ac_ct_CXX!$ac_ct_CXX$ac_delim
CXXDEPMODE!$CXXDEPMODE$ac_delim
am__fastdepCXX_TRUE!$am__fastdepCXX_TRUE$ac_delim
am__fastdepCXX_FALSE!$am__fastdepCXX_FALSE$ac_delim am__fastdepCXX_FALSE!$am__fastdepCXX_FALSE$ac_delim
CXXCPP!$CXXCPP$ac_delim CXXCPP!$CXXCPP$ac_delim
F77!$F77$ac_delim F77!$F77$ac_delim
@ -21483,7 +21555,7 @@ LIBOBJS!$LIBOBJS$ac_delim
LTLIBOBJS!$LTLIBOBJS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim
_ACEOF _ACEOF
if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 8; then if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 12; then
break break
elif $ac_last_try; then elif $ac_last_try; then
{ { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
@ -21710,6 +21782,11 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
[\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
*) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
esac esac
ac_MKDIR_P=$MKDIR_P
case $MKDIR_P in
[\\/$]* | ?:[\\/]* ) ;;
*/*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;;
esac
_ACEOF _ACEOF
cat >>$CONFIG_STATUS <<\_ACEOF cat >>$CONFIG_STATUS <<\_ACEOF
@ -21763,6 +21840,7 @@ s&@builddir@&$ac_builddir&;t t
s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t
s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
s&@INSTALL@&$ac_INSTALL&;t t s&@INSTALL@&$ac_INSTALL&;t t
s&@MKDIR_P@&$ac_MKDIR_P&;t t
$ac_datarootdir_hack $ac_datarootdir_hack
" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out " $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out
@ -21878,21 +21956,22 @@ echo "$as_me: $ac_file is unchanged" >&6;}
fi fi
rm -f "$tmp/out12" rm -f "$tmp/out12"
# Compute $ac_file's index in $config_headers. # Compute $ac_file's index in $config_headers.
_am_arg=$ac_file
_am_stamp_count=1 _am_stamp_count=1
for _am_header in $config_headers :; do for _am_header in $config_headers :; do
case $_am_header in case $_am_header in
$ac_file | $ac_file:* ) $_am_arg | $_am_arg:* )
break ;; break ;;
* ) * )
_am_stamp_count=`expr $_am_stamp_count + 1` ;; _am_stamp_count=`expr $_am_stamp_count + 1` ;;
esac esac
done done
echo "timestamp for $ac_file" >`$as_dirname -- $ac_file || echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" ||
$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X$ac_file : 'X\(//\)[^/]' \| \ X"$_am_arg" : 'X\(//\)[^/]' \| \
X$ac_file : 'X\(//\)$' \| \ X"$_am_arg" : 'X\(//\)$' \| \
X$ac_file : 'X\(/\)' \| . 2>/dev/null || X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
echo X$ac_file | echo X"$_am_arg" |
sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
s//\1/ s//\1/
q q
@ -21927,8 +22006,9 @@ echo "$as_me: executing $ac_file commands" >&6;}
# some people rename them; so instead we look at the file content. # some people rename them; so instead we look at the file content.
# Grep'ing the first line is not enough: some people post-process # Grep'ing the first line is not enough: some people post-process
# each Makefile.in and add a new line on top of each file to say so. # each Makefile.in and add a new line on top of each file to say so.
# So let's grep whole file. # Grep'ing the whole file is not good either: AIX grep has a line
if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then # limit of 2048, but all sed's we know have understand at least 4000.
if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then
dirpart=`$as_dirname -- "$mf" || dirpart=`$as_dirname -- "$mf" ||
$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
X"$mf" : 'X\(//\)[^/]' \| \ X"$mf" : 'X\(//\)[^/]' \| \
@ -21955,27 +22035,21 @@ echo X"$mf" |
else else
continue continue
fi fi
grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue # Extract the definition of DEPDIR, am__include, and am__quote
# Extract the definition of DEP_FILES from the Makefile without # from the Makefile without running `make'.
# running `make'. DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
test -z "$DEPDIR" && continue test -z "$DEPDIR" && continue
am__include=`sed -n 's/^am__include = //p' < "$mf"`
test -z "am__include" && continue
am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
# When using ansi2knr, U may be empty or an underscore; expand it # When using ansi2knr, U may be empty or an underscore; expand it
U=`sed -n -e '/^U = / s///p' < "$mf"` U=`sed -n 's/^U = //p' < "$mf"`
test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR" # Find all dependency output files, they are included files with
# We invoke sed twice because it is the simplest approach to # $(DEPDIR) in their names. We invoke sed twice because it is the
# changing $(DEPDIR) to its actual value in the expansion. # simplest approach to changing $(DEPDIR) to its actual value in the
for file in `sed -n -e ' # expansion.
/^DEP_FILES = .*\\\\$/ { for file in `sed -n "
s/^DEP_FILES = // s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
:loop
s/\\\\$//
p
n
/\\\\$/ b loop
p
}
/^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
# Make sure the directory exists. # Make sure the directory exists.
test -f "$dirpart/$file" && continue test -f "$dirpart/$file" && continue

2
deps/libev/configure.ac

@ -1,7 +1,7 @@
AC_INIT AC_INIT
AC_CONFIG_SRCDIR([ev_epoll.c]) AC_CONFIG_SRCDIR([ev_epoll.c])
AM_INIT_AUTOMAKE(libev,3.7) dnl also update ev.h! AM_INIT_AUTOMAKE(libev,3.8) dnl also update ev.h!
AC_CONFIG_HEADERS([config.h]) AC_CONFIG_HEADERS([config.h])
AM_MAINTAINER_MODE AM_MAINTAINER_MODE

94
deps/libev/ev.3

@ -124,7 +124,7 @@
.\" ======================================================================== .\" ========================================================================
.\" .\"
.IX Title "LIBEV 3" .IX Title "LIBEV 3"
.TH LIBEV 3 "2009-07-15" "libev-3.7" "libev - high performance full featured event loop" .TH LIBEV 3 "2009-07-27" "libev-3.8" "libev - high performance full featured event loop"
.\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents. .\" way too many mistakes in technical documents.
.if n .ad l .if n .ad l
@ -229,13 +229,14 @@ watcher.
Libev supports \f(CW\*(C`select\*(C'\fR, \f(CW\*(C`poll\*(C'\fR, the Linux-specific \f(CW\*(C`epoll\*(C'\fR, the Libev supports \f(CW\*(C`select\*(C'\fR, \f(CW\*(C`poll\*(C'\fR, the Linux-specific \f(CW\*(C`epoll\*(C'\fR, the
BSD-specific \f(CW\*(C`kqueue\*(C'\fR and the Solaris-specific event port mechanisms BSD-specific \f(CW\*(C`kqueue\*(C'\fR and the Solaris-specific event port mechanisms
for file descriptor events (\f(CW\*(C`ev_io\*(C'\fR), the Linux \f(CW\*(C`inotify\*(C'\fR interface for file descriptor events (\f(CW\*(C`ev_io\*(C'\fR), the Linux \f(CW\*(C`inotify\*(C'\fR interface
(for \f(CW\*(C`ev_stat\*(C'\fR), relative timers (\f(CW\*(C`ev_timer\*(C'\fR), absolute timers (for \f(CW\*(C`ev_stat\*(C'\fR), Linux eventfd/signalfd (for faster and cleaner
with customised rescheduling (\f(CW\*(C`ev_periodic\*(C'\fR), synchronous signals inter-thread wakeup (\f(CW\*(C`ev_async\*(C'\fR)/signal handling (\f(CW\*(C`ev_signal\*(C'\fR)) relative
(\f(CW\*(C`ev_signal\*(C'\fR), process status change events (\f(CW\*(C`ev_child\*(C'\fR), and event timers (\f(CW\*(C`ev_timer\*(C'\fR), absolute timers with customised rescheduling
watchers dealing with the event loop mechanism itself (\f(CW\*(C`ev_idle\*(C'\fR, (\f(CW\*(C`ev_periodic\*(C'\fR), synchronous signals (\f(CW\*(C`ev_signal\*(C'\fR), process status
\&\f(CW\*(C`ev_embed\*(C'\fR, \f(CW\*(C`ev_prepare\*(C'\fR and \f(CW\*(C`ev_check\*(C'\fR watchers) as well as change events (\f(CW\*(C`ev_child\*(C'\fR), and event watchers dealing with the event
file watchers (\f(CW\*(C`ev_stat\*(C'\fR) and even limited support for fork events loop mechanism itself (\f(CW\*(C`ev_idle\*(C'\fR, \f(CW\*(C`ev_embed\*(C'\fR, \f(CW\*(C`ev_prepare\*(C'\fR and
(\f(CW\*(C`ev_fork\*(C'\fR). \&\f(CW\*(C`ev_check\*(C'\fR watchers) as well as file watchers (\f(CW\*(C`ev_stat\*(C'\fR) and even
limited support for fork events (\f(CW\*(C`ev_fork\*(C'\fR).
.PP .PP
It also is quite fast (see this It also is quite fast (see this
<benchmark> comparing it to libevent <benchmark> comparing it to libevent
@ -480,6 +481,21 @@ flag.
.Sp .Sp
This flag setting cannot be overridden or specified in the \f(CW\*(C`LIBEV_FLAGS\*(C'\fR This flag setting cannot be overridden or specified in the \f(CW\*(C`LIBEV_FLAGS\*(C'\fR
environment variable. environment variable.
.ie n .IP """EVFLAG_NOINOTIFY""" 4
.el .IP "\f(CWEVFLAG_NOINOTIFY\fR" 4
.IX Item "EVFLAG_NOINOTIFY"
When this flag is specified, then libev will not attempt to use the
\&\fIinotify\fR \s-1API\s0 for it's \f(CW\*(C`ev_stat\*(C'\fR watchers. Apart from debugging and
testing, this flag can be useful to conserve inotify file descriptors, as
otherwise each loop using \f(CW\*(C`ev_stat\*(C'\fR watchers consumes one inotify handle.
.ie n .IP """EVFLAG_NOSIGNALFD""" 4
.el .IP "\f(CWEVFLAG_NOSIGNALFD\fR" 4
.IX Item "EVFLAG_NOSIGNALFD"
When this flag is specified, then libev will not attempt to use the
\&\fIsignalfd\fR \s-1API\s0 for it's \f(CW\*(C`ev_signal\*(C'\fR (and \f(CW\*(C`ev_child\*(C'\fR) watchers. This is
probably only useful to work around any bugs in libev. Consequently, this
flag might go away once the signalfd functionality is considered stable,
so it's useful mostly in environment variables and not in program code.
.ie n .IP """EVBACKEND_SELECT"" (value 1, portable select backend)" 4 .ie n .IP """EVBACKEND_SELECT"" (value 1, portable select backend)" 4
.el .IP "\f(CWEVBACKEND_SELECT\fR (value 1, portable select backend)" 4 .el .IP "\f(CWEVBACKEND_SELECT\fR (value 1, portable select backend)" 4
.IX Item "EVBACKEND_SELECT (value 1, portable select backend)" .IX Item "EVBACKEND_SELECT (value 1, portable select backend)"
@ -637,9 +653,10 @@ It is definitely not recommended to use this flag.
.RE .RE
.RS 4 .RS 4
.Sp .Sp
If one or more of these are or'ed into the flags value, then only these If one or more of the backend flags are or'ed into the flags value,
backends will be tried (in the reverse order as listed here). If none are then only these backends will be tried (in the reverse order as listed
specified, all backends in \f(CW\*(C`ev_recommended_backends ()\*(C'\fR will be tried. here). If none are specified, all backends in \f(CW\*(C`ev_recommended_backends
()\*(C'\fR will be tried.
.Sp .Sp
Example: This is the most typical usage. Example: This is the most typical usage.
.Sp .Sp
@ -2219,22 +2236,31 @@ signal one or more times. Even though signals are very asynchronous, libev
will try it's best to deliver signals synchronously, i.e. as part of the will try it's best to deliver signals synchronously, i.e. as part of the
normal event processing, like any other event. normal event processing, like any other event.
.PP .PP
If you want signals asynchronously, just use \f(CW\*(C`sigaction\*(C'\fR as you would If you want signals to be delivered truly asynchronously, just use
do without libev and forget about sharing the signal. You can even use \&\f(CW\*(C`sigaction\*(C'\fR as you would do without libev and forget about sharing
\&\f(CW\*(C`ev_async\*(C'\fR from a signal handler to synchronously wake up an event loop. the signal. You can even use \f(CW\*(C`ev_async\*(C'\fR from a signal handler to
synchronously wake up an event loop.
.PP .PP
You can configure as many watchers as you like per signal. Only when the You can configure as many watchers as you like for the same signal, but
first watcher gets started will libev actually register a signal handler only within the same loop, i.e. you can watch for \f(CW\*(C`SIGINT\*(C'\fR in your
default loop and for \f(CW\*(C`SIGIO\*(C'\fR in another loop, but you cannot watch for
\&\f(CW\*(C`SIGINT\*(C'\fR in both the default loop and another loop at the same time. At
the moment, \f(CW\*(C`SIGCHLD\*(C'\fR is permanently tied to the default loop.
.PP
When the first watcher gets started will libev actually register something
with the kernel (thus it coexists with your own signal handlers as long as with the kernel (thus it coexists with your own signal handlers as long as
you don't register any with libev for the same signal). Similarly, when you don't register any with libev for the same signal).
the last signal watcher for a signal is stopped, libev will reset the .PP
signal handler to \s-1SIG_DFL\s0 (regardless of what it was set to before). Both the signal mask state (\f(CW\*(C`sigprocmask\*(C'\fR) and the signal handler state
(\f(CW\*(C`sigaction\*(C'\fR) are unspecified after starting a signal watcher (and after
sotpping it again), that is, libev might or might not block the signal,
and might or might not set or restore the installed signal handler.
.PP .PP
If possible and supported, libev will install its handlers with If possible and supported, libev will install its handlers with
\&\f(CW\*(C`SA_RESTART\*(C'\fR behaviour enabled, so system calls should not be unduly \&\f(CW\*(C`SA_RESTART\*(C'\fR (or equivalent) behaviour enabled, so system calls should
interrupted. If you have a problem with system calls getting interrupted by not be unduly interrupted. If you have a problem with system calls getting
signals you can block all signals in an \f(CW\*(C`ev_check\*(C'\fR watcher and unblock interrupted by signals you can block all signals in an \f(CW\*(C`ev_check\*(C'\fR watcher
them in an \f(CW\*(C`ev_prepare\*(C'\fR watcher. and unblock them in an \f(CW\*(C`ev_prepare\*(C'\fR watcher.
.PP .PP
\fIWatcher-Specific Functions and Data Members\fR \fIWatcher-Specific Functions and Data Members\fR
.IX Subsection "Watcher-Specific Functions and Data Members" .IX Subsection "Watcher-Specific Functions and Data Members"
@ -2289,8 +2315,8 @@ libev)
.IX Subsection "Process Interaction" .IX Subsection "Process Interaction"
.PP .PP
Libev grabs \f(CW\*(C`SIGCHLD\*(C'\fR as soon as the default event loop is Libev grabs \f(CW\*(C`SIGCHLD\*(C'\fR as soon as the default event loop is
initialised. This is necessary to guarantee proper behaviour even if initialised. This is necessary to guarantee proper behaviour even if the
the first child watcher is started after the child exits. The occurrence first child watcher is started after the child exits. The occurrence
of \f(CW\*(C`SIGCHLD\*(C'\fR is recorded asynchronously, but child reaping is done of \f(CW\*(C`SIGCHLD\*(C'\fR is recorded asynchronously, but child reaping is done
synchronously as part of the event loop processing. Libev always reaps all synchronously as part of the event loop processing. Libev always reaps all
children, even ones not watched. children, even ones not watched.
@ -2312,7 +2338,8 @@ that, so other libev users can use \f(CW\*(C`ev_child\*(C'\fR watchers freely.
Currently, the child watcher never gets stopped, even when the Currently, the child watcher never gets stopped, even when the
child terminates, so normally one needs to stop the watcher in the child terminates, so normally one needs to stop the watcher in the
callback. Future versions of libev might stop the watcher automatically callback. Future versions of libev might stop the watcher automatically
when a child exit is detected. when a child exit is detected (calling \f(CW\*(C`ev_child_stop\*(C'\fR twice is not a
problem).
.PP .PP
\fIWatcher-Specific Functions and Data Members\fR \fIWatcher-Specific Functions and Data Members\fR
.IX Subsection "Watcher-Specific Functions and Data Members" .IX Subsection "Watcher-Specific Functions and Data Members"
@ -3488,6 +3515,11 @@ be found at <http://proj.llucax.com.ar/wiki/evd>.
.IX Item "Ocaml" .IX Item "Ocaml"
Erkki Seppala has written Ocaml bindings for libev, to be found at Erkki Seppala has written Ocaml bindings for libev, to be found at
<http://modeemi.cs.tut.fi/~flux/software/ocaml\-ev/>. <http://modeemi.cs.tut.fi/~flux/software/ocaml\-ev/>.
.IP "Lua" 4
.IX Item "Lua"
Brian Maher has written a partial interface to libev
for lua (only \f(CW\*(C`ev_io\*(C'\fR and \f(CW\*(C`ev_timer\*(C'\fR), to be found at
<http://github.com/brimworks/lua\-ev>.
.SH "MACRO MAGIC" .SH "MACRO MAGIC"
.IX Header "MACRO MAGIC" .IX Header "MACRO MAGIC"
Libev can be compiled with a variety of options, the most fundamental Libev can be compiled with a variety of options, the most fundamental
@ -3673,7 +3705,7 @@ implementations for some libevent functions (such as logging, which is not
supported). It will also not define any of the structs usually found in supported). It will also not define any of the structs usually found in
\&\fIevent.h\fR that are not directly supported by the libev core alone. \&\fIevent.h\fR that are not directly supported by the libev core alone.
.Sp .Sp
In stanbdalone mode, libev will still try to automatically deduce the In standalone mode, libev will still try to automatically deduce the
configuration, but has to be more conservative. configuration, but has to be more conservative.
.IP "\s-1EV_USE_MONOTONIC\s0" 4 .IP "\s-1EV_USE_MONOTONIC\s0" 4
.IX Item "EV_USE_MONOTONIC" .IX Item "EV_USE_MONOTONIC"
@ -3882,6 +3914,14 @@ Defining \f(CW\*(C`EV_MINIMAL\*(C'\fR to \f(CW2\fR will additionally reduce the
provide a bare-bones event library. See \f(CW\*(C`ev.h\*(C'\fR for details on what parts provide a bare-bones event library. See \f(CW\*(C`ev.h\*(C'\fR for details on what parts
of the \s-1API\s0 are still available, and do not complain if this subset changes of the \s-1API\s0 are still available, and do not complain if this subset changes
over time. over time.
.IP "\s-1EV_NSIG\s0" 4
.IX Item "EV_NSIG"
The highest supported signal number, +1 (or, the number of
signals): Normally, libev tries to deduce the maximum number of signals
automatically, but sometimes this fails, in which case it can be
specified. Also, using a lower number than detected (\f(CW32\fR should be
good for about any system in existance) can save some memory, as libev
statically allocates some 12\-24 bytes per signal number.
.IP "\s-1EV_PID_HASHSIZE\s0" 4 .IP "\s-1EV_PID_HASHSIZE\s0" 4
.IX Item "EV_PID_HASHSIZE" .IX Item "EV_PID_HASHSIZE"
\&\f(CW\*(C`ev_child\*(C'\fR watchers use a small hash table to distribute workload by \&\f(CW\*(C`ev_child\*(C'\fR watchers use a small hash table to distribute workload by

314
deps/libev/ev.c

@ -135,6 +135,14 @@ extern "C" {
# endif # endif
# endif # endif
# ifndef EV_USE_SIGNALFD
# if HAVE_SIGNALFD && HAVE_SYS_SIGNALFD_H
# define EV_USE_SIGNALFD 1
# else
# define EV_USE_SIGNALFD 0
# endif
# endif
# ifndef EV_USE_EVENTFD # ifndef EV_USE_EVENTFD
# if HAVE_EVENTFD # if HAVE_EVENTFD
# define EV_USE_EVENTFD 1 # define EV_USE_EVENTFD 1
@ -180,6 +188,33 @@ extern "C" {
/* this block tries to deduce configuration from header-defined symbols and defaults */ /* this block tries to deduce configuration from header-defined symbols and defaults */
/* try to deduce the maximum number of signals on this platform */
#if defined (EV_NSIG)
/* use what's provided */
#elif defined (NSIG)
# define EV_NSIG (NSIG)
#elif defined(_NSIG)
# define EV_NSIG (_NSIG)
#elif defined (SIGMAX)
# define EV_NSIG (SIGMAX+1)
#elif defined (SIG_MAX)
# define EV_NSIG (SIG_MAX+1)
#elif defined (_SIG_MAX)
# define EV_NSIG (_SIG_MAX+1)
#elif defined (MAXSIG)
# define EV_NSIG (MAXSIG+1)
#elif defined (MAX_SIG)
# define EV_NSIG (MAX_SIG+1)
#elif defined (SIGARRAYSIZE)
# define EV_NSIG SIGARRAYSIZE /* Assume ary[SIGARRAYSIZE] */
#elif defined (_sys_nsig)
# define EV_NSIG (_sys_nsig) /* Solaris 2.5 */
#else
# error "unable to find value for NSIG, please report"
/* to make it compile regardless, just remove the above line */
# define EV_NSIG 65
#endif
#ifndef EV_USE_CLOCK_SYSCALL #ifndef EV_USE_CLOCK_SYSCALL
# if __linux && __GLIBC__ >= 2 # if __linux && __GLIBC__ >= 2
# define EV_USE_CLOCK_SYSCALL 1 # define EV_USE_CLOCK_SYSCALL 1
@ -268,6 +303,14 @@ extern "C" {
# endif # endif
#endif #endif
#ifndef EV_USE_SIGNALFD
# if __linux && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 9))
# define EV_USE_SIGNALFD 1
# else
# define EV_USE_SIGNALFD 0
# endif
#endif
#if 0 /* debugging */ #if 0 /* debugging */
# define EV_VERIFY 3 # define EV_VERIFY 3
# define EV_USE_4HEAP 1 # define EV_USE_4HEAP 1
@ -341,6 +384,16 @@ extern "C" {
#if EV_USE_EVENTFD #if EV_USE_EVENTFD
/* our minimum requirement is glibc 2.7 which has the stub, but not the header */ /* our minimum requirement is glibc 2.7 which has the stub, but not the header */
# include <stdint.h> # include <stdint.h>
# ifndef EFD_NONBLOCK
# define EFD_NONBLOCK O_NONBLOCK
# endif
# ifndef EFD_CLOEXEC
# ifdef O_CLOEXEC
# define EFD_CLOEXEC O_CLOEXEC
# else
# define EFD_CLOEXEC 02000000
# endif
# endif
# ifdef __cplusplus # ifdef __cplusplus
extern "C" { extern "C" {
# endif # endif
@ -350,6 +403,10 @@ int eventfd (unsigned int initval, int flags);
# endif # endif
#endif #endif
#if EV_USE_SIGNALFD
# include <sys/signalfd.h>
#endif
/**/ /**/
#if EV_VERIFY >= 3 #if EV_VERIFY >= 3
@ -906,7 +963,7 @@ fd_enomem (EV_P)
if (anfds [fd].events) if (anfds [fd].events)
{ {
fd_kill (EV_A_ fd); fd_kill (EV_A_ fd);
return; break;
} }
} }
@ -1006,7 +1063,7 @@ downheap (ANHE *heap, int N, int k)
{ {
int c = k << 1; int c = k << 1;
if (c > N + HEAP0 - 1) if (c >= N + HEAP0)
break; break;
c += c + 1 < N + HEAP0 && ANHE_at (heap [c]) > ANHE_at (heap [c + 1]) c += c + 1 < N + HEAP0 && ANHE_at (heap [c]) > ANHE_at (heap [c + 1])
@ -1052,7 +1109,7 @@ upheap (ANHE *heap, int k)
inline_size void inline_size void
adjustheap (ANHE *heap, int N, int k) adjustheap (ANHE *heap, int N, int k)
{ {
if (k > HEAP0 && ANHE_at (heap [HPARENT (k)]) >= ANHE_at (heap [k])) if (k > HEAP0 && ANHE_at (heap [k]) <= ANHE_at (heap [HPARENT (k)]))
upheap (heap, k); upheap (heap, k);
else else
downheap (heap, N, k); downheap (heap, N, k);
@ -1075,14 +1132,14 @@ reheap (ANHE *heap, int N)
/* associate signal watchers to a signal signal */ /* associate signal watchers to a signal signal */
typedef struct typedef struct
{ {
EV_ATOMIC_T pending;
#if EV_MULTIPLICITY
EV_P;
#endif
WL head; WL head;
EV_ATOMIC_T gotsig;
} ANSIG; } ANSIG;
static ANSIG *signals; static ANSIG signals [EV_NSIG - 1];
static int signalmax;
static EV_ATOMIC_T gotsig;
/*****************************************************************************/ /*****************************************************************************/
@ -1106,10 +1163,14 @@ evpipe_init (EV_P)
if (!ev_is_active (&pipe_w)) if (!ev_is_active (&pipe_w))
{ {
#if EV_USE_EVENTFD #if EV_USE_EVENTFD
if ((evfd = eventfd (0, 0)) >= 0) evfd = eventfd (0, EFD_NONBLOCK | EFD_CLOEXEC);
if (evfd < 0 && errno == EINVAL)
evfd = eventfd (0, 0);
if (evfd >= 0)
{ {
evpipe [0] = -1; evpipe [0] = -1;
fd_intern (evfd); fd_intern (evfd); /* doing it twice doesn't hurt */
ev_io_set (&pipe_w, evfd, EV_READ); ev_io_set (&pipe_w, evfd, EV_READ);
} }
else else
@ -1156,6 +1217,8 @@ evpipe_write (EV_P_ EV_ATOMIC_T *flag)
static void static void
pipecb (EV_P_ ev_io *iow, int revents) pipecb (EV_P_ ev_io *iow, int revents)
{ {
int i;
#if EV_USE_EVENTFD #if EV_USE_EVENTFD
if (evfd >= 0) if (evfd >= 0)
{ {
@ -1169,21 +1232,19 @@ pipecb (EV_P_ ev_io *iow, int revents)
read (evpipe [0], &dummy, 1); read (evpipe [0], &dummy, 1);
} }
if (gotsig && ev_is_default_loop (EV_A)) if (sig_pending)
{ {
int signum; sig_pending = 0;
gotsig = 0;
for (signum = signalmax; signum--; ) for (i = EV_NSIG - 1; i--; )
if (signals [signum].gotsig) if (expect_false (signals [i].pending))
ev_feed_signal_event (EV_A_ signum + 1); ev_feed_signal_event (EV_A_ i + 1);
} }
#if EV_ASYNC_ENABLE #if EV_ASYNC_ENABLE
if (gotasync) if (async_pending)
{ {
int i; async_pending = 0;
gotasync = 0;
for (i = asynccnt; i--; ) for (i = asynccnt; i--; )
if (asyncs [i]->sent) if (asyncs [i]->sent)
@ -1201,15 +1262,15 @@ static void
ev_sighandler (int signum) ev_sighandler (int signum)
{ {
#if EV_MULTIPLICITY #if EV_MULTIPLICITY
struct ev_loop *loop = &default_loop_struct; EV_P = signals [signum - 1].loop;
#endif #endif
#if _WIN32 #if _WIN32
signal (signum, ev_sighandler); signal (signum, ev_sighandler);
#endif #endif
signals [signum - 1].gotsig = 1; signals [signum - 1].pending = 1;
evpipe_write (EV_A_ &gotsig); evpipe_write (EV_A_ &sig_pending);
} }
void noinline void noinline
@ -1217,21 +1278,45 @@ ev_feed_signal_event (EV_P_ int signum)
{ {
WL w; WL w;
#if EV_MULTIPLICITY if (expect_false (signum <= 0 || signum > EV_NSIG))
assert (("libev: feeding signal events is only supported in the default loop", loop == ev_default_loop_ptr)); return;
#endif
--signum; --signum;
if (signum < 0 || signum >= signalmax) #if EV_MULTIPLICITY
/* it is permissible to try to feed a signal to the wrong loop */
/* or, likely more useful, feeding a signal nobody is waiting for */
if (expect_false (signals [signum].loop != EV_A))
return; return;
#endif
signals [signum].gotsig = 0; signals [signum].pending = 0;
for (w = signals [signum].head; w; w = w->next) for (w = signals [signum].head; w; w = w->next)
ev_feed_event (EV_A_ (W)w, EV_SIGNAL); ev_feed_event (EV_A_ (W)w, EV_SIGNAL);
} }
#if EV_USE_SIGNALFD
static void
sigfdcb (EV_P_ ev_io *iow, int revents)
{
struct signalfd_siginfo si[2], *sip; /* these structs are big */
for (;;)
{
ssize_t res = read (sigfd, si, sizeof (si));
/* not ISO-C, as res might be -1, but works with SuS */
for (sip = si; (char *)sip < (char *)si + res; ++sip)
ev_feed_signal_event (EV_A_ sip->ssi_signo);
if (res < (ssize_t)sizeof (si))
break;
}
}
#endif
/*****************************************************************************/ /*****************************************************************************/
static WL childs [EV_PID_HASHSIZE]; static WL childs [EV_PID_HASHSIZE];
@ -1460,6 +1545,17 @@ loop_init (EV_P_ unsigned int flags)
} }
#endif #endif
/* pid check not overridable via env */
#ifndef _WIN32
if (flags & EVFLAG_FORKCHECK)
curpid = getpid ();
#endif
if (!(flags & EVFLAG_NOENV)
&& !enable_secure ()
&& getenv ("LIBEV_FLAGS"))
flags = atoi (getenv ("LIBEV_FLAGS"));
ev_rt_now = ev_time (); ev_rt_now = ev_time ();
mn_now = get_clock (); mn_now = get_clock ();
now_floor = mn_now; now_floor = mn_now;
@ -1472,22 +1568,17 @@ loop_init (EV_P_ unsigned int flags)
timeout_blocktime = 0.; timeout_blocktime = 0.;
backend = 0; backend = 0;
backend_fd = -1; backend_fd = -1;
gotasync = 0; sig_pending = 0;
#if EV_ASYNC_ENABLE
async_pending = 0;
#endif
#if EV_USE_INOTIFY #if EV_USE_INOTIFY
fs_fd = -2; fs_fd = flags & EVFLAG_NOINOTIFY ? -1 : -2;
#endif #endif
#if EV_USE_SIGNALFD
/* pid check not overridable via env */ sigfd = flags & EVFLAG_NOSIGFD ? -1 : -2;
#ifndef _WIN32
if (flags & EVFLAG_FORKCHECK)
curpid = getpid ();
#endif #endif
if (!(flags & EVFLAG_NOENV)
&& !enable_secure ()
&& getenv ("LIBEV_FLAGS"))
flags = atoi (getenv ("LIBEV_FLAGS"));
if (!(flags & 0x0000ffffU)) if (!(flags & 0x0000ffffU))
flags |= ev_recommended_backends (); flags |= ev_recommended_backends ();
@ -1522,8 +1613,8 @@ loop_destroy (EV_P)
if (ev_is_active (&pipe_w)) if (ev_is_active (&pipe_w))
{ {
ev_ref (EV_A); /* signal watcher */ /*ev_ref (EV_A);*/
ev_io_stop (EV_A_ &pipe_w); /*ev_io_stop (EV_A_ &pipe_w);*/
#if EV_USE_EVENTFD #if EV_USE_EVENTFD
if (evfd >= 0) if (evfd >= 0)
@ -1537,6 +1628,16 @@ loop_destroy (EV_P)
} }
} }
#if EV_USE_SIGNALFD
if (ev_is_active (&sigfd_w))
{
/*ev_ref (EV_A);*/
/*ev_io_stop (EV_A_ &sigfd_w);*/
close (sigfd);
}
#endif
#if EV_USE_INOTIFY #if EV_USE_INOTIFY
if (fs_fd >= 0) if (fs_fd >= 0)
close (fs_fd); close (fs_fd);
@ -1569,7 +1670,7 @@ loop_destroy (EV_P)
#endif #endif
} }
ev_free (anfds); anfdmax = 0; ev_free (anfds); anfds = 0; anfdmax = 0;
/* have to use the microsoft-never-gets-it-right macro */ /* have to use the microsoft-never-gets-it-right macro */
array_free (rfeed, EMPTY); array_free (rfeed, EMPTY);
@ -1614,9 +1715,9 @@ loop_fork (EV_P)
{ {
/* this "locks" the handlers against writing to the pipe */ /* this "locks" the handlers against writing to the pipe */
/* while we modify the fd vars */ /* while we modify the fd vars */
gotsig = 1; sig_pending = 1;
#if EV_ASYNC_ENABLE #if EV_ASYNC_ENABLE
gotasync = 1; async_pending = 1;
#endif #endif
ev_ref (EV_A); ev_ref (EV_A);
@ -1646,14 +1747,13 @@ loop_fork (EV_P)
struct ev_loop * struct ev_loop *
ev_loop_new (unsigned int flags) ev_loop_new (unsigned int flags)
{ {
struct ev_loop *loop = (struct ev_loop *)ev_malloc (sizeof (struct ev_loop)); EV_P = (struct ev_loop *)ev_malloc (sizeof (struct ev_loop));
memset (loop, 0, sizeof (struct ev_loop));
memset (EV_A, 0, sizeof (struct ev_loop));
loop_init (EV_A_ flags); loop_init (EV_A_ flags);
if (ev_backend (EV_A)) if (ev_backend (EV_A))
return loop; return EV_A;
return 0; return 0;
} }
@ -1767,7 +1867,7 @@ ev_loop_verify (EV_P)
# if 0 # if 0
for (w = (ev_child *)childs [chain & (EV_PID_HASHSIZE - 1)]; w; w = (ev_child *)((WL)w)->next) for (w = (ev_child *)childs [chain & (EV_PID_HASHSIZE - 1)]; w; w = (ev_child *)((WL)w)->next)
for (signum = signalmax; signum--; ) if (signals [signum].gotsig) for (signum = EV_NSIG; signum--; ) if (signals [signum].pending)
# endif # endif
#endif #endif
} }
@ -1784,7 +1884,7 @@ ev_default_loop (unsigned int flags)
if (!ev_default_loop_ptr) if (!ev_default_loop_ptr)
{ {
#if EV_MULTIPLICITY #if EV_MULTIPLICITY
struct ev_loop *loop = ev_default_loop_ptr = &default_loop_struct; EV_P = ev_default_loop_ptr = &default_loop_struct;
#else #else
ev_default_loop_ptr = 1; ev_default_loop_ptr = 1;
#endif #endif
@ -1811,7 +1911,7 @@ void
ev_default_destroy (void) ev_default_destroy (void)
{ {
#if EV_MULTIPLICITY #if EV_MULTIPLICITY
struct ev_loop *loop = ev_default_loop_ptr; EV_P = ev_default_loop_ptr;
#endif #endif
ev_default_loop_ptr = 0; ev_default_loop_ptr = 0;
@ -1828,7 +1928,7 @@ void
ev_default_fork (void) ev_default_fork (void)
{ {
#if EV_MULTIPLICITY #if EV_MULTIPLICITY
struct ev_loop *loop = ev_default_loop_ptr; EV_P = ev_default_loop_ptr;
#endif #endif
postfork = 1; /* must be in line with ev_loop_fork */ postfork = 1; /* must be in line with ev_loop_fork */
@ -2304,10 +2404,10 @@ wlist_del (WL *head, WL elem)
{ {
while (*head) while (*head)
{ {
if (*head == elem) if (expect_true (*head == elem))
{ {
*head = elem->next; *head = elem->next;
return; break;
} }
head = &(*head)->next; head = &(*head)->next;
@ -2571,47 +2671,75 @@ ev_periodic_again (EV_P_ ev_periodic *w)
void noinline void noinline
ev_signal_start (EV_P_ ev_signal *w) ev_signal_start (EV_P_ ev_signal *w)
{ {
#if EV_MULTIPLICITY
assert (("libev: signal watchers are only supported in the default loop", loop == ev_default_loop_ptr));
#endif
if (expect_false (ev_is_active (w))) if (expect_false (ev_is_active (w)))
return; return;
assert (("libev: ev_signal_start called with illegal signal number", w->signum > 0)); assert (("libev: ev_signal_start called with illegal signal number", w->signum > 0 && w->signum < EV_NSIG));
evpipe_init (EV_A); #if EV_MULTIPLICITY
assert (("libev: a signal must not be attached to two different loops",
!signals [w->signum - 1].loop || signals [w->signum - 1].loop == loop));
signals [w->signum - 1].loop = EV_A;
#endif
EV_FREQUENT_CHECK; EV_FREQUENT_CHECK;
{ #if EV_USE_SIGNALFD
#ifndef _WIN32 if (sigfd == -2)
sigset_t full, prev; {
sigfillset (&full); sigfd = signalfd (-1, &sigfd_set, SFD_NONBLOCK | SFD_CLOEXEC);
sigprocmask (SIG_SETMASK, &full, &prev); if (sigfd < 0 && errno == EINVAL)
#endif sigfd = signalfd (-1, &sigfd_set, 0); /* retry without flags */
array_needsize (ANSIG, signals, signalmax, w->signum, array_init_zero); if (sigfd >= 0)
{
fd_intern (sigfd); /* doing it twice will not hurt */
#ifndef _WIN32 sigemptyset (&sigfd_set);
sigprocmask (SIG_SETMASK, &prev, 0);
ev_io_init (&sigfd_w, sigfdcb, sigfd, EV_READ);
ev_set_priority (&sigfd_w, EV_MAXPRI);
ev_io_start (EV_A_ &sigfd_w);
ev_unref (EV_A); /* signalfd watcher should not keep loop alive */
}
}
if (sigfd >= 0)
{
/* TODO: check .head */
sigaddset (&sigfd_set, w->signum);
sigprocmask (SIG_BLOCK, &sigfd_set, 0);
signalfd (sigfd, &sigfd_set, 0);
}
#endif #endif
}
ev_start (EV_A_ (W)w, 1); ev_start (EV_A_ (W)w, 1);
wlist_add (&signals [w->signum - 1].head, (WL)w); wlist_add (&signals [w->signum - 1].head, (WL)w);
if (!((WL)w)->next) if (!((WL)w)->next)
{ # if EV_USE_SIGNALFD
#if _WIN32 if (sigfd < 0) /*TODO*/
signal (w->signum, ev_sighandler); # endif
#else {
struct sigaction sa = { }; # if _WIN32
sa.sa_handler = ev_sighandler; signal (w->signum, ev_sighandler);
sigfillset (&sa.sa_mask); # else
sa.sa_flags = SA_RESTART; /* if restarting works we save one iteration */ struct sigaction sa;
sigaction (w->signum, &sa, 0);
evpipe_init (EV_A);
sa.sa_handler = ev_sighandler;
sigfillset (&sa.sa_mask);
sa.sa_flags = SA_RESTART; /* if restarting works we save one iteration */
sigaction (w->signum, &sa, 0);
sigemptyset (&sa.sa_mask);
sigaddset (&sa.sa_mask, w->signum);
sigprocmask (SIG_UNBLOCK, &sa.sa_mask, 0);
#endif #endif
} }
EV_FREQUENT_CHECK; EV_FREQUENT_CHECK;
} }
@ -2629,7 +2757,23 @@ ev_signal_stop (EV_P_ ev_signal *w)
ev_stop (EV_A_ (W)w); ev_stop (EV_A_ (W)w);
if (!signals [w->signum - 1].head) if (!signals [w->signum - 1].head)
signal (w->signum, SIG_DFL); {
#if EV_MULTIPLICITY
signals [w->signum - 1].loop = 0; /* unattach from signal */
#endif
#if EV_USE_SIGNALFD
if (sigfd >= 0)
{
sigprocmask (SIG_UNBLOCK, &sigfd_set, 0);//D
sigdelset (&sigfd_set, w->signum);
signalfd (sigfd, &sigfd_set, 0);
sigprocmask (SIG_BLOCK, &sigfd_set, 0);//D
/*TODO: maybe unblock signal? */
}
else
#endif
signal (w->signum, SIG_DFL);
}
EV_FREQUENT_CHECK; EV_FREQUENT_CHECK;
} }
@ -3119,7 +3263,7 @@ embed_prepare_cb (EV_P_ ev_prepare *prepare, int revents)
ev_embed *w = (ev_embed *)(((char *)prepare) - offsetof (ev_embed, prepare)); ev_embed *w = (ev_embed *)(((char *)prepare) - offsetof (ev_embed, prepare));
{ {
struct ev_loop *loop = w->other; EV_P = w->other;
while (fdchangecnt) while (fdchangecnt)
{ {
@ -3137,7 +3281,7 @@ embed_fork_cb (EV_P_ ev_fork *fork_w, int revents)
ev_embed_stop (EV_A_ w); ev_embed_stop (EV_A_ w);
{ {
struct ev_loop *loop = w->other; EV_P = w->other;
ev_loop_fork (EV_A); ev_loop_fork (EV_A);
ev_loop (EV_A_ EVLOOP_NONBLOCK); ev_loop (EV_A_ EVLOOP_NONBLOCK);
@ -3161,7 +3305,7 @@ ev_embed_start (EV_P_ ev_embed *w)
return; return;
{ {
struct ev_loop *loop = w->other; EV_P = w->other;
assert (("libev: loop to be embedded is not embeddable", backend & ev_embeddable_backends ())); assert (("libev: loop to be embedded is not embeddable", backend & ev_embeddable_backends ()));
ev_io_init (&w->io, embed_io_cb, backend_fd, EV_READ); ev_io_init (&w->io, embed_io_cb, backend_fd, EV_READ);
} }
@ -3283,7 +3427,7 @@ void
ev_async_send (EV_P_ ev_async *w) ev_async_send (EV_P_ ev_async *w)
{ {
w->sent = 1; w->sent = 1;
evpipe_write (EV_A_ &gotasync); evpipe_write (EV_A_ &async_pending);
} }
#endif #endif
@ -3442,7 +3586,7 @@ ev_walk (EV_P_ int types, void (*cb)(EV_P_ int type, void *w))
cb (EV_A_ EV_CHECK, checks [i]); cb (EV_A_ EV_CHECK, checks [i]);
if (types & EV_SIGNAL) if (types & EV_SIGNAL)
for (i = 0; i < signalmax; ++i) for (i = 0; i < EV_NSIG - 1; ++i)
for (wl = signals [i].head; wl; ) for (wl = signals [i].head; wl; )
{ {
wn = wl->next; wn = wl->next;

9
deps/libev/ev.h

@ -37,8 +37,8 @@
* either the BSD or the GPL. * either the BSD or the GPL.
*/ */
#ifndef EV_H__ #ifndef EV_H_
#define EV_H__ #define EV_H_
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
@ -163,7 +163,7 @@ struct ev_loop;
#endif #endif
#define EV_VERSION_MAJOR 3 #define EV_VERSION_MAJOR 3
#define EV_VERSION_MINOR 7 #define EV_VERSION_MINOR 8
#ifndef EV_CB_DECLARE #ifndef EV_CB_DECLARE
# define EV_CB_DECLARE(type) void (*cb)(EV_P_ struct type *w, int revents); # define EV_CB_DECLARE(type) void (*cb)(EV_P_ struct type *w, int revents);
@ -404,6 +404,9 @@ union ev_any_watcher
/* flag bits */ /* flag bits */
#define EVFLAG_NOENV 0x01000000U /* do NOT consult environment */ #define EVFLAG_NOENV 0x01000000U /* do NOT consult environment */
#define EVFLAG_FORKCHECK 0x02000000U /* check for a fork in each iteration */ #define EVFLAG_FORKCHECK 0x02000000U /* check for a fork in each iteration */
/* debugging/feature disable */
#define EVFLAG_NOINOTIFY 0x00100000U /* do not attempt to use inotify */
#define EVFLAG_NOSIGFD 0x00200000U /* do not attempt to use signalfd */
/* method bits to be ored together */ /* method bits to be ored together */
#define EVBACKEND_SELECT 0x00000001U /* about anywhere */ #define EVBACKEND_SELECT 0x00000001U /* about anywhere */
#define EVBACKEND_POLL 0x00000002U /* !win */ #define EVBACKEND_POLL 0x00000002U /* !win */

94
deps/libev/ev.pod

@ -100,13 +100,14 @@ watcher.
Libev supports C<select>, C<poll>, the Linux-specific C<epoll>, the Libev supports C<select>, C<poll>, the Linux-specific C<epoll>, the
BSD-specific C<kqueue> and the Solaris-specific event port mechanisms BSD-specific C<kqueue> and the Solaris-specific event port mechanisms
for file descriptor events (C<ev_io>), the Linux C<inotify> interface for file descriptor events (C<ev_io>), the Linux C<inotify> interface
(for C<ev_stat>), relative timers (C<ev_timer>), absolute timers (for C<ev_stat>), Linux eventfd/signalfd (for faster and cleaner
with customised rescheduling (C<ev_periodic>), synchronous signals inter-thread wakeup (C<ev_async>)/signal handling (C<ev_signal>)) relative
(C<ev_signal>), process status change events (C<ev_child>), and event timers (C<ev_timer>), absolute timers with customised rescheduling
watchers dealing with the event loop mechanism itself (C<ev_idle>, (C<ev_periodic>), synchronous signals (C<ev_signal>), process status
C<ev_embed>, C<ev_prepare> and C<ev_check> watchers) as well as change events (C<ev_child>), and event watchers dealing with the event
file watchers (C<ev_stat>) and even limited support for fork events loop mechanism itself (C<ev_idle>, C<ev_embed>, C<ev_prepare> and
(C<ev_fork>). C<ev_check> watchers) as well as file watchers (C<ev_stat>) and even
limited support for fork events (C<ev_fork>).
It also is quite fast (see this It also is quite fast (see this
L<benchmark|http://libev.schmorp.de/bench.html> comparing it to libevent L<benchmark|http://libev.schmorp.de/bench.html> comparing it to libevent
@ -364,6 +365,21 @@ flag.
This flag setting cannot be overridden or specified in the C<LIBEV_FLAGS> This flag setting cannot be overridden or specified in the C<LIBEV_FLAGS>
environment variable. environment variable.
=item C<EVFLAG_NOINOTIFY>
When this flag is specified, then libev will not attempt to use the
I<inotify> API for it's C<ev_stat> watchers. Apart from debugging and
testing, this flag can be useful to conserve inotify file descriptors, as
otherwise each loop using C<ev_stat> watchers consumes one inotify handle.
=item C<EVFLAG_NOSIGNALFD>
When this flag is specified, then libev will not attempt to use the
I<signalfd> API for it's C<ev_signal> (and C<ev_child>) watchers. This is
probably only useful to work around any bugs in libev. Consequently, this
flag might go away once the signalfd functionality is considered stable,
so it's useful mostly in environment variables and not in program code.
=item C<EVBACKEND_SELECT> (value 1, portable select backend) =item C<EVBACKEND_SELECT> (value 1, portable select backend)
This is your standard select(2) backend. Not I<completely> standard, as This is your standard select(2) backend. Not I<completely> standard, as
@ -520,9 +536,10 @@ It is definitely not recommended to use this flag.
=back =back
If one or more of these are or'ed into the flags value, then only these If one or more of the backend flags are or'ed into the flags value,
backends will be tried (in the reverse order as listed here). If none are then only these backends will be tried (in the reverse order as listed
specified, all backends in C<ev_recommended_backends ()> will be tried. here). If none are specified, all backends in C<ev_recommended_backends
()> will be tried.
Example: This is the most typical usage. Example: This is the most typical usage.
@ -2078,22 +2095,31 @@ signal one or more times. Even though signals are very asynchronous, libev
will try it's best to deliver signals synchronously, i.e. as part of the will try it's best to deliver signals synchronously, i.e. as part of the
normal event processing, like any other event. normal event processing, like any other event.
If you want signals asynchronously, just use C<sigaction> as you would If you want signals to be delivered truly asynchronously, just use
do without libev and forget about sharing the signal. You can even use C<sigaction> as you would do without libev and forget about sharing
C<ev_async> from a signal handler to synchronously wake up an event loop. the signal. You can even use C<ev_async> from a signal handler to
synchronously wake up an event loop.
You can configure as many watchers as you like for the same signal, but
only within the same loop, i.e. you can watch for C<SIGINT> in your
default loop and for C<SIGIO> in another loop, but you cannot watch for
C<SIGINT> in both the default loop and another loop at the same time. At
the moment, C<SIGCHLD> is permanently tied to the default loop.
You can configure as many watchers as you like per signal. Only when the When the first watcher gets started will libev actually register something
first watcher gets started will libev actually register a signal handler
with the kernel (thus it coexists with your own signal handlers as long as with the kernel (thus it coexists with your own signal handlers as long as
you don't register any with libev for the same signal). Similarly, when you don't register any with libev for the same signal).
the last signal watcher for a signal is stopped, libev will reset the
signal handler to SIG_DFL (regardless of what it was set to before). Both the signal mask state (C<sigprocmask>) and the signal handler state
(C<sigaction>) are unspecified after starting a signal watcher (and after
sotpping it again), that is, libev might or might not block the signal,
and might or might not set or restore the installed signal handler.
If possible and supported, libev will install its handlers with If possible and supported, libev will install its handlers with
C<SA_RESTART> behaviour enabled, so system calls should not be unduly C<SA_RESTART> (or equivalent) behaviour enabled, so system calls should
interrupted. If you have a problem with system calls getting interrupted by not be unduly interrupted. If you have a problem with system calls getting
signals you can block all signals in an C<ev_check> watcher and unblock interrupted by signals you can block all signals in an C<ev_check> watcher
them in an C<ev_prepare> watcher. and unblock them in an C<ev_prepare> watcher.
=head3 Watcher-Specific Functions and Data Members =head3 Watcher-Specific Functions and Data Members
@ -2148,8 +2174,8 @@ libev)
=head3 Process Interaction =head3 Process Interaction
Libev grabs C<SIGCHLD> as soon as the default event loop is Libev grabs C<SIGCHLD> as soon as the default event loop is
initialised. This is necessary to guarantee proper behaviour even if initialised. This is necessary to guarantee proper behaviour even if the
the first child watcher is started after the child exits. The occurrence first child watcher is started after the child exits. The occurrence
of C<SIGCHLD> is recorded asynchronously, but child reaping is done of C<SIGCHLD> is recorded asynchronously, but child reaping is done
synchronously as part of the event loop processing. Libev always reaps all synchronously as part of the event loop processing. Libev always reaps all
children, even ones not watched. children, even ones not watched.
@ -2169,7 +2195,8 @@ that, so other libev users can use C<ev_child> watchers freely.
Currently, the child watcher never gets stopped, even when the Currently, the child watcher never gets stopped, even when the
child terminates, so normally one needs to stop the watcher in the child terminates, so normally one needs to stop the watcher in the
callback. Future versions of libev might stop the watcher automatically callback. Future versions of libev might stop the watcher automatically
when a child exit is detected. when a child exit is detected (calling C<ev_child_stop> twice is not a
problem).
=head3 Watcher-Specific Functions and Data Members =head3 Watcher-Specific Functions and Data Members
@ -3382,6 +3409,12 @@ be found at L<http://proj.llucax.com.ar/wiki/evd>.
Erkki Seppala has written Ocaml bindings for libev, to be found at Erkki Seppala has written Ocaml bindings for libev, to be found at
L<http://modeemi.cs.tut.fi/~flux/software/ocaml-ev/>. L<http://modeemi.cs.tut.fi/~flux/software/ocaml-ev/>.
=item Lua
Brian Maher has written a partial interface to libev
for lua (only C<ev_io> and C<ev_timer>), to be found at
L<http://github.com/brimworks/lua-ev>.
=back =back
@ -3557,7 +3590,7 @@ implementations for some libevent functions (such as logging, which is not
supported). It will also not define any of the structs usually found in supported). It will also not define any of the structs usually found in
F<event.h> that are not directly supported by the libev core alone. F<event.h> that are not directly supported by the libev core alone.
In stanbdalone mode, libev will still try to automatically deduce the In standalone mode, libev will still try to automatically deduce the
configuration, but has to be more conservative. configuration, but has to be more conservative.
=item EV_USE_MONOTONIC =item EV_USE_MONOTONIC
@ -3794,6 +3827,15 @@ provide a bare-bones event library. See C<ev.h> for details on what parts
of the API are still available, and do not complain if this subset changes of the API are still available, and do not complain if this subset changes
over time. over time.
=item EV_NSIG
The highest supported signal number, +1 (or, the number of
signals): Normally, libev tries to deduce the maximum number of signals
automatically, but sometimes this fails, in which case it can be
specified. Also, using a lower number than detected (C<32> should be
good for about any system in existance) can save some memory, as libev
statically allocates some 12-24 bytes per signal number.
=item EV_PID_HASHSIZE =item EV_PID_HASHSIZE
C<ev_child> watchers use a small hash table to distribute workload by C<ev_child> watchers use a small hash table to distribute workload by

11
deps/libev/ev_epoll.c

@ -1,7 +1,7 @@
/* /*
* libev epoll fd activity backend * libev epoll fd activity backend
* *
* Copyright (c) 2007,2008 Marc Alexander Lehmann <libev@schmorp.de> * Copyright (c) 2007,2008,2009 Marc Alexander Lehmann <libev@schmorp.de>
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without modifica- * Redistribution and use in source and binary forms, with or without modifica-
@ -121,6 +121,8 @@ epoll_poll (EV_P_ ev_tstamp timeout)
int i; int i;
int eventcnt; int eventcnt;
/* epoll wait times cannot be larger than (LONG_MAX - 999UL) / HZ msecs, which is below */
/* the default libev max wait time, however. */
EV_RELEASE_CB; EV_RELEASE_CB;
eventcnt = epoll_wait (backend_fd, epoll_events, epoll_eventmax, (int)ceil (timeout * 1000.)); eventcnt = epoll_wait (backend_fd, epoll_events, epoll_eventmax, (int)ceil (timeout * 1000.));
EV_ACQUIRE_CB; EV_ACQUIRE_CB;
@ -181,7 +183,12 @@ epoll_poll (EV_P_ ev_tstamp timeout)
int inline_size int inline_size
epoll_init (EV_P_ int flags) epoll_init (EV_P_ int flags)
{ {
backend_fd = epoll_create (256); #ifdef EPOLL_CLOEXEC
backend_fd = epoll_create1 (EPOLL_CLOEXEC);
if (backend_fd <= 0)
#endif
backend_fd = epoll_create (256);
if (backend_fd < 0) if (backend_fd < 0)
return 0; return 0;

2
deps/libev/ev_kqueue.c

@ -1,7 +1,7 @@
/* /*
* libev kqueue backend * libev kqueue backend
* *
* Copyright (c) 2007,2008 Marc Alexander Lehmann <libev@schmorp.de> * Copyright (c) 2007,2008,2009 Marc Alexander Lehmann <libev@schmorp.de>
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without modifica- * Redistribution and use in source and binary forms, with or without modifica-

2
deps/libev/ev_poll.c

@ -1,7 +1,7 @@
/* /*
* libev poll fd activity backend * libev poll fd activity backend
* *
* Copyright (c) 2007,2008 Marc Alexander Lehmann <libev@schmorp.de> * Copyright (c) 2007,2008,2009 Marc Alexander Lehmann <libev@schmorp.de>
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without modifica- * Redistribution and use in source and binary forms, with or without modifica-

2
deps/libev/ev_port.c

@ -1,7 +1,7 @@
/* /*
* libev solaris event port backend * libev solaris event port backend
* *
* Copyright (c) 2007,2008 Marc Alexander Lehmann <libev@schmorp.de> * Copyright (c) 2007,2008,2009 Marc Alexander Lehmann <libev@schmorp.de>
* All rights reserved. * All rights reserved.
* *
* Redistribution and use in source and binary forms, with or without modifica- * Redistribution and use in source and binary forms, with or without modifica-

10
deps/libev/ev_select.c

@ -282,9 +282,12 @@ select_init (EV_P_ int flags)
#else #else
vec_max = 0; vec_max = 0;
vec_ri = 0; vec_ri = 0;
vec_ri = 0; vec_ro = 0;
vec_wo = 0; vec_wi = 0;
vec_wo = 0; vec_wo = 0;
#ifdef _WIN32
vec_eo = 0;
#endif
#endif #endif
return EVBACKEND_SELECT; return EVBACKEND_SELECT;
@ -297,6 +300,9 @@ select_destroy (EV_P)
ev_free (vec_ro); ev_free (vec_ro);
ev_free (vec_wi); ev_free (vec_wi);
ev_free (vec_wo); ev_free (vec_wo);
#ifdef _WIN32
ev_free (vec_eo);
#endif
} }

9
deps/libev/ev_vars.h

@ -152,8 +152,8 @@ VARx(int, forkmax)
VARx(int, forkcnt) VARx(int, forkcnt)
#endif #endif
VARx(EV_ATOMIC_T, gotasync)
#if EV_ASYNC_ENABLE || EV_GENWRAP #if EV_ASYNC_ENABLE || EV_GENWRAP
VARx(EV_ATOMIC_T, async_pending)
VARx(struct ev_async **, asyncs) VARx(struct ev_async **, asyncs)
VARx(int, asyncmax) VARx(int, asyncmax)
VARx(int, asynccnt) VARx(int, asynccnt)
@ -166,6 +166,13 @@ VARx(char, fs_2625) /* whether we are running in linux 2.6.25 or newer */
VAR (fs_hash, ANFS fs_hash [EV_INOTIFY_HASHSIZE]) VAR (fs_hash, ANFS fs_hash [EV_INOTIFY_HASHSIZE])
#endif #endif
VARx(EV_ATOMIC_T, sig_pending)
#if EV_USE_SIGNALFD || EV_GENWRAP
VARx(int, sigfd)
VARx(ev_io, sigfd_w)
VARx(sigset_t, sigfd_set)
#endif
#if EV_MINIMAL < 2 || EV_GENWRAP #if EV_MINIMAL < 2 || EV_GENWRAP
VARx(unsigned int, loop_count) /* total number of loop iterations/blocks */ VARx(unsigned int, loop_count) /* total number of loop iterations/blocks */
VARx(unsigned int, loop_depth) /* #ev_loop enters - #ev_loop leaves */ VARx(unsigned int, loop_depth) /* #ev_loop enters - #ev_loop leaves */

12
deps/libev/ev_wrap.h

@ -69,7 +69,7 @@
#define forks ((loop)->forks) #define forks ((loop)->forks)
#define forkmax ((loop)->forkmax) #define forkmax ((loop)->forkmax)
#define forkcnt ((loop)->forkcnt) #define forkcnt ((loop)->forkcnt)
#define gotasync ((loop)->gotasync) #define async_pending ((loop)->async_pending)
#define asyncs ((loop)->asyncs) #define asyncs ((loop)->asyncs)
#define asyncmax ((loop)->asyncmax) #define asyncmax ((loop)->asyncmax)
#define asynccnt ((loop)->asynccnt) #define asynccnt ((loop)->asynccnt)
@ -77,6 +77,10 @@
#define fs_w ((loop)->fs_w) #define fs_w ((loop)->fs_w)
#define fs_2625 ((loop)->fs_2625) #define fs_2625 ((loop)->fs_2625)
#define fs_hash ((loop)->fs_hash) #define fs_hash ((loop)->fs_hash)
#define sig_pending ((loop)->sig_pending)
#define sigfd ((loop)->sigfd)
#define sigfd_w ((loop)->sigfd_w)
#define sigfd_set ((loop)->sigfd_set)
#define loop_count ((loop)->loop_count) #define loop_count ((loop)->loop_count)
#define loop_depth ((loop)->loop_depth) #define loop_depth ((loop)->loop_depth)
#define userdata ((loop)->userdata) #define userdata ((loop)->userdata)
@ -153,7 +157,7 @@
#undef forks #undef forks
#undef forkmax #undef forkmax
#undef forkcnt #undef forkcnt
#undef gotasync #undef async_pending
#undef asyncs #undef asyncs
#undef asyncmax #undef asyncmax
#undef asynccnt #undef asynccnt
@ -161,6 +165,10 @@
#undef fs_w #undef fs_w
#undef fs_2625 #undef fs_2625
#undef fs_hash #undef fs_hash
#undef sig_pending
#undef sigfd
#undef sigfd_w
#undef sigfd_set
#undef loop_count #undef loop_count
#undef loop_depth #undef loop_depth
#undef userdata #undef userdata

4
deps/libev/event.h

@ -37,8 +37,8 @@
* either the BSD or the GPL. * either the BSD or the GPL.
*/ */
#ifndef EVENT_H__ #ifndef EVENT_H_
#define EVENT_H__ #define EVENT_H_
#ifdef EV_H #ifdef EV_H
# include EV_H # include EV_H

6
deps/libev/libev.m4

@ -2,9 +2,9 @@ dnl this file is part of libev, do not make local modifications
dnl http://software.schmorp.de/pkg/libev dnl http://software.schmorp.de/pkg/libev
dnl libev support dnl libev support
AC_CHECK_HEADERS(sys/inotify.h sys/epoll.h sys/event.h sys/queue.h port.h poll.h sys/select.h sys/eventfd.h) AC_CHECK_HEADERS(sys/inotify.h sys/epoll.h sys/event.h sys/queue.h port.h poll.h sys/select.h sys/eventfd.h sys/signalfd.h)
AC_CHECK_FUNCS(inotify_init epoll_ctl kqueue port_create poll select eventfd) AC_CHECK_FUNCS(inotify_init epoll_ctl kqueue port_create poll select eventfd signalfd)
AC_CHECK_FUNC(clock_gettime, [], [ AC_CHECK_FUNC(clock_gettime, [], [
dnl on linux, try syscall wrapper first dnl on linux, try syscall wrapper first
@ -36,5 +36,3 @@ AC_CHECK_FUNC(nanosleep, [], [
AC_CHECK_LIB(m, ceil) AC_CHECK_LIB(m, ceil)

Loading…
Cancel
Save