The patchset makes Tarantool stop hiding not explicitly exported
symbols.
It means, all FFI and public C API related symbols are still
always exported. All the other symbols may be exported, or may be
not.
That feature was requested solely by Mons.
To make the needed symbols visible the hack with function
addresses was returned back, like it was before
https://github.com/tarantool/tarantool/commit/4c4c1ccbe422e1420ce0c0b36194fc61bb857ed4,
but with 0 dependencies in the export file.
Branch:
http://github.com/tarantool/tarantool/tree/gerold103/gh-2971-symbols-v2Issue:
https://github.com/tarantool/tarantool/issues/2971@ChangeLog
- Symbols of tarantool executable are not masked anymore. Some
private symbols may become visible and available for FFI and
dlopen() + dlsym() (gh-2971).
Changes in v2:
- All exports are moved to one file for simplicity.
Vladislav Shpilevoy (2):
cmake: remove double usage of some source files
cmake: remove dynamic-list linker option
.gitignore | 1 -
extra/exports | 404 ----------------
src/CMakeLists.txt | 57 +--
src/box/CMakeLists.txt | 7 +-
src/exports.c | 511 ++++++++++++++++++++
src/lib/small | 2 +-
src/main.cc | 5 +
test/box/gh-2971-symbol-visibility.result | 22 +
test/box/gh-2971-symbol-visibility.test.lua | 14 +
9 files changed, 563 insertions(+), 460 deletions(-)
delete mode 100644 extra/exports
create mode 100644 src/exports.c
create mode 100644 test/box/gh-2971-symbol-visibility.result
create mode 100644 test/box/gh-2971-symbol-visibility.test.lua
--
2.21.1 (Apple Git-122.3)