Avoid overlinking in registry-modules/module-webdav-backend.so
On my system, readelf -d module-webdav-backend.so
shows:
0x0000000000000001 (NEEDED) Shared library: [libebackend-1.2.so.10]
0x0000000000000001 (NEEDED) Shared library: [libedataserver-1.2.so.24]
0x0000000000000001 (NEEDED) Shared library: [libgmodule-2.0.so.0]
0x0000000000000001 (NEEDED) Shared library: [libsecret-1.so.0]
0x0000000000000001 (NEEDED) Shared library: [libsoup-2.4.so.1]
0x0000000000000001 (NEEDED) Shared library: [libgio-2.0.so.0]
0x0000000000000001 (NEEDED) Shared library: [libgobject-2.0.so.0]
0x0000000000000001 (NEEDED) Shared library: [libglib-2.0.so.0]
0x0000000000000001 (NEEDED) Shared library: [libxml2.so.2]
0x0000000000000001 (NEEDED) Shared library: [libssl3.so]
0x0000000000000001 (NEEDED) Shared library: [libsmime3.so]
0x0000000000000001 (NEEDED) Shared library: [libnss3.so]
0x0000000000000001 (NEEDED) Shared library: [libnssutil3.so]
0x0000000000000001 (NEEDED) Shared library: [libplds4.so]
0x0000000000000001 (NEEDED) Shared library: [libplc4.so]
0x0000000000000001 (NEEDED) Shared library: [libnspr4.so]
0x0000000000000001 (NEEDED) Shared library: [libcamel-1.2.so.62]
0x0000000000000001 (NEEDED) Shared library: [libjson-glib-1.0.so.0]
0x0000000000000001 (NEEDED) Shared library: [libedbus-private.so]
0x0000000000000001 (NEEDED) Shared library: [libdb-6.2.so]
0x0000000000000001 (NEEDED) Shared library: [libsqlite3.so.0]
0x0000000000000001 (NEEDED) Shared library: [libz.so.1]
0x0000000000000001 (NEEDED) Shared library: [libkrb5.so.3]
0x0000000000000001 (NEEDED) Shared library: [libk5crypto.so.3]
0x0000000000000001 (NEEDED) Shared library: [libcom_err.so.3]
0x0000000000000001 (NEEDED) Shared library: [libgssapi_krb5.so.2]
0x0000000000000001 (NEEDED) Shared library: [libicui18n.so.63]
0x0000000000000001 (NEEDED) Shared library: [libicuuc.so.63]
0x0000000000000001 (NEEDED) Shared library: [libicudata.so.63]
0x0000000000000001 (NEEDED) Shared library: [libgcr-base-3.so.1]
0x0000000000000001 (NEEDED) Shared library: [libgck-1.so.0]
0x0000000000000001 (NEEDED) Shared library: [libp11-kit.so.0]
0x0000000000000001 (NEEDED) Shared library: [libstdc++.so.6]
0x0000000000000001 (NEEDED) Shared library: [libm.so.6]
0x0000000000000001 (NEEDED) Shared library: [libgcc_s.so.1]
0x0000000000000001 (NEEDED) Shared library: [libpthread.so.0]
0x0000000000000001 (NEEDED) Shared library: [libc.so.6]
and nm -D module-webdav-backend.so
prints:
00000000000040c0 B __bss_start
w __cxa_finalize
U e_backend_get_source
U e_backend_get_type
U e_collection_backend_factory_get_type
U e_collection_backend_get_type
00000000000040c0 D _edata
0000000000001440 T e_module_load
0000000000001430 T e_module_unload
00000000000040e0 B _end
U e_source_collection_get_calendar_url
U e_source_collection_get_contacts_url
U e_source_get_extension
U e_source_goa_get_calendar_url
U e_source_goa_get_contacts_url
U e_source_has_extension
0000000000001560 T e_webdav_backend_factory_get_type
0000000000001570 T e_webdav_backend_get_type
U e_webdav_collection_backend_discover_sync
U e_webdav_collection_backend_get_type
w __gmon_start__
U g_return_if_fail_warning
U g_type_check_class_cast
U g_type_check_instance_cast
U g_type_check_instance_is_a
U g_type_class_adjust_private_offset
U g_type_class_peek_parent
U g_type_module_register_type
w _ITM_deregisterTMCloneTable
w _ITM_registerTMCloneTable
Looking at the undefined symbols, only explicit linking with libgobject, libglib, libebackend, and a few more libraries coming from EDS is necessary.
Overlinking is a problem, as running the evolution* programs under valgring asks the latter to load the debug information from the unused libraries. This eats CPU and memory and my computer does not have much ot these. So I cannot run Evolution* under valgrind.