Use segment's off and vaddr fields instead of IsSharedObject heuristic

This patch unifies the handling of ET_EXEC and ET_DYN ELF files by
clarifying the difference between "offset" of function's code in ELF
file, its "virtual address" that is recorded in the file (according to
ELF specification, it is the "symbol value" written to st_value field in
a symbol table entry in case of executable and shared object ELF files)
and the actual address of function in the address space of a process
after dynamic relocations took place.

Please note that file offset and virtual address are usually the same in
ET_DYN files (such as shared objects and position-independent
executables) but it is not required and this assumption is sometimes
violated in real-life scenarios.

Reviewed By: tnfchris

Differential Revision: https://reviews.llvm.org/D144852

~~

Huawei RRI, OS Lab
20 files changed
tree: 3896804bde1ffc2272e1fde082c2475480dfe260
  1. deployment/
  2. docker/
  3. docs/
  4. examples/
  5. lnt/
  6. schemas/
  7. tests/
  8. utils/
  9. .arcconfig
  10. .gitignore
  11. LICENSE.TXT
  12. MANIFEST.in
  13. mypy.ini
  14. Procfile
  15. README.md
  16. requirements.client.txt
  17. requirements.server.txt
  18. requirements.txt
  19. setup.cfg
  20. setup.py
  21. tox.ini
README.md

LLVM “Nightly Test” Infrastructure

This directory and its subdirectories contain the LLVM nightly test infrastructure. This is technically version “4.0” of the LLVM nightly test architecture.

The infrastructure has the following layout:

$ROOT/lnt - Top-level Python ‘lnt’ module

$ROOT/lnt/server/db - Database schema, utilities, and examples of the LNT plist format.

$ROOT/docs - Sphinx documentation for LNT.

$ROOT/tests - Tests for the infrastructure.

For more information, see the web documentation, or docs/.

Testing

Testing is done by running tox from the top-level directory. It runs the tests for both Python 2 and Python 3, it also checks code style.