about summary refs log tree commit diff
path: root/elf/Makefile
diff options
context:
space:
mode:
authorFlorian Weimer <fweimer@redhat.com>2022-04-11 11:28:08 +0200
committerFlorian Weimer <fweimer@redhat.com>2022-04-22 10:58:32 +0200
commit30035d67728a846fa39749cd162afd278ac654c4 (patch)
tree172806ab5cbfed5c5860ba251d990813181694d1 /elf/Makefile
parent3e29dc5233a0c1b78dd008383ca12afac7d9366f (diff)
downloadglibc-30035d67728a846fa39749cd162afd278ac654c4.tar.gz
glibc-30035d67728a846fa39749cd162afd278ac654c4.tar.xz
glibc-30035d67728a846fa39749cd162afd278ac654c4.zip
scripts: Add glibcelf.py module
Hopefully, this will lead to tests that are easier to maintain.  The
current approach of parsing readelf -W output using regular expressions
is not necessarily easier than parsing the ELF data directly.

This module is still somewhat incomplete (e.g., coverage of relocation
types and versioning information is missing), but it is sufficient to
perform basic symbol analysis or program header analysis.

The EM_* mapping for architecture-specific constant classes (e.g.,
SttX86_64) is not yet implemented.  The classes are defined for the
benefit of elf/tst-glibcelf.py.

Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
Diffstat (limited to 'elf/Makefile')
-rw-r--r--elf/Makefile7
1 files changed, 7 insertions, 0 deletions
diff --git a/elf/Makefile b/elf/Makefile
index d30d0ee917..3d79f40879 100644
--- a/elf/Makefile
+++ b/elf/Makefile
@@ -1115,6 +1115,13 @@ tests-special += $(objpfx)check-abi-ld.out
 update-abi: update-abi-ld
 update-all-abi: update-all-abi-ld
 
+tests-special += $(objpfx)tst-glibcelf.out
+$(objpfx)tst-glibcelf.out: tst-glibcelf.py elf.h $(..)/scripts/glibcelf.py \
+  $(..)/scripts/glibcextract.py
+	PYTHONPATH=$(..)scripts $(PYTHON) tst-glibcelf.py \
+          --cc="$(CC) $(patsubst -DMODULE_NAME=%,-DMODULE_NAME=testsuite,$(CPPFLAGS))" \
+	  < /dev/null > $@ 2>&1; $(evaluate-test)
+
 # The test requires shared _and_ PIE because the executable
 # unit test driver must be able to link with the shared object
 # that is going to eventually go into an installed DSO.