mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-27 05:07:56 +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.
7 lines
51 B
Text
7 lines
51 B
Text
{
|
|
global:
|
|
_ZTI*;
|
|
_ZTS*;
|
|
notmuch_*;
|
|
local: *;
|
|
};
|