On Fri, Dec 11 2020, David Bremner wrote: > It turns out that using nm -P isn't as portable as hoped. In particular on > architectures using ELF v1 (e.g. ppc64), the desired symbols end up in > the data section instead of text. > > The test is currently only functional on ELF based architectures, so I > think it's legit to depend on readelf instead of nm. > > The switch to readelf has the advantage that we can explicitely ask > for all of the symbols with global visibility, rather than grepping > for notmuch. That seems a more robust approach since it will catch any > strangely named global symbols. Looks good. I use this opportunity to mention that `sort | uniq` can be replaced with `sort -u` :D (also) s/$4 == "FUNC"/$4 == "FUNC"/; i.e. remove one extra space Tomi > --- > test/T360-symbol-hiding.sh | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/test/T360-symbol-hiding.sh b/test/T360-symbol-hiding.sh > index b34f1e54..4e5007da 100755 > --- a/test/T360-symbol-hiding.sh > +++ b/test/T360-symbol-hiding.sh > @@ -26,7 +26,8 @@ test_begin_subtest 'checking output' > test_expect_equal "$result" "$output" > > test_begin_subtest 'comparing existing to exported symbols' > -nm -P $NOTMUCH_BUILDDIR/lib/libnotmuch.so | awk '$2 == "T" && $1 ~ "^notmuch" {print $1}' | sort | uniq > ACTUAL > +readelf -Ws $NOTMUCH_BUILDDIR/lib/libnotmuch.so | \ > + awk '$4 == "FUNC" && $5 == "GLOBAL" && $7 != "UND" {print $8}' | sort | uniq > ACTUAL > sed -n 's/^\(notmuch_[a-zA-Z0-9_]*\)[[:blank:]]*(.*/\1/p' $NOTMUCH_SRCDIR/lib/notmuch.h | sort | uniq > EXPORTED > test_expect_equal_file EXPORTED ACTUAL > > -- > 2.29.2 _______________________________________________ notmuch mailing list -- notmuch@notmuchmail.org To unsubscribe send an email to notmuch-leave@notmuchmail.org