Blame src/util/verto/README

Packit fd8b60
This directory builds a verto library with only a private built-in
Packit fd8b60
module, for use when the system has no installed verto library.  The
Packit fd8b60
bundled verto cannot dynamically load modules.  From the upstream
Packit fd8b60
libverto, we take only verto.c and verto-libev.c, and we only build
Packit fd8b60
the former; the latter is stored here for comparison purposes.  We use
Packit fd8b60
a stub implementation of module.c to disable dynamic loading support.
Packit fd8b60
Packit fd8b60
This private module uses an embedded libev with renamed symbols (so we
Packit fd8b60
don't leak libev symbols into the namespace on platforms where we
Packit fd8b60
can't control the export list).  libev has built-in support for this
Packit fd8b60
kind of embedding, so we don't have to modify the libev sources.
Packit fd8b60
Following libev's documentation, the following files have been copied
Packit fd8b60
from the ev sources:
Packit fd8b60
Packit fd8b60
  ev.h
Packit fd8b60
  ev_vars.h
Packit fd8b60
  ev_wrap.h
Packit fd8b60
  ev.c
Packit fd8b60
  ev_select.c
Packit fd8b60
  ev_poll.c
Packit fd8b60
  ev_win32.c
Packit fd8b60
  Symbols.ev
Packit fd8b60
Packit fd8b60
(Symbols.ev wasn't included in the 4.04 tar file due to an oversight,
Packit fd8b60
so it is taken from the appropriate tag in libev's source repository.)
Packit fd8b60
Packit fd8b60
To rename the exported symbols, we create rename.h from Symbols.ev.
Packit fd8b60
We also use Symbols.ev to construct the library export list.
Packit fd8b60
(Renaming libev's symbols would be unnecessary if libev's embedding
Packit fd8b60
had support for making its API symbols static, but it currently does
Packit fd8b60
not.)  The source file verto-k5ev.c wraps ev.c with appropriate
Packit fd8b60
embedding defines, and then defines the libverto module functions
Packit fd8b60
using the slightly modified contents of libverto's verto-libev.c.  The
Packit fd8b60
resulting module table is embedded into verto.c using the
Packit fd8b60
BUILTIN_MODULE define.
Packit fd8b60
Packit fd8b60
The libverto and libev upstream project pages are at:
Packit fd8b60
Packit fd8b60
  https://github.com/latchset/libverto/
Packit fd8b60
  http://software.schmorp.de/pkg/libev.html