mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-12-23 09:54:52 +01:00
feb22fef2e
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).
27 lines
569 B
Bash
27 lines
569 B
Bash
|
|
# we go through a bit of work to get the unmangled names of the
|
|
# typeinfo symbols because of
|
|
# http://sourceware.org/bugzilla/show_bug.cgi?id=10326
|
|
|
|
if [ $# -lt 2 ]; then
|
|
echo Usage: $0 header obj1 obj2 obj3
|
|
exit 1;
|
|
fi
|
|
|
|
HEADER=$1
|
|
shift
|
|
|
|
printf '{\nglobal:\n'
|
|
nm --defined $* | awk '$3 ~ "Xapian.*Error" {print $3}' | sort | uniq | \
|
|
while read sym; do
|
|
demangled=$(c++filt $sym)
|
|
case $demangled in
|
|
typeinfo*)
|
|
printf "\t$sym;\n"
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
done
|
|
sed -n 's/^\s*\(notmuch_[a-z_]*\)\s*(.*/\t\1;/p' $HEADER
|
|
printf "local: *;\n};\n"
|