[all-commits] [llvm/llvm-project] 9c2bb1: [LLDB] Support Auxiliary library in ELF format
aokblast via All-commits
all-commits at lists.llvm.org
Sun Jul 12 01:20:38 PDT 2026
Branch: refs/heads/users/aokblast/lldb/fix_auxilary_handle
Home: https://github.com/llvm/llvm-project
Commit: 9c2bb1a439fcf2c880ad7b6cfcfa3f0668610a4a
https://github.com/llvm/llvm-project/commit/9c2bb1a439fcf2c880ad7b6cfcfa3f0668610a4a
Author: ShengYi Hung <aokblast at FreeBSD.org>
Date: 2026-07-12 (Sun, 12 Jul 2026)
Changed paths:
M lldb/include/lldb/Symbol/Symbol.h
M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.cpp
M lldb/source/Plugins/ObjectFile/ELF/ObjectFileELF.h
M lldb/source/Symbol/Symbol.cpp
Log Message:
-----------
[LLDB] Support Auxiliary library in ELF format
An ELF filter library (DT_FILTER) or auxiliary filter (DT_AUXILIARY)
delegates symbol resolution to its filtee: the dynamic linker looks up
each symbol in the filtee first, falling back to the filter library's
own definition. Filter library may export placeholder smyolbs whose
addresses are not the actual function entry points.
To support this, we teach ObjectFileELF to parse the filtee and model
placeholder function definition in filter libraries as ReExported,
reusing the existing re-export machinery.
Notice that in ELF, we don't record the per-symbol target ReExported
library like Macho. Instead, it is a suggestion list from the libraries
that exposes this symbol. As a result, we need to pass the library
Module to read the suggestion list to correctly parse the file in
Resolver.
Commit: 31ae997374d4b7752c736865ef844b31e43af815
https://github.com/llvm/llvm-project/commit/31ae997374d4b7752c736865ef844b31e43af815
Author: ShengYi Hung <aokblast at FreeBSD.org>
Date: 2026-07-12 (Sun, 12 Jul 2026)
Changed paths:
M lldb/unittests/ObjectFile/ELF/TestObjectFileELF.cpp
M lldb/unittests/Target/CMakeLists.txt
A lldb/unittests/Target/ReExportedSymbolTest.cpp
Log Message:
-----------
Add unit tests for ELF filter-library symbol handling.
* ObjectFileELFTest.FilterLibraryPlaceholderSymbols: a yaml2obj ELF
filter library with two DT_AUXILIARY entries checks that
GetReExportedLibraries() returns the filtees in dynamic-section
order, that zero-sized exported functions become re-exported symbols
recording the first filtee and the unversioned name (@VERSION suffix
stripped), and that nonzero-sized and local definitions are left
alone.
* ReExportedSymbolTest.ResolveThroughFilteesInOrder: a target holding
a filter library and two filtee modules checks that
Symbol::ResolveReExportedSymbol finds a definition in the first
filtee via the library recorded on the symbol, continues to the next
filtee in declaration order for symbols the first filtee lacks, and
that without the containing module only the recorded library is
searched.
Co-Authored-By: Claude Fable 5 <noreply at anthropic.com>
Compare: https://github.com/llvm/llvm-project/compare/53557d331b0d...31ae997374d4
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list