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