Re: [PATCH] test/T360-symbol-hiding: use readelf in place of nm

Subject: Re: [PATCH] test/T360-symbol-hiding: use readelf in place of nm

Date: Sat, 12 Dec 2020 20:46:01 +0200

To: David Bremner, notmuch@notmuchmail.org

Cc: David Bremner

From: Tomi Ollila


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

Thread: