fix: panic & load time failure if symbols are missing
Since some time around tarantool 2.10 most of the symbols have been closed, but some of our apis were still relying on them. This commit fixes these issues.
Don't link against symbols known to be missing in tarantool 2.10. These are:
- decimal_*
- fiber_channel_*
- ipc_value_*
- tuple_field_raw_by_full_path
Instead use dlsym
to lookup these symbols at runtime.
The lookup is only done once per symbol.
Also don't use BoxTuple::data
unless tuple_field_raw_by_full_path
is
present, otherwise the structure of BoxTuple
cannot be assumed.
TODO: maybe don't ever use BoxTuple::data