[PATCH] readelf: print warning for -sW

Mark Wielaard mark@klomp.org
Fri Nov 25 17:27:00 GMT 2022


Hi Marin,

On Fri, 2022-11-25 at 14:29 +0100, Martin Liška wrote:
> The option -s accepts in elfutils (compared to binutils) a positional
> argument that is name of a symbol table section which should be
> printed.
> 
> Thus, print a reasonable warning if -sW is used:
> ./src/readelf -sW a.out
> WARNING: cannot find section: 'W'
> 
> Ready for master?

Looks good. But one nitpick below.

> src/ChangeLog:
> 
> 	* readelf.c (print_symtab): Change signature and return true if
> 	something is printed.
> 	(process_elf_file): Use it and print warning.

Aha, we are processing the symbol sections twice, once for 
SHT_DYNSYM, then for SHT_SYMTAB. And the named section should be one or
the other. Good.

> tests/ChangeLog:
> 
> 	* run-readelf-s.sh: Test -sW.

Plus a new testcase. Perfect..

> diff --git a/tests/run-readelf-s.sh b/tests/run-readelf-s.sh
> index ee1c0e82..c150c165 100755
> --- a/tests/run-readelf-s.sh
> +++ b/tests/run-readelf-s.sh
> @@ -395,4 +395,7 @@ Symbol table [27] '.symtab' contains 42 entries:
>     41: 00000000004003a8      0 FUNC    GLOBAL DEFAULT       11 _init
>  EOF
>  
> +${abs_top_builddir}/src/readelf --elf-section -sW testfilebaxmin 2>&1 \
> +  | grep "WARNING: cannot find section: 'W'" >/dev/null || exit 2
> +

You need to run a tests with testrun or testrun_compare so they
actually run against the just build libraries (and so they run under
valgrind when configured with --enable-valgrind).

So in this case just add a testrun in front.

-${abs_top_builddir}/src/readelf --elf-section -sW testfilebaxmin 2>&1 \
+testrun ${abs_top_builddir}/src/readelf --elf-section -sW testfilebaxmin 2>&1 \

OK with that change.

Thanks,

Mark


More information about the Elfutils-devel mailing list