mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-22 17:34:54 +01:00
bc11759dd1
The dynamic generation of the linker version script for libnotmuch exports has grown rather complicated. Reverse the visibility control by hiding symbols by default using -fvisibility=hidden, and explicitly exporting symbols in notmuch.h using #pragma GCC visibility. (We could also use __attribute__ ((visibility ("default"))) for each exported function, but the pragma is more convenient.) The above is not quite enough alone, as it would "leak" a number of weak symbols from Xapian and C++ standard library. Combine it with a small static version script that filters out everything except the notmuch_* symbols that we explicitly exposed, and the C++ RTTI typeinfo symbols for exception handling. Finally, as the symbol hiding test can no longer look at the generated symbol table, switch the test to parse the functions from notmuch.h. |
||
---|---|---|
.. | ||
built-with.c | ||
config.cc | ||
database-private.h | ||
database.cc | ||
directory.cc | ||
filenames.c | ||
index.cc | ||
Makefile | ||
Makefile.local | ||
message-file.c | ||
message-private.h | ||
message-property.cc | ||
message.cc | ||
messages.c | ||
notmuch-private.h | ||
notmuch.h | ||
notmuch.sym | ||
parse-time-vrp.cc | ||
parse-time-vrp.h | ||
query-fp.cc | ||
query-fp.h | ||
query.cc | ||
regexp-fields.cc | ||
regexp-fields.h | ||
sha1.c | ||
string-list.c | ||
string-map.c | ||
tags.c | ||
thread.cc |