aboutsummaryrefslogtreecommitdiff
path: root/lib/gen-version-script.sh
AgeCommit message (Collapse)Author
2017-05-12build: switch to hiding libnotmuch symbols by defaultJani Nikula
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.
2017-05-11build: do not export compat functions from libJani Nikula
Commits 9db214527213 ("lib/gen-version-script.h: add getline and getdelim to notmuch.sym if needed") and 3242e29e57ac ("build: add canonicalize_file_name to symbols exported from libnotmuch.so") started exporting compat functions from libnotmuch so that the cli could use them. But we shouldn't export such functions from the library. They are not part of our ABI. Instead, the cli should include its own copies of the compat functions.
2016-06-05Use https instead of http where possibleDaniel Kahn Gillmor
Many of the external links found in the notmuch source can be resolved using https instead of http. This changeset addresses as many as i could find, without touching the e-mail corpus or expected outputs found in tests.
2016-06-05lib: whitespace cleanupTomi Ollila
Cleaned the following whitespace in lib/* files: lib/index.cc: 1 line: trailing whitespace lib/database.cc 5 lines: 8 spaces at the beginning of line lib/notmuch-private.h: 4 lines: 8 spaces at the beginning of line lib/message.cc: 1 line: trailing whitespace lib/sha1.c: 1 line: empty lines at the end of file lib/query.cc: 2 lines: 8 spaces at the beginning of line lib/gen-version-script.sh: 1 line: trailing whitespace
2015-07-28build: add "set -eu" to version script generationDavid Bremner
It turns out that on certain systems like FreeBSD, c++filt is not installed by default. It's basically OK if we fail the build in that case, but what's really not OK is for the build to continue and generate bad binaries.
2014-04-19build: add canonicalize_file_name to symbols exported from libnotmuch.soDavid Bremner
This is needed for our compat version of canonicalize_file_name to be used.
2011-09-05lib/gen-version-script.h: add getline and getdelim to notmuch.sym if neededDavid Bremner
If the configure script detects missing getline and/or getdelim symbols, then notmuch will use it's own versions. This patch, based on id:"87k49v12i5.fsf@pc44es141.cs.uni-magdeburg.de" by Matthias Guedemann, adds the symbols to notmuch.sym as well so they are properly exported from the library.
2011-09-05lib/gen-version-script.sh: replace --defined argument to nm with awkDavid Bremner
OpenBSD nm apparently doesn't support --defined. The awk condition is based on the assumption that all defined symbols have some hex number in the first column. Thanks to Matthias Guedemann reporting the problem, and an earlier version of this patch.
2011-08-21re-enable notmuch.sym generation using POSIX sedDavid Bremner
Unfortunately Robin Green's patch 52e4dedf9aa was lost when I created gen-version-script.sh. This merges his changes manually into that script. It turns out tabs seem not needed in version script files, so I simplified a bit and removed the printf. Thanks to Alexander Botero-Lowry for help and testing.
2011-07-16libnotmuch: export Xapian typeinfo symbolsDavid Bremner
The lack of such exporting seems to cause problems catching exceptions, as suggested by http://gcc.gnu.org/wiki/Visibility This manifested in the symbol-hiding test failing when notmuch was compile with gcc 4.4.5. On i386, this further manifested as notmuch new failing to run (crashing with an uncaught exception on first run).