llvm with tablegen backend for capstone disassembler
Go to file
Armando Montanez 8367b0750f [elfabi] Add support for reading dynamic symbols from binaries
This patch adds initial support for reading dynamic symbols from ELF binaries. Currently, STT_NOTYPE, STT_OBJECT, STT_FUNC, and STT_TLS are explicitly supported. Other symbol types are mapped to ELFSymbolType::Unknown to improve signal/noise ratio.

Symbols must meet two criteria to be read into in an ELFStub:

 - The symbol's binding must be STB_GLOBAL or STB_WEAK.
 - The symbol's visibility must be STV_DEFAULT or STV_PROTECTED.

This filters out symbols that aren't of interest during compile-time linking against a shared object.

This change uses DT_HASH and DT_GNU_HASH to determine the size of .dynsym. Using hash tables to determine the number of symbols in .dynsym allows llvm-elfabi to work on binaries without relying on section headers.

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

llvm-svn: 352121
2019-01-24 22:39:21 +00:00
clang [clang-cl] Ignore space-separated /AI arguments 2019-01-24 22:26:51 +00:00
clang-tools-extra [clang-tidy] Rename the absl duration helper functions; NFC 2019-01-24 19:23:50 +00:00
compiler-rt [libFuzzer] more agressive value profiling and CMP tracing for switch statements 2019-01-24 21:08:54 +00:00
debuginfo-tests Set config.lit_tools_dir, which is needed by lit.llvm.initialize. 2018-11-06 21:54:27 +00:00
libclc Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +00:00
libcxx Mark awk.pass.cpp as XFAIL for NetBSD 2019-01-24 20:26:02 +00:00
libcxxabi [libcxxabi] Support building hermetic static library 2019-01-24 03:18:29 +00:00
libunwind [libunwind] Don't abort if encoutering invalid .eh_frame_hdr 2019-01-24 03:04:42 +00:00
lld [PDB] Increase TPI hash bucket count. 2019-01-24 22:25:55 +00:00
lldb [Process/NetBSD] Add missing linkage to -lutil 2019-01-24 22:20:47 +00:00
llgo Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +00:00
llvm [elfabi] Add support for reading dynamic symbols from binaries 2019-01-24 22:39:21 +00:00
openmp NFC: fixed formatting to be consistent across the file 2019-01-21 16:11:43 +00:00
parallel-libs Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +00:00
polly Fix/unify top comment in lib/Analysis/PolyhedralInfo.cpp 2019-01-22 12:18:38 +00:00
pstl Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +00:00
.arcconfig Add an .arcconfig for the top of the git monorepo. 2019-01-11 16:27:14 +00:00
README.md

The LLVM Compiler Infrastructure

This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments.