|
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
|