[jitsi-dev] Native code compatibility (*.so)


#1

Hi,

I've made a small "audit" of linux 64 .so in jitsi* git repos to see
dependencies
As I'm just a jitsi meet user, for me the 2 problematic lib are:
./libjitsi/lib/native/linux-x86-64/libjnsctp.so: GLIBC_2.14
./libjitsi/lib/native/linux-x86-64/libjnopenssl.so: GLIBC_2.2.5 +
OPENSSL_1.0.0

I've done some experiments (loading libcryto with dlopen)

https://github.com/champtar/libjitsi/commit/0e4529dbaf7342bccb51015284216727ab6272ed

but after more reading/digging (struct change in minor/patch version !!!)

http://abi-laboratory.pro/tracker/compat_report/openssl/1.0.2b/1.0.2c/c63bf/abi_compat_report.html#Type_Problems_Medium

i've come to the conclusion that the only solution is to build on the
oldest system that we want to support, and statically link with
dependencies (except libc)

or we can force glibc version, see (also the comments)
http://www.trevorpounds.com/blog/?p=103

What is the oldest (in term of libc version) system that you want to
support?

Does static linking seems ok to you?

libjnsctp.so is mandatory for simulcast as I have discovered the hard way
:slight_smile: (and openSctp conf)
libjnopenssl.so can speed up things (i've some patches that need some
cleanup here https://github.com/jitsi/libjitsi/pull/83)

There are also some duplication between repos (libhwaddressretriever.so for
exemple)

Regards
Etienne